这个页面用表格展示一些流行的 Linux 发行版包管理器命令的对应关系。这是受到 openSUSE's Software Management Command Line Comparison 的启发而成的。
提示:Arch 用户在临时处理其他发行版时可以用
pacapt,它是对其它包管理器的简单包装。
行为 |
Arch |
Red Hat/Fedora |
Debian/Ubuntu |
SLES/openSUSE |
Gentoo
|
搜索软件包(们)。 What exact fields are being searched by default varies in each tool. Mostly options bring tools on par. |
pacman -Ss |
dnf search |
apt search |
zypper search 或 zypper se [-s] |
emerge --search (-s )
或 emerge --searchdesc (-S )
|
按照包名安装软件包(们) |
pacman -S |
dnf install |
apt install |
zypper install 或 zypper in |
emerge
|
获取源码包(们)并构建依赖 |
makepkg -s PKGBUILD |
dnf builddep |
apt build-dep |
zypper source-install (zypper si ) 或 zypper install -d |
emerge , or explicitly emerge --with-bdeps
|
不进行实际操作,只输出操作目标
|
pacman --print (或 -p ) |
dnf --setopt=tsflags=test |
apt --simulate (or -s , --dry-run , --just-print ) |
zypper --dry-run |
emerge --pretend (-p )
|
切换是否手动确认
|
pacman --confirm 或 pacman --noconfirm |
dnf --assumeyes (-y ) 或 dnf --assumeno |
apt --yes (-y ) |
zypper --non-interactive (-n ) 或 zypper --no-confirm (-y ) |
emerge --ask (-a )
|
刷新本地软件包数据库 |
pacman -Sy (见 the warnings about partial updates) |
dnf check-update or dnf makecache |
apt update |
zypper refresh 或 zypper ref |
emerge --sync
|
升级软件包 - Install packages which have an older version already installed |
pacman -Syu |
dnf upgrade |
apt upgrade |
zypper update 或 zypper up |
emerge -[a]uDN @world
|
升级软件包 -另一种的升级命令, 可以完成更复杂的升级 -- 比如发行版升级. When the usual update command will omit package updates, which include changes in dependencies, this command can perform those updates. |
pacman -Syu |
dnf distro-sync |
apt dist-upgrade |
zypper dup |
emerge -[a]uDN @world
|
按照包名移除软件包(们)及其所有依赖 |
pacman -Rs |
dnf remove |
apt autoremove |
zypper remove 或 zypper rm |
emerge --depclean (-c )
|
按照包名移除软件包(们)及其配置文件
|
pacman -Rn |
? |
apt purge |
? |
n/a
|
按照包名移除软件包(们)及其所有依赖和配置文件 |
pacman -Rns |
? |
apt autoremove --purge |
? |
n/a
|
移除不再被需要的依赖(orphans), 例如 需要某个依赖的软件包已被移除 |
pacman -Qdtq | pacman -Rs - (-Qdttq to also remove optional deps) |
dnf autoremove |
apt autoremove |
zypper rm -u (just for removing a package) 或 zypper packages --unneeded (listing only and without recursion) |
emerge --depclean (-c )
|
移除所有不再处于任何仓库的软件包 |
pacman -Qmq | pacman -Rs - |
dnf repoquery --extras |
aptitude purge '~o' |
|
?
|
将先前作为依赖被安装的软件包标记为明确的安装 |
pacman -D --asexplicit |
dnf mark install |
apt-mark manual |
zypper install --force (workaround which needs to reinstall the package) |
emerge --select (-w )
|
将软件包作为依赖被安装 / 并不明确的标记为required |
pacman -S --asdeps |
dnf install and then dnf mark remove |
apt-mark auto |
n/a (feature request) |
emerge --oneshot (-1 )
|
仅下载指定的软件包而不解包或安装 |
pacman -Sw |
dnf download |
apt install --download-only (into the package cache) 或 apt download (bypass the package cache) |
zypper --download-only |
emerge --fetchonly (-f )
|
清理本地所有缓存。Options might limit what is actually cleaned. |
pacman -Sc or pacman -Scc |
dnf clean all |
apt autoclean removes only unneeded, obsolete information or apt clean |
zypper clean |
eclean distfiles
|
打开一个Shell来在一个会话里输入多个命令
|
|
dnf shell |
|
zypper shell |
|
Show a log of actions taken by the software management. |
read /var/log/pacman.log |
dnf history |
read /var/log/dpkg.log |
read /var/log/zypp/history |
read /var/log/portage
|
Get a dump of the whole system information - Prints, Saves or similar the current state of the package management system. Preferred output is text or XML. (Note: Why either-or here? No tool offers the option to choose the output format.) |
见 /var/lib/pacman/local |
见 /var/lib/rpm/Packages |
apt-cache stats |
|
emerge --info
|
e-mail delivery of package changes |
|
|
apt install apt-listchanges |
|
eselect news read
|
Action |
Arch |
Red Hat/Fedora |
Debian/Ubuntu |
SLES/openSUSE |
Gentoo
|
显示关于一个软件包的全部或者大多数信息。The tools' verbosity for the default command vary. But with options, the tools are on par with each other. |
pacman -Si or pacman -Qi |
dnf list 或 dnf info |
apt show 或 apt-cache policy |
zypper info or zypper if |
emerge -S , emerge -pv or eix
|
显示本地软件包信息:名称、版本、描述等等 |
pacman -Qi |
rpm -qi / dnf info installed |
dpkg -s 或 aptitude show |
zypper info or rpm -qi |
emerge -pv or emerge -S
|
显示远端软件包信息:名称、版本、描述等等 |
pacman -Si |
dnf info |
apt-cache show 或 aptitude show |
zypper info |
emerge -pv and emerge -S or equery meta
|
显示由本地软件包提供的文件 |
pacman -Ql |
rpm -ql |
dpkg -L |
rpm -ql |
equery files or qlist
|
显示由远端软件包提供的文件
|
pacman -Fl |
dnf repoquery -l or repoquery -l (from package yum-utils) |
apt-file list |
|
pfl
|
查询提供某个文件的软件包 |
pacman -Qo |
rpm -qf (installed only) or dnf provides (everything) or repoquery -f (from package yum-utils) |
dpkg -S or dlocate |
rpm -qf (installed only) or zypper search -f (everything) |
equery belongs 或 qfile
|
List the files that the package holds. Again, this functionality can be mimicked by other more complex commands. |
pacman -Ql or pacman -Fl |
dnf repoquery -l |
dpkg-query -L |
rpm -ql |
equery files 或 qlist
|
Displays packages which provide the given exp. aka reverse provides. Mainly a shortcut to search a specific field. Other tools might offer this functionality through the search command. |
pacman -F |
dnf provides |
apt-file search |
zypper what-provides or zypper wp |
equery belongs (only installed packages) or pfl
|
搜索所有软件包以找到持有某个特定文件的包 |
pacman -F |
dnf provides |
apt-file search or auto-apt is using this functionality. |
zypper search -f |
equery belongs 或 qfile
|
显示软件包的变更日志 |
pacman -Qc |
dnf changelog |
apt-get changelog |
rpm -q --changelog |
equery changes -f
|
Querying package lists[编辑 | 编辑源代码]
Action |
Arch |
Red Hat/Fedora |
Debian/Ubuntu |
SLES/openSUSE |
Gentoo
|
Search for package(s) by searching the expression in name, description, short description. What exact fields are being searched by default varies in each tool. Mostly options bring tools on par. |
pacman -Ss |
dnf search |
apt search |
zypper search 或 zypper se -s |
emerge -S 或 eix
|
列出有可用更新的软件包。Note: Some provide special commands to limit the output to certain installation sources, others use options. |
pacman -Qu |
dnf list updates 或 dnf check-update |
apt list --upgradable |
zypper list-updates or zypper patch-check (just for patches) |
emerge -uDNp @world
|
Display a list of all packages in all installation sources that are handled by the packages management. Some tools provide options or additional commands to limit the output to a specific installation source. |
pacman -Sl |
dnf list available |
apt-cache dumpavail or apt-cache dump (Cache only) or apt-cache pkgnames |
zypper packages |
portageq all_best_visible /
|
生成一个已安装软件包的列表 |
pacman -Q |
dnf list installed |
dpkg --list | grep ^i |
zypper search --installed-only |
qlist -IC
|
List packages that are installed but are not available in any installation source (anymore). |
pacman -Qm |
dnf list extras |
apt --installed list | grep ,local |
zypper se -si | grep 'System Packages' |
eix-test-obsolete
|
List packages that were recently added to one of the installation sources, i.e. which are new to it. |
|
dnf list recent |
aptitude search '~N' or aptitude forget-new |
|
eix-diff
|
List installed local packages along with version |
pacman -Q |
rpm -qa |
dpkg -l or apt list --installed |
zypper search -s or rpm -qa |
qlist -ICv
|
Search locally installed package for names or descriptions |
pacman -Qs |
rpm -qa '*<str>*' |
aptitude search '~i(~n $name|~d $description)' |
|
eix -S -I
|
List packages not required by any other package |
pacman -Qtt |
dnf leaves or package-cleanup --leaves --all |
deborphan -anp1 |
|
emerge -pc
|
List packages installed explicitly (not as dependencies) |
pacman -Qe |
dnf history userinstalled |
apt-mark showmanual |
zypper search | grep -E '^i\+' (workaround) |
emerge -pvO @selected or eix --selected
|
List packages installed automatically (as dependencies) |
pacman -Qd |
zypper search | grep -E '^i[^+]' (workaround) |
apt-mark showauto |
|
|
Querying package dependencies[编辑 | 编辑源代码]
Action |
Arch |
Red Hat/Fedora |
Debian/Ubuntu |
SLES/openSUSE |
Gentoo
|
Display packages which require X to be installed, aka show reverse dependencies. |
pacman -Sii or pacman -Qii |
dnf repoquery --alldeps --whatrequires or repoquery --whatrequires |
apt-cache rdepends or aptitude search ~D$pattern |
zypper search --requires |
equery depends
|
Display packages which conflict with given expression (often package). Search can be used as well to mimic this function. |
pacman -Si or pacman -Qi |
dnf repoquery --conflicts |
aptitude search '~C$pattern' |
|
|
List all packages which are required for the given package, aka show dependencies. |
pacman -Si or pacman -Qi |
dnf repoquery --requires or repoquery -R |
apt-cache depends or apt-cache show |
zypper info --requires |
emerge -ep
|
List what the current package provides |
pacman -Sii or pacman -Qii |
dnf repoquery --provides |
dpkg -s or aptitude show |
zypper info --provides |
equery files or qlist
|
List all packages that require a particular package |
pacman -Sii |
dnf repoquery --installed --alldeps --whatrequires |
aptitude search ~D{depends,recommends,suggests}:$pattern or aptitude why |
zypper search --requires |
equery depends -a
|
Display all packages that the specified packages obsoletes. |
pacman -Si or pacman -Qi |
dnf list obsoletes |
apt-cache show |
|
|
Generates an output suitable for processing with dotty for the given package(s). |
|
|
apt-cache dotty |
|
|
Installation sources management[编辑 | 编辑源代码]
Action |
Arch |
Red Hat/Fedora |
Debian/Ubuntu |
SLES/openSUSE |
Gentoo
|
Installation sources management |
edit /etc/pacman.conf |
edit /etc/yum.repos.d/${REPO}.repo |
edit /etc/apt/sources.list |
edit /etc/zypp/repos.d/${REPO}.repo |
layman or eselect repository
|
Add an installation source to the system. Some tools provide additional commands for certain sources, others allow all types of source URI for the add command. Again others, like apt force editing a sources list. apt-cdrom is a special command, which offers special options design for CDs/DVDs as source. |
edit /etc/pacman.conf |
dnf config-manager |
apt-cdrom add |
zypper ar <URL or .repo file> |
layman or overlays
|
Refresh the information about the specified installation source(s) or all installation sources. |
pacman -Sy (always upgrade the whole system afterwards) |
dnf clean expire-cache and then dnf check-update |
apt-get update |
zypper refresh or zypper ref |
emerge --sync or layman -S
|
Prints a list of all installation sources including important information like URI, alias etc. |
cat /etc/pacman.d/mirrorlist |
cat /etc/yum.repos.d/* |
apt-cache policy |
zypper repos or zypper lr |
layman -l or eselect repository list
|
List all packages from a certain repo |
paclist <repo> |
|
|
zypper search -r <repo> or zypper se -r <repo> |
eix --in-overlay
|
Disable an installation source for an operation |
|
dnf --disablerepo= |
|
|
emerge package::repo-to-use
|
Download packages from a different version of the distribution than the one installed. |
pacman -S repo_name/package |
dnf --releasever= |
apt-get install -t release package or apt-get install package/release (dependencies not covered) |
zypper install -r <repo> package |
echo "category/package ~amd64" >> /etc/portage/package.keywords and then emerge package
|
Action |
Arch |
Red Hat/Fedora |
Debian/Ubuntu |
SLES/openSUSE |
Gentoo
|
Add a package lock rule to keep its current state from being changed |
edit /etc/pacman.conf modifying IgnorePkg array |
edit dnf.conf adding/amending the exclude option |
apt-mark hold pkg |
zypper al or put package name in /etc/zypp/locks |
/etc/portage/package.mask
|
Delete a package lock rule |
edit /etc/pacman.conf removing package from IgnorePkg line |
|
apt-mark unhold pkg |
zypper rl or remove package name from /etc/zypp/locks |
/etc/portage/package.mask (or package.unmask )
|
Show a listing of all lock rules |
cat /etc/pacman.conf |
|
/etc/apt/preferences |
zypper ll or view /etc/zypp/locks |
cat /etc/portage/package.mask
|
Set the priority of the given package to avoid upgrade, force downgrade or to overwrite any default behavior. Can also be used to prefer a package version from a certain installation source. |
edit /etc/pacman.conf modifying HoldPkg and/or IgnorePkg arrays |
|
/etc/apt/preferences , apt-cache policy |
zypper mr -p |
edit /etc/portage/package.accept_keywords adding a line with =category/package-version
|
Remove a previously set priority |
|
|
/etc/apt/preferences |
zypper mr -p |
edit /etc/portage/package.accept_keywords removing offending line
|
Show a list of set priorities |
|
|
apt-cache policy or /etc/apt/preferences |
zypper lr -p |
grep -r . /etc/portage/package.accept_keywords
|
Ignore problems that priorities may trigger.
|
|
|
|
n/a |
|
Verification and repair[编辑 | 编辑源代码]
Action |
Arch |
Red Hat/Fedora |
Debian/Ubuntu |
SLES/openSUSE |
Gentoo
|
验证单个软件包 |
pacman -Qk (can add another k ) |
rpm -V |
debsums |
rpm -V |
equery check
|
验证所有软件包 |
pacman -Qk (can add another k ) |
rpm -Va |
debsums |
rpm -Va |
equery check
|
重新安装给定的软件包。 this will reinstall the given package without dependency hassle |
pacman -S |
dnf reinstall |
apt install --reinstall |
zypper install --force |
emerge -1O
|
验证整个系统的依赖关系; used if installation process was forcefully killed |
pacman -Dk |
dnf repoquery --requires |
apt-get check |
zypper verify |
emerge -uDN @world
|
使用一些魔法来修理损坏的依赖关系 |
for pacman dependency level, use pacman -Dk ; for shared library level, use findbrokenpkgsAUR or lddd (from devtools包) |
dnf repoquery --unsatisfied |
apt-get --fix-broken and then aptitude install |
zypper verify |
revdep-rebuild
|
Add a checkpoint to the package system for later rollback |
|
(unnecessary, it is done on every transaction) |
|
n/a |
|
Remove a checkpoint from the system |
n/a |
n/a |
|
n/a |
|
Provide a list of all system checkpoints |
n/a |
dnf history list |
|
n/a |
|
Rolls entire packages back to a certain date or checkpoint |
n/a |
dnf history rollback |
|
n/a |
|
Undo a single specified transaction |
n/a |
dnf history undo |
|
n/a |
|
Using package files and building packages[编辑 | 编辑源代码]
Action |
Arch |
Red Hat/Fedora |
Debian/Ubuntu |
SLES/openSUSE |
Gentoo
|
Query a package supplied on the command line rather than an entry in the package management database |
pacman -Qp |
rpm -qp |
dpkg -I |
|
|
List the contents of a package file |
pacman -Qpl |
rpmls rpm -qpl |
dpkg -c |
rpm -qpl |
|
Install local package file, e.g. app.rpm and uses the installation sources to resolve dependencies |
pacman -U |
dnf install |
apt install |
zypper in |
emerge
|
Updates package(s) with local packages and uses the installation sources to resolve dependencies |
pacman -U |
dnf upgrade |
debi |
|
emerge
|
Add a local package to the local package cache mostly for debugging purposes. |
cp package-filename /var/cache/pacman/pkg/ |
|
apt-cache add package-filename |
n/a |
cp package-filename /usr/portage/distfiles
|
解包一个软件包 |
tar -xvf |
rpm2cpio | cpio -vid |
dpkg-deb -x |
rpm2cpio | cpio -vid |
tar -jxvf
|
Install/Remove packages to satisfy build-dependencies. Uses information in the source package |
Use ABS and makepkg -seoc |
dnf builddep |
apt-get build-dep |
zypper si -d |
emerge -o
|
Display the source package to the given package name(s) |
|
dnf repoquery -s |
apt-cache showsrc |
n/a |
|
Download the corresponding source package(s) to the given package name(s) |
Use ABS and makepkg -o |
dnf download --source |
apt-get source or debcheckout |
zypper source-install |
emerge --fetchonly
|
构建一个软件包 |
makepkg -s |
rpmbuild -ba (normal) or mock (in chroot) |
debuild |
rpmbuild -ba , then build, and then osc build |
ebuild or quickpkg
|
检查可能的打包问题 |
namcap (requires namcap包) |
rpmlint |
lintian |
rpmlint |
repoman
|
Log file rotation[编辑 | 编辑源代码]
By default, Arch Linux does not rotate pacman.log
. See, for example, FS#11272 and FS#20428#comment66480. This is in contrast to the default policy of most other Linux distributions. Some distributions, notably Gentoo, hardly write log files by default.