1

时间: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的系统进行软件管理

妙手空空
1.3k 声望370 粉丝

博观而约取,厚积而薄发