Linux 包管理速查表
使用 Linux 系统总是免不了要接触包管理工具。比如,Debian/Ubuntu 的 apt、openSUSE 的 zypp、Fedora 的 yum、Mandriva 的 urpmi、Slackware 的 slackpkg、Archlinux 的 pacman、Gentoo 的 emerge、Foresight 的 conary、Pardus 的 pisi,等等。DistroWatch 针对上述包管理器的主要用法进行了总结,对各位 Linux 用户来说具有很好的参考作用。这个总结还是有一点不足,有空给大家整理一个更全面的版本。
| 任务 | apt Debian, Ubuntu |
zypp openSUSE |
yum Fedora, CentOS |
|---|---|---|---|
| 安装包 | apt-get install <pkg> | zypper install <pkg> | yum install <pkg> |
| 移除包 | apt-get remove <pkg> | zypper remove <pkg> | yum erase <pkg> |
| 更新包列表 | apt-get update | zypper refresh | yum check-update |
| 更新系统 | apt-get upgrade | zypper update | yum update |
| 列出源 | cat /etc/apt/sources.list | zypper repos | yum repolist |
| 添加源 | (edit /etc/apt/sources.list) | zypper addrepo <path> <name> | (add <repo> to /etc/yum.repos.d/) |
| 移除源 | (edit /etc/apt/sources.list) | zypper removerepo <name> | (remove <repo> from /etc/yum.repos.d/) |
| 搜索包 | apt-cache search <pkg> | zypper search <pkg> | yum search <pkg> |
| 列出已安装的包 | dpkg -l | rpm -qa | rpm -qa |
| 任务 | urpmi Mandriva |
slackpkg Slackware |
pacman Arch |
| 安装包 | urpmi <pkg> | slackpkg install <pkg> | pacman -S <pkg> |
| 移除包 | urpme <pkg> | slackpkg remove <pkg> | pacman -R <pkg> |
| 更新包列表 | urpmi.update -a | slackpkg update | pacman -Sy |
| 更新系统 | urpmi –auto-select | slackpkg upgrade-all | pacman -Su |
| 列出源 | urpmq –list-media | cat /etc/slackpkg/mirrors | cat /etc/pacman.conf |
| 添加源 | urpmi.addmedia <name> <path> | (edit /etc/slackpkg/mirrors) | (edit /etc/pacman.conf) |
| 移除源 | urpmi.removemedia <media> | (edit /etc/slackpkg/mirrors) | (edit /etc/pacman.conf) |
| 搜索包 | urpmf <pkg> | – | pacman -Qs <pkg> |
| 列出已安装的包 | rpm -qa | ls /var/log/packages/ | pacman -Qii |
| 任务 | conary rPath, Foresight |
pisi Pardus |
emerge Gentoo |
| 安装包 | conary update <pkg> | pisi install <pkg> | emerge <pkg> |
| 移除包 | conary erase <pkg> | pisi remove <pkg> | emerge -C <pkg> |
| 更新包列表 | pisi update-repo | emerge –sync | layman -S [for added repositories] | |
| 更新系统 | conary updateall | pisi upgrade | emerge -NuDa world |
| 列出源 | pisi list-repo | layman -L | |
| 添加源 | pisi add-repo <name> <path> | layman -a | |
| 移除源 | pisi remove-repo <name> | layman -d | |
| 搜索包 | conary query <pkg> | pisi search <pkg> | emerge –search |
| 列出已安装的包 | conary query | pisi list-installed | cat /var/lib/portage | more |
参考
[via DistroWatch]
没有portage……伤心了……
slackware的列出已安装的包是”cat /var/log/packages/”? 是”ls”吧?
上个表和下个表不要挤在一起,中间还是要有点分隔
竟然没有emerge
是啊,是啊,建议添加上
@LanEast: 谢谢,已更正。
@食古不化: 已补上。
现在基本都不会emerge –search,而是eix
来自distrowatch
差点以为没有arch了。。
cat /etc/apt/sources.list不够的吧,我大部分源都分类放在/etc/apt/sources.list.d下面。还有如果要清除配置文件的话应该用apt-get purge等于apt-get remove –purge,不过前者在早期的版本中没有。
还有更新系统最好用apt-get dist-upgrade。
这个很有用,谢谢Toy,排版再改进一下,在我的firefox下看的不舒服
Mandriva在国内有更新源么?不能只有光盘镜像
Archlinux 的 pacman、Gentoo 的 emerge
不错,有时候临时用别的系统时可以有个对照
对我非常有用,赞啊。
缺 smart 和 package-kit 命令行,不过 pk-… 什么的命令实在不好记。把 dbus 消息列出来?…
虽然有了这些,但作为一个习惯了debian的用户,有一个头疼的问题是,我不知道怎样去找到类似Debian里面testing或者unstable的源(要求里面的软件是比较快地更新的,而不是期望整个distribution下个版本在半年或者一年之后发行我才能用上某个软件的新版本)。比如, fedora和mandriva的源是怎样的? 甚至ubuntu的源是怎样我也不清楚。
再加上
搜索某个文件属于哪个包,redhat - rpm -qf, debian, dpkg -S
搜索某个命令或者文件属于哪个包(在没有安装这个包的情况下)
搜索某个包依赖于哪些包
Gentoo列出已安装的包应该是cat /var/lib/portage/world 或者 eix -I
pacman -Qs
应该是
pacman -Ss