时间:2017年08月17日星期四
说明:本文部分内容均摘取自书籍《Linux命令行与shell脚本编程大全》,版权归原作者所有。《Linux命令行与shell脚本编程大全》(第三版)第九章学习总结
第九章:安装软件程序
本章内容
安装软件
使用Debian包
使用Red Hat包
9.1 包管理基础
各种主流Linux发行版都采用了某种形式的包管理系统(package management system,PMS)来控制软件和库的安装。
PMS利用一个数据库来记录各种相关内容
Linux系统上已经安装了什么软件包
每个包安装了什么文件
每个已安装软件包的版本
软件包存储在服务器上,可以利用本地Linux系统上的PMS工具它=通过互联网访问。这些服务器称为仓库(repository)。可以用PMS工具来搜索新的软件包,或者是更新系统上已安装软件包。
PMS工具及相关命令在不同的Linux发行版上有很大的不同。Linux中广泛使用的两种主要的PMS基础工具是dpkg和rpm。
Debian
基于Debian的发行版(如Ubuntu和Linux Mint)使用的是dpkg命令,
这些发行版的PMS工具也是以该命令为基础的。
dpkg会直接和Linux系统上的PMS交互,用来安装、管理和删除软件包。
Red Hat
基于Red Hat的发行版(如Efdora、openSUSE及Mandriva)使用的是rpm命令,
该命令是其PMS的底层基础。
类似于dpkg命令,rpm命令能够列出已安装包、安装新包和删除已有软件。
9.2 基于Debian的系统
命令:dpkg
命令说明:基于Debian系统PMS工具的核心。
包含在这个PMS中的其他工具有
apt-get:搜索、安装、更新、删除软件包
apt-cache:显示软件包的一些常规信息
aptitude:常用命令。本质是apt工具和dpkg的前端
9.2.1 用aptitude管理软件包
命令:aptitude
命令说明:进入aptitude的全屏模式,并查看已经安装包信息
命令:q
命令说明:退出查看安装包信息
命令格式:aptitude show package_name
命令说明:查看包package_name的详情
说明:aptitude show命令后面的package_name参数,如果该软件包还没有安装到系统上,则输出的软件包相关的详细信息自于软件仓库。
命令:dpkg
命令说明:查看某个特定软件包相关的所有文件的列表
命令格式:dpkg -L package_name
命令说明:使用dpkg列出package_name软件包所安装的全部文件
命令格式:dpkg --search absolute_file_name
命令说明:使用绝对文件路径查找特定文件属于哪个软件包
9.2.2 用aptitude安装软件包
命令格式:aptitude search package_name
命令说明:查找指定软件包
命令格式:aptitude install package_name
命令说明:从软件仓库中安装指定软件包
9.2.3 用aptitude更新软件包
命令格式:aptitude safe-upgrade
命令说明:更新系统上所有的软件包
9.2.4 用aptitude卸载软件包
命令格式:aptitude remove package_name
命令说明:只删除软件包而不删除数据和配置文件
命令格式:aptitude purge package_name
命令说明:删除软件包和相关的数据和配置文件
命令格式:aptitude search package_name
命令说明:查看软件包信息来验证是否已删除。如果软件包名称前面是
i:表示软件包已经安装到了系统上
v:表示软件包可用,但还没安装
c:表示软件已删除,但配置文件尚未从系统中清除
p:表示软件和配置文件也已删除
9.2.5 aptitude仓库
aptitude默认的软件仓库位置是在安装Linux发行版时设置的。具体位置存储在文件/etc/apt/sources.list中。
窍门:Linux发行版的开发人员下了大工夫,以保证添加到软件仓库的包版本不会互相冲突。通常通过库来升级或安装软件包是最安全的。即使在其他地方有更新的版本,也应该等到该版本出现在你的Linux发行版仓库中的时候再安装。
当需要给你的sources.list文件添加软件仓库时,通过软件仓库网站或者各种包开发人员网站上都会有一行文本,你可以直接复制,然后粘贴到sources.list文件中。最好选择比较安全的途径并且只复制和粘贴。
9.3 基于Red Hat的系统
基于Red Hat的系统也有几种不同的可用前端工具。
常见的有以下三种
yum:在Red Hat和Fedora中使用
urpm:在Mandriva中使用
zypper:在openSUSE中使用
9.3.1 列出已安装包
命令:yum
命令说明:进行软件包管理
命令格式:yum list installed
命令说明:输出已安装的包
命令格式:yum list installed > installed_software
命令说明:输出的信息可能一闪而过,最好重定向到一个文件中
命令格式:yum list xterm
命令说明:查看xterm软件包的详细信息
命令格式:yum list installed xterm
命令说明:查看xterm软件包是否已包装
命令格式:yum provides file_name
命令说明:查找指定文件属于哪个软件包。
yum分别会查找三个仓库:base、updates和installed。
9.3.2 用yum安装软件
命令格式:yum install package_name
命令说明:安装指定package_name的软件,安装软件包及需要的库以及依赖的其他包
命令格式:yum localinstall package_name.rpm
命令说明:使用本地安装,手动下载rpm安装文件并用yum安装
9.3.3 用yum更新软件
命令格式:yum list updates
命令说明:列出所有已安装包的可用更新
命令格式:yum update package_name
命令说明:对指定package_name软件包进行更新
命令格式:yum update
命令说明:对所有软件包进行更新
9.3.4 用yum卸载软件
命令格式:yum remove package_name
命令说明:只删除软件包而保留配置文件和数据文件
命令格式:yum erase package_name
命令说明:删除软件和它所有的文件
9.3.5 处理损坏的包依赖关系
有时在安装多个软件包时,某个包的软件依赖关系可能会被另外一个包的安装覆盖掉。这叫作损坏的包依赖关系(package dependency)。
命令格式:yum clean all
命令说明:清理放错位置的文件
命令格式:yum update
命令说明:更加所有软件包
命令格式:yum deplist package_name
命令说明:显示软件包依赖关系
命令格式:yum update --skip-broken
命令说明:忽略依赖关系损坏的包,更新其他软件包
9.3.6 yum软件仓库
类似于aptitude系统,yum也是在安装发行版的时候设置的软件仓库。
窍门:坚持使用通过审核的仓库。通过审核的仓库是指该发行版官方网站上指定的库。如果你添加了未通过审核的库,就失去了稳定性方面的保证,可能陷入损坏的依赖关系惨剧中。
命令格式:yum repolist
命令说明:查看软件仓库信息
9.4 从源码安装
命令格式:tar -zxvf package_name.tar.gz
命令说明:解压安装包
使用make命令和make install命令安装。注:不同的Linux系统和软件包,安装方式可能不一致。
9.5 小结
本章讨论了如何用软件包管理系统(PMS)在命令下安装、更新或删除软件。本章介绍了aptitude、dpkg、yum命令。
本章学习命令个人总结如下
aptitude:基于Debian的系统进行软件管理
dpkg:显示软件包所安装的全部文件
yum:基于Red Hat的系统进行软件管理