三、常见软件包管理任务
命令行软件包管理工具可以完成许多操作,下面介绍一些较常见的。 有一点要说明,低级工具也支持软件包文件的创建(但不在本书的讨论范围)。 在下面的讨论中,单词 package_name 指软件包的实际名称,而 package_file 则是指包含该软件包的文件名。
1.在库里面查找软件包
通过使用高级工具(进行元数据搜索及提供依赖性解决的高级工具)来搜索库元数据时,可以根据 包文件 或 其描述 来查找该包。
(1)包搜索命令
系统类型 | 命令 |
---|---|
Debian 类(如:Ubuntu) | apt-get update ; apt-cache search [search_string](两个命令是一起使用的) |
Red-Hat 系统 | yum search [search_string] |
注:search_string就是文件名或其描述。
① yum search-包搜索命令
Ⅰ.在Red-Hat系统的yum库中搜索emac文本编辑器
代码语言:javascript复制yum search emac
2.安装库中的软件包
高级工具允许从库中下载、安装软件包,同时安装所有的依赖包。
(1)软件包安装命令
系统类型 | 命令 |
---|---|
Debian 类(如:Ubuntu) | apt-get update ; apt-get install [package_name] |
Red-Hat 系统 | yum install [package_name] |
① 示例
Ⅰ.
代码语言:javascript复制在 Debian 系统上安装 apt 元数据库中的 emac 文本编辑器。
apt-get update;apt-get install emacs
# 通过冒号分隔两条命令使得可共存在1行中。
3.安装软件包文件中的软件包
如果软件包文件并不是从库源中下载的,那么就可以用低级工具直接安装(但并不安装依赖性关系)。
(1)软件包安装命令
系统类型 | 命令 |
---|---|
Debian 类(如:Ubuntu) | dpkg --install package_file |
Red-Hat 系统 | rpm -i package_file |
注:package_file 则是指包含该软件包的文件名。
① 示例
Ⅰ.
代码语言:javascript复制当 emacs-22.17-7.fc7-i386.rpm 软件包文件从非库资源网站下载时,可采用以下方式安装到 Red Hat 系统中。
rpm -i emacs-22.17-7.fc7-i386.rpm
Ⅱ.注意
由于该方法采用低级 rpm 工具,所以并不会解决依赖性关系。 一旦 rpm 在安装过程中发现缺少依赖包,rpm 就会跳出错误后退出。
4.删除软件包
卸载软件包可利用高级工具和低级工具。
(1)高级工具软件包移除命令
系统类型 | 命令 |
---|---|
Debian 类(如:Ubuntu) | apt-get remove package_name |
Red-Hat 系统 | yum erase package_name |
注:
package_name 指软件包的实际名称。
① 示例
代码语言:javascript复制从 Debian 系统中卸载 emacs 软件包。
apt-get remove emacs
# apt-get 是 Debian 类的高级工具。
5.更新库中的软件包
最常见的软件包管理任务是 保持系统安装最新的软件包。高级工具仅需要一步便可完成此重要任务。(注意:这是更新库中的。)
(1)软件包更新命令
系统类型 | 命令 |
---|---|
Debian 类 | apt-get update ; apt-get upgrade |
Red Hat 系统系列 | yum update |
① 示例
Ⅰ.
代码语言:javascript复制更新所有已安装在 Debian 系统中的可更新软件包。代码如下:
apt-get update;apt-get upgrade
# 通过冒号分隔两条命令使得可共存在1行中。
6.更新软件包文件中的软件包
如果软件包的更新版本已从非库源中下载,那么我们就可以用下表所列的命令进行安装更新从而取代原版本。
(1)低级工具的软件包更新命令
系统类型 | 命令 |
---|---|
Debian 类 | dpkg --install package_file |
Red Hat 系统系列 | rpm -U package_file |
注:package_file 则是指包含该软件包的文件名。
① 示例
Ⅰ.
代码语言:javascript复制将 Red Hat 系统上已安装好的 emac 程序更新为 emacs-22.1-7.fc7-i386.rpm 软件包文件中的版本。代码如下:
rpm -U emacs-22.1-7.fc7-i386.rpm
② 注意
与 rpm 命令不同,dpkg 命令在更新软件包时并没有指定的参数选项,只有在安装软件包时才有。
7.列出已安装的软件包列表(准)
下表中所列出的命令用于显示系统上所有已安装的软件包列表。
(1)低级工具-软件包列表命令
系统类型 | 命令 |
---|---|
Debian 类 | dpkg --list |
Red Hat 系统系列 | rpm -qa |
8.判断软件包是否安装(准)
下表中所列的为低级工具用于判断系统是否已安装某个软件的命令。
(1)低级工具-软件包状态命令
系统类型 | 命令 |
---|---|
Debian 类 | dpkg --status package_name |
Red Hat 系统系列 | rpm -q package_name |
注:package_name 指软件包的实际名称。
① 示例
Ⅰ.
代码语言:javascript复制判断 emac 程序包在 Debian 系统中是否已安装。
dpkg --status emacs
9.显示已安装软件包的相关信息(准)
在已知已安装的软件包的名称 的情况下,便可用下表中的命令显示该软件包的描述信息。
(1)软件包信息查看命令
系统类型 | 命令 |
---|---|
Debian 类 | apt-cache show package_name |
Red Hat 系统系列 | **yum info package_name ** |
注:package_name 指软件包的实际名称。
① 示例
Ⅰ.
代码语言:javascript复制查看 Debian 系统上 emac 软件包的描述信息。
apt-cache show emacs
10.查看某具体文件由哪个软件包安装得到(准)
下表中的命令用来判断某个特定的文件是由哪个软件包负责安装的。
(1)低级工具-查询文件所属命令
系统类型 | 命令 |
---|---|
Debian 类 | dpkg --search file_name |
Red Hat 系统系列 | rpm -qf file_name |
① 示例
Ⅰ.
代码语言:javascript复制查看 Red Hat 系统中哪个软件包安装了 /usr/bin/vim 目录下的文件。
rpm -qf /usr/bin/vim