Linux安装软件包
Linux有多种发行版本,各种发行版本之间安装软件包的方法和命令不一样,同发行版本之间安装软件包的方法也有不同。Linux主要有三大派系:红帽子派系(Redhat、Centos、Oracle Linux)、Debian派系(Ubuntu、Kali),SUSE派系(SuSe、OpenSUSE)等。
红帽子派是Linux服务器操作系统的主流,本文重点介绍红帽子派系中rpm和yum安装软件包的方法
rpm安装
RPM是RedHat Package Manager的缩写,由RedHat推出的软件包管理管理工具,在Fedora 、Redhat、CentOS、Mandriva、SuSE、YellowDog等主流发行版本,以及在这些版本基础上二次开发出来的发行版采用。
RPM包里面包含可执行的二进制程序,自身所带的附加文件,版本文件(软件包的依赖关系)。
查看系统中已安装的软件包
-
查看已安装的软件包
rpm -q 软件包名
-
查看已安装软件包安装的目录和文件
rpm -ql 软件包名
-
查看已安装软件包的详细信息
rpm -qi 软件包名
-
查看已安装软件包的配置
rpm -qc 软件包名
-
查看已安装软件包所依赖的软件包及文件
rpm -qR 软件包名
注意: 这里所提的依赖关系,举个例子解释在安装gcc-c++之前必须安装gcc
查看软件包的安装文件
安装文件的后缀是.rpm,以CentOS7为例,系统安装的光盘映像文件是CentOS-7-x86_64-DVD-1908.iso,解开后在Packages目录中有软件包的安装文件,如下:
接下来以ftp的客户端安装包文件ftp-0.17-67.el7.x86_64.rpm为例来介绍安装包文件的查看方法
-
查看软件包的安装文件所包含的文件
rpm -qpl 软件安装包文件名
-
查看软件包的安装文件的详细信息
rpm -qpi 软件包的安装文件名
-
查看软件包的依赖关系
rpm -qpl 软件包的安装文件名
安装/升级软件包
如果待安装/升级的软件与其它的软件有依赖关系,请解决依赖关系,即先安装/升级依赖关系的软件包。如果没有解决好依赖关系,可以强制安装/升级,不推荐采用强制的方法,因为有可能导致软件不可用
-
安装软件包
rpm -ivh 软件包的安装文件名
-
升级软件包
rpm -Uvh 软件包的安装文件名
-
强制安装软件包
rpm -ivh 软件包的安装文件名 --nodeps --force
-
强制升级软件包
rpv -Uvh 软件包的安装文件名 --nodeps --force
删除软件包
rpm -e 软件包名
yum安装
rpm安装软件包的虽然方便,但是需要手工解决软件包的依赖关系。很多时候安装一个软件包需要安装多个其他软件包,还有不同版本的兼容性问题,很复杂。yum(Yellow dog Updater, Modified)解决了这些问题,yum是rpm的前端程序,设计的主要目的就是为了自动解决rpm的依赖关系,有以下优点:
-
自动解决依赖关系;
-
可以对rpm进行分组,基于组进行安装操作;
-
引入仓库概念,支持多个仓库;
-
配置简单。
yum的语法
yum [options] [command] [package ...]
options:可选参数:-h帮助;-y,当安装过程提示选择全部为yes,不需要再次确认;-q,不显示安装的过程
command:待操作的命令
package:待操作的软件包名,多个软件包之间用空格分开,支持用星号*匹配
yum的常用命令
-
安装/升级软件包
yum install 软件包名/软件包文件名
-
升级软件包
yum update 软件包名
-
删除软件包
yum remove 软件包名
-
查找软件包
yum search 软件包名
-
列出所有可能更新的软件包清单
yum check-update
-
更新所有软件包
yum update
-
列出所有可安装文件包的清单
yum list
-
清除缓存
yum clean [headers|packages|metadata|dbcache|plugins|expire-cache|all]
应用经验
-
rpm安装/升级软件包需要手工的解决包的依赖关系,这一点让人确实很烦,所以,软件包的安装/升级一般采用yum命令。
-
rpm的某些功能,例如查看软件包的详细信息、软件包的安装目录、软件包的配置文件等还是有实用价值的。