Skip to content

Instantly share code, notes, and snippets.

@mheiges
Last active April 21, 2021 17:18
Show Gist options
  • Save mheiges/494dd9be73d3a2a57009e92ca45114ba to your computer and use it in GitHub Desktop.
Save mheiges/494dd9be73d3a2a57009e92ca45114ba to your computer and use it in GitHub Desktop.
Action Red Hat/Fedora Debian/Ubuntu
Install a package(s) by name yum install apt-get install
Remove a package(s) by name yum remove/erase apt-get autoremove
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. yum search apt-cache search
Upgrade Packages - Install packages which have an older version already installed yum update apt-get update; apt-get upgrade
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. yum distro-sync apt-get dist-upgrade
Reinstall given Package - Will reinstall the given package without dependency hassle. yum reinstall apt-get install --reinstall
Installs local package file, e.g. app.rpm and uses the installation sources to resolve dependencies yum localinstall dpkg -i && apt-get install -f
Updates package(s) with local packages and uses the installation sources to resolve dependencies yum localupdate debi
Use some magic to fix broken dependencies in a system package-cleanup --problems apt-get --fix-broken
aptitude install
Only downloads the given package(s) without unpacking or installing them yumdownloader (found in yum-utils package) apt-get install --download-only (into the package cache)
apt-get download (bypass the package cache)
Remove dependencies that are no longer needed, because e.g. the package which needed the dependencies was removed. yum autoremove apt-get autoremove
Downloads the corresponding source package(s) to the given package name(s) yumdownloader --source apt-get source / debcheckout
Remove packages no longer included in any repositories. package-cleanup --orphans aptitude purge '~o'
Install/Remove packages to satisfy build-dependencies. Uses information in the source package. yum-builddep apt-get build-dep
Add a package lock rule to keep its current state from being changed yum.conf <--”exclude” option (add/amend) apt-mark hold pkg
Delete a package lock rule yum.conf <--”exclude” option (remove/amend) apt-mark unhold pkg
Show a listing of all lock rules yum.conf (research needed) /etc/apt/preferences
Add a checkpoint to the package system for later rollback (unnecessary, done on every transaction)
Remove a checkpoint from the system N/A
Provide a list of all system checkpoints yum history list
Rolls entire packages back to a certain date or checkpoint. yum history rollback
Undo a single specified transaction. yum history undo
Mark a package previously installed as a dependency as explicitly required. apt-mark manual
Install package(s) as dependency / without marking as explicitly required. aptitude install 'pkg&M'
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/rpm/Packages) apt-cache stats
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. yum list or info apt-cache show / apt-cache policy
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. yum search apt-cache search
Display changelogs yum changelog (found in yum-plugin-changelog package) apt-get changelog
e-mail delivery of package changes apt-get install apt-listchanges
Lists packages which have an update available. Note: Some provide special commands to limit the output to certain installation sources, others use options. yum list updates yum check-update apt-get upgrade -> n
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. yum list available apt-cache dumpavail apt-cache dump (Cache only) apt-cache pkgnames
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. yum provides / yum whatprovides apt-file search <filename>
Display packages which require X to be installed, aka show reverse/ dependencies. yum resolvedep apt-cache rdepends / aptitude search ~Dpattern
Display packages which conflict with given expression (often package). Search can be used as well to mimic this function. repoquery --whatconflicts aptitude search '~Cpattern'
List all packages which are required for the given package, aka show dependencies. yum deplist apt-cache depends / apt-cache show
List what the current package provides yum provides dpkg -s / aptitude show
List the files that the package holds. Again, this functionality can be mimicked by other more complex commands. repoquery -l $pkgname dpkg-query -L $pkgname
List all packages that require a particular package repoquery --whatrequires [--recursive] aptitude search ~D{depends,recommends,suggests}:pattern / aptitude why pkg
Search all packages to find the one which holds the specified file. auto-apt is using this functionality. yum provides / yum whatprovides apt-file search
Display all packages that the specified packages obsoletes. yum list obsoletes apt-cache show
Verify dependencies of the complete system. Used if installation process was forcefully killed. yum deplist apt-get check
Generates a list of installed packages yum list installed dpkg --list | grep ^i
List packages that are installed but are not available in any installation source (anymore). yum list extras deborphan
List packages that were recently added to one of the installation sources, i.e. which are new to it. yum list recent aptitude search '~N' / aptitude forget-new
Show a log of actions taken by the software management. yum history cat /var/log/yum.log cat /var/log/dpkg.log
Clean up all local caches. Options might limit what is actually cleaned. Autoclean removes only unneeded, obsolete information. yum clean all apt-get clean / apt-get autoclean / aptitude clean
Add a local package to the local package cache mostly for debugging purposes. apt-cache add
Display the source package to the given package name(s) repoquery -s apt-cache showsrc
Generates an output suitable for processing with dotty for the given package(s). apt-cache dotty
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. yum-plugin-priorities and yum-plugin-protect-packages /etc/apt/preferences, apt-cache policy
Remove a previously set priority /etc/apt/preferences
Show a list of set priorities. apt-cache policy /etc/apt/preferences
Ignores problems that priorities may trigger.
Installation sources management ${EDITOR} /etc/yum.repos.d/${REPO}.repo ${EDITOR} /etc/apt/sources.list
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/yum.repos.d/${REPO}.repo apt-cdrom add
Refresh the information about the specified installation source(s) or all installation sources. yum clean expire-cache && yum check-update apt-get update
Prints a list of all installation sources including important information like URI, alias etc. cat /etc/yum.repos.d/* apt-cache policy
Disable an installation source for an operation yum --disablerepo=${REPO}
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)
Other commands
Start a shell to enter multiple commands in one session yum shell apt-config shell
Package Verification
Single package rpm -V <package> debsums
All packages rpm -Va debsums
Package Querying
List installed local packages along with version rpm -qa dpkg -l
Display local package information: Name, version, description, etc. rpm -qi dpkg -s / aptitude show
Display remote package information: Name, version, description, etc. yum info apt-cache show / aptitude show
Display files provided by local package rpm -ql dpkg -L
Display files provided by a remote package repoquery -l apt-file list pattern
Query the package which provides FILE rpm -qf (installed only) or yum whatprovides (everything) dpkg -S / dlocate
Query a package supplied on the command line rather than an entry in the package management database rpm -qp dpkg -I
Show the changelog of a package rpm -q --changelog apt-get changelog
Search locally installed package for names or descriptions rpm -qa '<str>' aptitude search '~i(~n name|~d description)'
List packages not required by any other package package-cleanup --all --leaves deborphan -anp1
Building Packages
Build a package rpmbuild -ba (normal) debuild
mock (in chroot)
Check for possible packaging issues rpmlint lintian
List the contents of a package file rpmls rpm -qpl dpkg -c
Extract a package rpm2cpio | cpio -vid dpkg-deb -x
Query a package supplied on the command line rather than an entry in the package management database rpm -qp dpkg -I

Reformatted from https://wiki.archlinux.org/index.php?title=Pacman/Rosetta&oldid=404154

@drmuey
Copy link

drmuey commented Apr 21, 2021

nice gist, thanks!

Unfortunately, apt-config shell doesn’t “start a shell to enter multiple commands in one session” it “is used to access the configuration information from a shell script”.

I would love to have an apt equivalent of yum shell without having to write it :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment