Linux基础——02 软件管理
- 02 软件管理
- 02-01 Linux主要发行版本的软件包管理
- 02-02 RPM包管理
- RPM 软件管理程序: rpm
- RPM 默认安装的路径
- rpm软件安装、卸载与更新
- rpm的常用参数
- rpm的查询
- YUM在线升级机制
- 利用yum来进行查询、安装、升级与移除功能
- yum的配置文件
- dnf包管理器
- dnf常用命令
- 仅下载rpm包不安装
- rpmdb问题 解决方法
- rpm包解压
- RPM 软件管理程序: rpm
- 02-03 dpkg包管理
- APT工具
- 软件源
- APT命令行的使用
- 安装软件包文件
- deb文件,解压、压缩和打包全过程
- 解包命令
- 对修改后的内容重新进行打包生成deb包
- APT工具
- 02-04 软件源更换
- yum源更换
- apt源更换
02 软件管理
02-01 Linux主要发行版本的软件包管理
Linux发行版本众多,我们主要以用于桌面版和用于服务器版来进行区分;
在用于桌面版的Linux系统中以Ubuntu系统使用的较多,其软件包的管理工具是apt-get/dpkg 软件包类型为:.deb
而在国产的服务器版的Linux系统中以中标麒麟的市场占有率最高,其软件包的管理工具是yum/rpm 软件包的类型为: .rpm
rpm和dpkg为最常见的两类软件包管理工具,他们分别用于rpm软件包的Linux发行版本和deb软件包的Linux发行版本。软件包管理工具的作用是提供在操作系统中安装、升级、卸载软件的方法,并提供对系统中所有软件状态信息的查询。
Linux软件的安装和windows不同,Linux软件包有依赖关系,必须安装所有的依赖包,才可以安装程序。
目前在Linux界软件安装最常见的有两种,分别是:
-
dpkg:
这个机制最早是由 Debian Linux 社群所开发出来的,透过 dpkg 的机制, Debian 提供的软件就能够简单的安装起来,同时还能提供安装后的软件信息,实在非常不错。 只要是衍生于 Debian 的其他 Linux distributions 大多使用 dpkg 这个机制来管理软件的, 包括 B2D, Ubuntu 等等。
-
RPM
这个机制最早是由 Red Hat 这家公司开发出来的,后来实在很好用,因此很多 distributions 就使用这个机
制来作为软件安装的管理方式。包括 Fedora, CentOS, SuSE 等等知名的开发商都是用这咚咚。
目前新的Linux开发商都有提供[在线升级]机制,透过这个机制,原版光盘就只有第一次安装时需要用到,其他时候只要有网络,就鞥取得原本开发商所提供的任何软件!在dpkg管理机制上开发出APT的在线升级机制,RPM则依开发商的不同有Red Hat系统的yum, SuSE系统的Yast Online Update(YOU)等。
02-02 RPM包管理
RPM 软件管理程序: rpm
Q:
- RPM类型的文件是将软件的相关文件放置在哪里
- RPM的数据库在哪
Tips:
yum可以直接用来进行安装的动作,基本上rpm这个指令常用于查询和检验
RPM 默认安装的路径
一般来说,RPM类型的文件在安装的时候,会先去读取文件内记载的设定参数内容,然后将该数据用来比对Linux 系统的环境,以找出是否有属性相依的软件尚未安装的问题。
若环境检查合格了,那么RPM文件就开始被安装到本地环境上。安装完毕后,该软件相关的信息就会被写入/var/lib/rpm/目录下的数据库文件中了。这个目录内的数据很重要,软件升级需求,版本之间的比较来自于这个数据库,查询系统已经安装的软件,也是从这里查询,同时,目前的RPM也提供数字签名信息,这些信息也在这个目录内记录。
常见文件目录
目录 | 文件内容 |
---|---|
/etc | 一些配置文件放置的目录,例如/etc/crontab |
/usr/bin | 一些可执行文件 |
/usr/lib | 一些程序使用的动态函式库 |
/usr/share/doc | 一些基本的软件使用手册与说明文件 |
/usr/share/man | 一些 man page文件 |
rpm软件安装、卸载与更新
安装rpm软件 命令格式为: rpm -ivh xxx.rpm
卸载rpm软件 命令格式为: rpm -e 软件包名
升级rpm软件 命令格式为:rpm -Uvh 软件包名(会覆盖原包)
rpm的常用参数
- -i:安装(install) 软件
- -U:升级(Upgrade)旧版本软件
- -e:移除/删除软件
- -v:显示详细的处理信息
- -h:显示安装进度。卸载不能用
rpm的查询
rpm可以查询安装和未被安装的软件的信息
基本语法:
- rpm -q 包名 查询本地是否安装这个包
- rpm -qa 查询本地安装的所有rpm包
- rpm -qc 包名 查询安装包的配置文件
- rpm -ql 包名 查询安装包所有的文件与目录所在完整文件名
- rpm -qi 包名 查询安装包信息,包括开发商、版本与说明等
- rpm -qpR 包名 检查软件包依赖关系
YUM在线升级机制
由于distribution必须要先释出软件,然后将软件放置于yum服务器上面,以提供客户端来要求安装与升级用的。所以想要使用yum的功能时,需要先找到合适的yum server.
利用yum来进行查询、安装、升级与移除功能
-
查询功能:yum [list|info|search|provides|whatprovides] 参数
-
安装/升级功能: yum [install|update] 软件
-
移除: yum [remove] 软件
yum的配置文件
配置文件位置:/etc/yum.repos.d/
dnf包管理器
由于 Yum 中许多长期存在的问题仍未得到解决,因此 Yum 包管理器已被 DNF 包管理器取代。
DNF(Dandified Yum)是新一代的RPM软件包管理器。DNF 使用 libsolv 进行依赖解析,由 SUSE 开发和维护,旨在提高性能
DNF包管理器克服了YUM包管理器的一些瓶颈,提升了包括用户体验,内存占用,依赖分析,运行速度等多方面的内容。
dnf常用命令
命令 | 解释 |
---|---|
dnf history | 查看历史命令 |
dnf repolist | 查看系统内可用的软件库 |
dnf search net-tools | 搜索软件库中的rpm包 |
dnf list installed | 列出所有已经安装的rpm包 |
dnf list available | 列出可获得的所有软件包 |
dnf info net-tools | 查看软件包信息 |
仅下载rpm包不安装
-
sudo yum install
--downloadonly --downloaddir=/tmp -
(centos7)另外一个下载RPM包的方法就是通过一个专门的包下载工具--yumdownloader。 这个工具是yum工具包(包含了用来进行yum包管理的帮助工具套件)的子集。
- yum install yum-utils
下载一个RPM包:
- yumdownloader
rpmdb问题 解决方法
- /var/lib/rpm下删除 __db.*文件
- rpm --rebuilddb
rpm包解压
rpm2cpio xxx.rpm | cpio -div
02-03 dpkg包管理
APT工具
软件源
/etc/apt/source-list
APT命令行的使用
常用的APT命令行工具有两个,apt-get用于执行与软件包安装有关的所有操作,apt-cache用于查询软件包的相关信息。
-
使用apt-cache命令查询软件包
命令 解释 apt-cache pkgnames 列出当前所有可用的软件包 apt-cache search httpd 查找软件包 apt-cache show 软件包名 查看软件包的详细信息 apt-cache depends 软件包名 查看软件包依赖 apt-cache rdepends 软件包名 查看软件包被哪些依赖包所依赖 apt-cache showpkg 软件包名 查看软件包的依赖关系信息 apt-cache policy 软件包名 显示软件包的安装状态和版本信息 -
使用apt-get命令操作软件包
命令 解释 apt-get update 获取最新的软件包列表,同步/etc/apt/sources.list 和/etc/apt/sources.list.d中列出的源的索引 apt-get upgrade 更新当前系统中所有已安装的软件包,同时更新软件包的依赖包 apt-get install 下载、安装软件包并自动解决依赖关系 apt-get remove 卸载指定的软件包 apt-get autoremove 自动卸载所有未使用的软件包 apt-get source 下载软件包的源代码 apt-get clean 清理已下载的软件包,实际上是清除/var/cache/apt/archives 目录中的软件包,不会影响使用 apt-get autoclean 删除已卸载的软件的软件包备份
安装软件包文件
安装: dpkg -i
卸载: dpkg -r
列出系统文件: dpkg -l
查看软件包相关信息:dpkg -s
查看已安装的软件包拥有哪些文件:dpkg -S
deb文件,解压、压缩和打包全过程
Q:
- 如何将deb包文件进行解包
- 修改要修改的文件
- 对修改后的内容进行生成deb包
解包命令
dpkg -X 软件包 目录位置
解压出包的控制信息在 包名/DEBIAN/下:
对修改后的内容重新进行打包生成deb包
dpkg -deb -b 包名
02-04 软件源更换
yum源更换
在/etc/yum.repos.d添加配置文件
apt源更换
Ubuntu使用文本文件/etc/apt/sources.list