wiki:linux/Package management

apt, dpkg, dpkg-reconfigure, update-alternatives


Lineup of Linux distributions package handling

ArchLinux wiki: Pacman Rosetta

ActionArchRed Hat / FedoraDebian / UbuntuSUSE / openSUSEGentoo
Install a package(s) by namepacman -Syum installapt-get installzypper install
zypper in
emerge [-a]
Remove a package(s) by namepacman -Rcyum remove/eraseapt-get removezypper remove
zypper rm
emerge -C
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 -Ssyum searchapt-cache searchzypper search
zypper se [-s]
emerge -S
Upgrade Packages - Install packages which have an older version already installedpacman -Syuyum updateapt-get upgradezypper update
zypper up
emerge -u world
Upgrade Packages - Another form of the update command, which can perform more complex updates -- like distribution upgrades. When the usual update command will omit package updates, which include changes in dependencies, this command can perform those updates.pacman -Syuyum distro-syncapt-get dist-upgradezypper dupemerge -uDN world
Reinstall given Package - Will reinstall the given package without dependency hassle.pacman -Syum reinstallapt-get install --reinstallzypper install --forceemerge [-a]
Installs local package file, e.g. app.rpm and uses the installation sources to resolve dependenciespacman -Uyum localinstalldpkg -i && apt-get install -fzypper in /path/to/local.rpmemerge
Updates package(s) with local packages and uses the installation sources to resolve dependenciespacman -Uyum localupdaten/a emerge
Use some magic to fix broken dependencies in a systempacman dep level - testdb, shared lib level - findbrokenpkgs or ldddpackage-cleanup --problemsapt-get --fix-broken / aptitude installzypper verifyrevdep-rebuild
Only downloads the given package(s) without unpacking or installing thempacman -Swyumdownloader (found in yum-utils package)apt-get --download-only / aptitude downloadzypper --download-onlyemerge --fetchonly
Remove dependencies that are no longer needed, because e.g. the package which needed the dependencies was removed.pacman -Qdtq | pacman -Rs -yum autoremoveapt-get autoremovezypper rm -uemerge --depclean
Downloads the corresponding source package(s) to the given package name(s)Use ABS && makepkg -oyumdownloader --sourceapt-get source / debcheckoutzypper source-installemerge --fetchonly
Remove packages no longer included in any repositories. package-cleanup --orphans
Install/Remove? packages to satisfy build-dependencies. Uses information in the source package.automaticyum-builddepapt-get build-depzypper si -demerge -o
Add a package lock rule to keep its current state from being changed${EDITOR} /etc/pacman.conf
modify IgnorePkg? array
yum.conf <--”exclude” option (add/amend)echo "$PKGNAME hold" | dpkg --set-selectionsPut package name in /etc/zypp/locks/etc/portage/package.mask
Delete a package lock ruleremove package from IgnorePkg? line in /etc/pacman.confyum.conf <--”exclude” option (remove/amend)echo "$PKGNAME install" | dpkg --set-selectionsRemove package name from /etc/zypp/locks/etc/portage/package.mask (or package.unmask)
Show a listing of all lock rulescat /etc/pacman.confyum.conf (research needed)/etc/apt/preferencesView /etc/zypp/lockscat /etc/portage/package.mask
Package information management
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.)(see /var/lib/pacman/local)(see /var/lib/rpm/Packages)apt-cache statsn/aemerge --info
Show all or most information about a package. The tools' verbosity for the default command vary. But with options, the tools are on par with each other.pacman -[S|Q]iyum list or infoapt-cache show / apt-cache policyzypper info
zypper if
emerge -S; emerge -pv; eix
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 -Ssyum searchapt-cache searchzypper search
zypper se [-s]
emerge -S
Lists packages which have an update available. Note: Some provide special commands to limit the output to certain installation sources, others use options.pacman -Quyum list updates
yum check-update
apt-get upgrade -> nzypper list-updates
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 -Slyum list availableapt-cache dumpavail
apt-cache dump (Cache only)
apt-cache pkgnames
zypper packagesemerge -ep world
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.pkgfile <filename>yum whatprovides
yum provides
apt-file search <filename>zypper what-provides
zypper wp
equery belongs (only installed packages); pfl
Display packages which require X to be installed, aka show reverse/ dependencies.pacman -Siiyum resolvedepapt-cache rdepends / aptitude search ~DpatternIN PROGRESSequery depends
Display packages which conflict with given expression (often package). Search can be used as well to mimic this function.(none)repoquery --whatconflictsaptitude search '~Cpattern'IN PROGRESS
List all packages which are required for the given package, aka show dependencies.pacman -[S|Q]iyum deplistapt-cache depends / apt-cache showIN PROGRESSemerge -ep
List what the current package provides yum provides IN PROGRESSequery files
List the files that the package holds. Again, this functionality can be mimicked by other more complex commands.pacman -Ql $pkgname
pkgfile -l
repoquery -l $pkgnamedpkg -L / apt-file listIN PROGRESSequery files
List all packages that require a particular package repoquery --whatrequires [--recursive] equery depends -a
Search all packages to find the one which holds the specified file. auto-apt is using this functionality.pkgfile -syum provides
yum whatprovides
apt-file searchIN PROGRESSequery belongs
Display all packages that the specified packages obsoletes. yum list obsoletesapt-cache showIN PROGRESS
Verify dependencies of the complete system. Used if installation process was forcefully killed.testdbyum deplistapt-get checkn/aemerge -uDN world
Generates a list of installed packagespacman -Qyum list installeddpkg --get-selectionszypperemerge -ep world
List packages that are installed but are not available in any installation source (anymore).pacman -Qmyum list extrasdeborphanzypper 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.(none)yum list recentaptitude search '~N' / aptitude forget-newn/aeix-diff
Show a log of actions taken by the software management.cat /var/log/pacman.logyum history cat /var/log/yum.logcat /var/log/dpkg.logcat /var/log/zypp/historylocated in /var/log/portage
Clean up all local caches. Options might limit what is actually cleaned. Autoclean removes only unneeded, obsolete information.pacman -Sc
pacman -Scc
yum cleanapt-get clean / apt-get autoclean / aptitude cleanzypper cleaneclean distfiles
Add a local package to the local package cache mostly for debugging purposes.cp $pkgname /var/cache/pacman/pkg/apt-cache addn/acp $srcfile /usr/portage/distfiles
Display the source package to the given package name(s) repoquery -sapt-cache showsrcn/a
Generates an output suitable for processing with dotty for the given package(s). apt-cache dottyn/a
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.${EDITOR} /etc/pacman.conf
Modify HoldPkg and/or IgnorePkg arrays
yum-plugin-priorities and yum-plugin-protect-packages/etc/apt/preferences, apt-cache policyzypper mr -p${EDITOR} /etc/portage/package.keywords
Add a line with =category/package-version
Remove a previously set priority /etc/apt/preferenceszypper mr -p${EDITOR} /etc/portage/package.keywords
remove offending line
Show a list of set priorities. apt-cache policy
/etc/apt/preferences
n/acat /etc/portage/package.keywords
Installation sources management${EDITOR} /etc/pacman.conf${EDITOR} /etc/yum.repos.d/${REPO}.repo${EDITOR} /etc/apt/sources.listlayman
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 and yum force editing a sources list. apt-cdrom is a special command, which offers special options design for CDs/DVDs as source.${EDITOR} /etc/pacman.conf${EDITOR} /etc/yum.repos.d/${REPO}.repoapt-cdrom addzypper service-addlayman, overlays
Refresh the information about the specified installation source(s) or all installation sources.pacman -Syyum clean expire-cache && yum check-updateapt-get updatezypper refresh
zypper ref
layman -f
Prints a list of all installation sources including important information like URI, alias etc.cat /etc/pacman.d/mirrorlistcat /etc/yum.repos.d/* zypper service-listlayman -l
Disable an installation source for an operation yum --disablerepo=${REPO} emerge package::repo-to-use
Download packages from a different version of the distribution than the one installed. yum --releasever=${VERSION}apt-get install -t release package/ apt-get install package/release (deps not covered) echo "category/package ~amd64" >> /etc/portage/package.keywords && emerge package
Other commands
Start a shell to enter multiple commands in one session yum shellapt-config shellzypper shell
Package Verification
Single packagepacman -Qk[k] <package>rpm -V <package>debsumsrpm -V <package>equery check
All packagespacman -Qk[k]rpm -Vadebsumsrpm -Vaequery check
Package Querying
List installed local packages along with versionpacman -Qrpm -qadpkg -l emerge -e world
Display local package information: Name, version, description, etc.pacman -Qirpm -qidpkg -s emerge -pv and emerge -S
Display remote package information: Name, version, description, etc.pacman -Siyum infoapt-cache show / aptitude show emerge -pv and emerge -S
Display files provided by local packagepacman -Qlrpm -qldpkg -L equery files
Display files provided by a remote packagepkgfile -lrepoquery -l pfl
Query the package which provides FILEpacman -Qorpm -qf (installed only) or yum whatprovides (everything)dpkg -S/dlocate equery belongs
Query a package supplied on the command line rather than an entry in the package management databasepacman -Qprpm -qpdpkg -I
Show the changelog of a packagepacman -Qcrpm -q --changelogapt-get changelog equery changes -f
Search locally installed package for names or descriptionspacman -Qs aptitude search '~i(~nexpr|~dexpr)' eix -S -I
Building Packages
Build a packagemakepkg -srpmbuild -ba (normal) mock (in chroot)debuildrpmbuild -baebuild; quickpkg
Check for possible packaging issues rpmlintlintian repoman
List the contents of a package filepacman -Qpl <file>rpmls rpm -qpldpkg -Lrpm -qpl
Extract a packagetar -Jxvfrpm2cpio | cpio -vidar vx | tar -zxvf data.tar.gzrpm2cpio | cpio -vidtar -jxvf
Query a package supplied on the command line rather than an entry in the package management databasepacman -Qprpm -qpdpkg -I
Last modified 5 years ago Last modified on Feb 20, 2014, 3:14:28 PM