pacman/各软件包管理器命令对应关系
外觀
< Pacman
這個頁面用表格展示一些流行的 Linux 發行版包管理器命令的對應關係。這是受到 openSUSE's Software Management Command Line Comparison 的啟發而成的。
提示:Arch 用戶在臨時處理其他發行版時可以用 pacapt,它是對其它包管理器的簡單包裝。
| 行為 | Arch | Red Hat/Fedora | Debian/Ubuntu | SLES/openSUSE | Gentoo |
|---|---|---|---|---|---|
| 搜索軟件包(們)。 默認情況下搜索的確切字段因每個工具而異。大多數選項都會帶來同等水平的工具。 | pacman -Ss |
dnf search |
apt search |
zypper search 或 zypper se [-s] |
emerge --search (-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,或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或dnf makecache或dnf upgrade(升級時自動刷新) |
apt update |
zypper refresh 或 zypper ref |
emerge --sync
|
| 升級軟件包 - 安裝已經有舊版本安裝的軟件包 | pacman -Syu |
dnf upgrade |
apt upgrade |
zypper update 或 zypper up |
emerge -[a]uDN @world
|
| 升級軟件包 -另一種的升級命令, 可以完成更複雜的升級 -- 比如發行版升級. 當普通的更新命令會忽略軟件包更新時,包括依賴關係的一些變化使用這個命令可以進行更新. | 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) |
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 + workaround) | 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)
|
| 清理本地所有緩存。可以使用選項顯示實際清理的內容 | pacman -Sc或pacman -Scc |
dnf clean all |
apt autoclean removes only unneeded, obsolete information或apt clean |
zypper clean |
eclean distfiles
|
| 打開一個Shell來在一個會話裡輸入多個命令 | dnf shell |
zypper shell |
|||
| 顯示關於軟件包管理行為的日誌 | read /var/log/pacman.log |
dnf history |
read /var/log/dpkg.log |
read /var/log/zypp/history或zypper-log provided by an additional package |
read /var/log/portage
|
| 獲取整個系統信息的轉儲-打印、保存或類似於包管理系統的當前狀態。首選輸出是文本或XML。(注意:為什麼選擇其中之一或此處?沒有工具提供選擇輸出格式的選項。) | 見 /var/lib/pacman/local |
見 /var/lib/rpm/Packages |
apt-cache stats |
emerge --info
| |
| 通過電子郵件發送軟件包的變更 | apt install apt-listchanges |
eselect news read
|
| Action | Arch | Red Hat/Fedora | Debian/Ubuntu | SLES/openSUSE | Gentoo |
|---|---|---|---|---|---|
| 顯示關於一個軟件包的全部或者大多數信息。針對默認命令,每個根據的信息詳細程度各不相同。但通過選項,各個工具可以達到大致相同的詳細程度。 | pacman -Si或pacman -Qi |
dnf list 或 dnf info |
apt show 或 apt-cache policy |
zypper info或zypper if |
emerge -S, emerge -pv或eix
|
| 顯示本地軟件包信息:名稱、版本、描述等等 | pacman -Qi |
rpm -qi / dnf info installed |
dpkg -s 或 aptitude show |
zypper --no-remote info或rpm -qi |
emerge -pv或emerge -S
|
| 顯示遠端軟件包信息:名稱、版本、描述等等 | pacman -Si |
dnf info |
apt-cache show 或 aptitude show |
zypper info |
emerge -pv and emerge -S或equery meta
|
| 顯示由本地軟件包提供的文件 | pacman -Ql |
rpm -ql |
dpkg -L |
rpm -ql |
equery files或qlist
|
| 顯示由遠端軟件包提供的文件 | pacman -Fl |
dnf repoquery -l或repoquery -l (from package yum-utils) |
apt-file list |
pfl
| |
| 查詢擁有某個文件的軟件包 | pacman -Qo |
rpm -qf (installed only)或dnf provides (everything)或repoquery -f (from package yum-utils) |
dpkg -S或dlocate |
rpm -qf (installed only)或zypper search -f (everything) |
equery belongs 或 qfile
|
| 列出軟件包所提供的文件. 同樣,這個功能可以被其他更複雜的命令實現 | pacman -Ql或pacman -Fl |
dnf repoquery -l |
dpkg-query -L |
rpm -ql |
equery files 或 qlist
|
| 顯示提供給定表達式的包,也稱為反向提供。主要是搜索特定字段的快捷方式。其他工具可能通過搜索命令提供此功能。 | pacman -F |
dnf provides |
apt-file search |
zypper what-provides或zypper wp (exact match)或zypper se --provides (fuzzy match) |
equery belongs (only installed packages)或pfl
|
| 搜索所有軟件包以找到持有某個特定文件的包 | pacman -F |
dnf provides |
apt-file search或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
|
| Action | Arch | Red Hat/Fedora | Debian/Ubuntu | SLES/openSUSE | Gentoo |
|---|---|---|---|---|---|
| 通過軟件包的名稱、描述、簡介來檢索軟件包。不同工具檢索的字段可能有所不同,大多數選項可以使這些工具的功能趨於一致 | pacman -Ss |
dnf search |
apt search |
zypper search 或 zypper se -s |
emerge -S 或 eix
|
| 列出有可用更新的軟件包。注意:有些工具提供特殊命令來限制輸出到某些安裝源,而有些工具則使用選項來實現相同的功能。 | pacman -Qu |
dnf list updates 或 dnf check-update |
apt list --upgradable |
zypper list-updates或zypper patch-check (just for patches) |
emerge -uDNp @world
|
| 顯示由軟件包管理器處理的所有安裝源中的軟件包列表。一些工具提供選項或額外的命令來限制輸出到特定的安裝源。 | pacman -Sl |
dnf list available |
apt-cache dumpavail或apt-cache dump (Cache only)或apt-cache pkgnames |
zypper packages |
portageq all_best_visible /
|
| 生成一個已安裝軟件包的列表 | pacman -Q |
dnf list installed |
dpkg --list | grep ^i |
zypper packages --installed-only |
qlist -IC
|
| 列出已安裝但不(再)屬於任何軟件源的軟件包 | pacman -Qm |
dnf list extras |
apt --installed list | grep ,local |
zypper packages --installed-only --orphaned |
eix-test-obsolete
|
| 列出最近添加到其中一個安裝源的軟件包,即其中一個安裝源中新增的軟件包。 | dnf list recent |
aptitude search '~N'或aptitude forget-new |
eix-diff
| ||
| 列出本地已安裝的軟件包及版本 | pacman -Q |
rpm -qa |
dpkg -l或apt list --installed |
zypper search -si或rpm -qa |
qlist -ICv
|
| 搜索本地已安裝的軟件包名或描述 | pacman -Qs |
rpm -qa '*<str>*' |
aptitude search '~i(~n $name|~d $description)' |
zypper search --installed-only --search-descriptions |
eix -S -I
|
| 列出不再被任何軟件包所需要的依賴 | pacman -Qtt |
dnf leaves或package-cleanup --leaves --all |
deborphan -anp1 |
zypper packages --unneeded |
emerge -pc
|
| 列出顯式安裝的軟件包(不作為任何其他軟件包的依賴而安裝) | pacman -Qe |
dnf history userinstalled |
apt-mark showmanual |
zypper search | grep -E '^i\+' (workaround) |
emerge -pvO @selected或eix --selected
|
| 列出(作為依賴)自動安裝的軟件包 | pacman -Qd |
zypper search | grep -E '^i[^+]' (workaround) |
apt-mark showauto |
||
| Action | Arch | Red Hat/Fedora | Debian/Ubuntu | SLES/openSUSE | Gentoo |
|---|---|---|---|---|---|
| 顯示需要安裝X的包,也稱為顯示反向依賴關係 | pacman -Sii或pacman -Qii |
dnf repoquery --alldeps --whatrequires或repoquery --whatrequires |
apt-cache rdepends或aptitude search ~D$pattern |
zypper search --requires |
equery depends
|
| 顯示與給定表達式(通常是軟件包)衝突的軟件包。也可以使用搜索功能來模仿此功能。 | pacman -Si或pacman -Qi |
dnf repoquery --conflicts |
aptitude search '~C$pattern' |
zypper search --conflicts |
|
| 列出所有為給定軟件包所需的軟件包,也就是顯示依賴項 | pacman -Si或pacman -Qi |
dnf repoquery --requires或repoquery -R |
apt-cache depends或apt-cache show |
zypper info --requires |
emerge -ep
|
| 列出當前軟件包提供的內容 | pacman -Sii或pacman -Qii |
dnf repoquery --provides |
dpkg -s或aptitude show |
zypper info --provides |
equery files或qlist
|
| 列出所有需要特定軟件包的軟件包 | pacman -Sii |
dnf repoquery --installed --alldeps --whatrequires |
aptitude search ~D{depends,recommends,suggests}:$pattern或aptitude why或apt-cache rdepends |
zypper search --requires |
equery depends -a
|
| Display all packages that the specified packages obsoletes. | pacman -Si或pacman -Qi |
dnf list obsoletes |
apt-cache show |
zypper info --obsoletes |
|
| Generates an output suitable for processing with dotty for the given package(s). | apt-cache dotty |
| Action | Arch | Red Hat/Fedora | Debian/Ubuntu | SLES/openSUSE | Gentoo |
|---|---|---|---|---|---|
| 軟件源管理 | 編輯 /etc/pacman.conf |
編輯 /etc/yum.repos.d/${REPO}.repo |
編輯 /etc/apt/sources.list或者apt edit-source |
編輯 /etc/zypp/repos.d/${REPO}.repo |
layman或eselect repository
|
| 將安裝源添加到系統中。一些工具為某些源提供了額外的命令,而另一些工具則允許添加命令使用所有類型的源URI。還有一些,比如apt強制編輯源列表。apt-cdrom是一個特殊的命令,為CD/DVD作為源提供了選項。 | edit /etc/pacman.conf |
dnf config-manager |
apt-cdrom add |
zypper ar <URL or .repo file> |
layman或overlays
|
| 刷新所有或指定安裝源的信息 | pacman -Sy (always upgrade the whole system afterwards) |
dnf clean expire-cache and then dnf check-update |
apt-get update |
zypper refresh或zypper ref [-s] |
emerge --sync或layman -S
|
| 打印所有安裝源的列表,包括URI、別名等重要信息。 | cat /etc/pacman.d/mirrorlist |
cat /etc/yum.repos.d/* |
apt-cache policy |
zypper repos或zypper lr --uri --alias |
layman -l或eselect repository list
|
| 列出某一個倉庫中的所有軟件包 | paclist <repo> |
zypper packages -r <repo> or zypper pa -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或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或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或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或view /etc/zypp/locks |
cat /etc/portage/package.mask
| |
| Set the priority of the given package to avoid upgrade, force downgrade或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或/etc/apt/preferences |
zypper lr -p |
grep -r . /etc/portage/package.accept_keywords
|
| 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
|
| 重新安裝給定的軟件包。這將重新安裝給定的包,而不會產生依賴性問題。 | pacman -S |
dnf reinstall |
apt install --reinstall |
zypper install --force |
emerge -1O
|
| 驗證整個系統的依賴關係; 安裝過程被強制終止時使用 | 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或lddd (from devtools包) |
dnf repoquery --unsatisfied |
apt-get --fix-broken and then aptitude install |
zypper verify |
revdep-rebuild
| |
| 為軟件包系統添加一個檢查點,以備後續回滾。 | (unnecessary, it is done on every transaction) | n/a | |||
| 從系統中移除一個檢查點。 | n/a | n/a | n/a | ||
| 提供所有系統檢查點的列表。 | n/a | dnf history list |
n/a | ||
| 將整個軟件包回滾到特定日期或檢查點 | n/a | dnf history rollback |
n/a | ||
| 撤銷單個指定的事務 | n/a | dnf history undo |
n/a |
| Action | Arch | Red Hat/Fedora | Debian/Ubuntu | SLES/openSUSE | Gentoo |
|---|---|---|---|---|---|
| 查詢命令行上提供的包,而不是包管理數據庫中的條目 | 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 |
dpkg -i |
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或debcheckout |
zypper source-install |
emerge --fetchonly
|
| 構建一個軟件包 | makepkg -s |
rpmbuild -ba (normal)或mock (in chroot) |
debuild |
rpmbuild -ba, then build, and then osc build |
ebuild或quickpkg
|
| 檢查可能的打包問題 | namcap (requires namcap包) |
rpmlint | lintian | rpmlint | repoman |
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.