二进制包是 Linux 下默认的软件安装包,目前主要有两大二进制包管理系统:
(1)rpm 包管理系统:功能强大,安装、升级、査询和卸载非常简单方便
有两种命令安装rpm包:rpm命令是先下载软件,然后进行本地安装,yum命令是在线安装,会自动解决依赖关系。主要应用在 Fedora、CentOS、RedHat、等,包的后缀名为.rpm
(2)dpkg包管理系统:最早由Debian Linux社区开发,包的后缀名为.deb
这里我们先介绍rpm包管理系统中rpm命令的用法,rpm软件包格式如下
name-version-release.arch.rpm分别对应软件名称-版本-发行版号.处理器架构
如tree-1.5.3-2.e16.i686.rpm
tree是软件名称
版本号是1.5.3
发行版号是2.e16
i686是处理器架构
这里我用的系统是红帽6,所以处理器架构是i686,软件包可以去网上下载,一定要下载对应自己系统架构的对应软件包,这里推荐两个下载rpm包的网页
http://www.rpmfind.net
http://rpm.pbone.net
rpm -q 软件名称
查询是否已安装的指定的软件包, 如果已安装会显示版本号,如果没有安装会提示未安装,如查询tree软件包是否安装:
rpm -ivh xxx.rpm
-i 安装软件包
-v 显示附加信息
-h 安装时用#表示安装进度
ivh组合就是安装软件包并显示附加信息并可视化进度
例如安装tree软件包
再次查询发现已经安装成功,显示了版本号
rpm -Uvh xxx.rpm
更新软件包,先删掉旧包再升级
rpm -Fvh xxx.rpm
在旧包的基础上进行升级
rpm -ql 软件名称
列出软件包的文件列表和完整目录,例如列出tree软件包的文件列表,看该软件包安装时会写入哪些文件到系统中
rpm -qi 软件名称
查询软件包的详细信息,例如查看tree软件包的详细信息
rpm -qa
列出所有被安装的软件包
可以用管道和grep进行筛选,不然会列出很多已安装的包不好找
rpm -qf 文件名
查询某个文件是属于那个rpm包的,例如查询/usr/share/doc/tree-1.5.3文件属于哪个软件包
rpm -e 软件名称
卸载软件包,如rpm -e tree卸载tree包,再次使用rpm -q查询,发现tree软件包已经未安装
rpm -qpi xxx.rpm
查询未安装的软件包的详细信息
qi选项只能查询已安装的软件包的详细信息,如果查询未安装的软件包会提示未安装
rpm -qpl xxx.rpm
查询未安装软件包会向系统里面写入哪些文件,跟ql选项相对应
rpm -qR 软件名称
查询指定包所依赖信息