GNU/Linux 套件管理
有了网络我们就可以开始安装套件,但要怎么安装套件也是门大学问,而且在不同的 GNU/Linux 发行版本 (Distribution) 中所使用的套件管理系統 (Package Management System) 也不同。Debian 血统上常用的有 dpkg, apt 和 aptitude,Red Hat 血统上常用的有 rpm 和 yum。(图形界面中也有不少套件管理员可使用,在此冻仁就不多加赘述)。
这些指令与前文 (GNU/Linux网络设定) 提到的套件库 (package reopsiroty) 一词是息息相关的,我们只需在本机下达安装某套件的指令,它即会从网络上的套件库下载并安装套件;但前题是必须知道正确的套件名称才行!其套件管理不外乎就是在做套件的搜寻、安装、升级跟移除。
作业系统 | Debian/Ubuntu | CentOS/RHEL | ||||
套件管理系统 | dpkg | aptitude | apt | rpm | yum | |
列出所有套件 | -I | -qa | list | |||
搜寻 | -I|grep | search | search | -qa|grep | search | |
检看详细咨询 | -I | show | show | -qi | info | |
安装 | -i | install | install | -ivh | install | |
更新套件库 | update | update | ||||
升级 | upgrade | upgrade | -Uvh | update | ||
移除 | -r | remove | remove | -e | remove | |
移除(含设定档) | -P | purge | purge | | ||
清除已下载的套件 | clean | clean | clean |
▲ Debian/Ubuntu, CentOS/RHEL 上常见套件管理指令。
举例说明
搜寻 (毋需管理者权限)。
# Debian/Ubuntu aptitude search <package_name> apt-cache search <package_name> dpkg -l | grep <package_name> # CentOS/RHEL yum search <package_name> rpm -qa | grep <package_name>
安装。
# Debian/Ubuntu sudo aptitude install <package_name> sudo apt-get install <package_name> sudo dpkg -i <package_name> # CentOS/RHEL sudo yum install<package_name> sudo rpm -ivh <package_name>
升级。
# Debian/Ubuntu sudo aptitude upgrade <package_name> sudo apt-get upgrade <package_name> # CentOS/RHEL sudo yum update <package_name> sudo rpm -Uvh <package_name>
移除。
# Debian/Ubuntu sudo aptitude remove <package_name> sudo apt-get remove <package_name> sudo dpkg -r <package_name> # CentOS/RHEL sudo yum remove <package_name> sudo rpm -e <package_name>
版本查询。
# Debian/Ubuntu dpkg-query -W <package_name> # CentOS/RHEL rpm -q <package_name>
从已安装的套件中搜寻档案。
# Debian/Ubuntu $ dpkg -S <package_name> $ apt-file search filename <package_name> # CentOS/RHEL $ rpm -qf <package_name> $ yum whatprovides '*target/filename' <package_name>
话说套件管理的指令也不算少,冻仁强烈建议大家使用 aptitude 及 yum 来管理套件,其最棒的是它们会自行处理套件间的相依性,可减轻不少负担。至于参数的部份,请先牢记 search, install, update, upgrade 和 remove。相信到这里我们已可完成大部份的事情了。
资料来源
- Linux上的套件管理 (rpm, dpkg, yum, apt) | 八拉八拉在 blah blah ...
- apt 用法教学- Tsung's Blog
- APT 的 clean 與 autoclean 差异 - Tsung's Blog
- RPM 与 SRPM 软体管理员 | 鸟哥的 Linux 私房菜
- Dpkg 常用指令操作快速参考 — LinuxTOY
- Official Repositories (正体中文) - ArchWiki
- centos - How do I find which rpm package supplies a file I'm looking for? - Stack Overflow
更多建议: