We are still actively working on the spam issue.
Difference between revisions of "Package manager"
m (Chocolate Chip moved page Package manager on wheels to Package manager over redirect) |
|||
Line 1: | Line 1: | ||
{{Cleanup}} | {{Cleanup}} | ||
− | + | Package managers are used by some operating systems, namely the [[BSD|BSDs]] and also [[GNU/Linux]] to rationalise installation of programs in the operating system, automating installation, removal and in most cases acquiring and searching for packages from a remote repository. There are many package management systems in use by many different families of Linux distributions and operating systems. | |
− | |||
− | = GNU/Linux = | + | == GNU/Linux == |
+ | === apt and dpkg === | ||
+ | The combination of <tt>dpkg</tt> and the Advanced Packaging Tool is used in Debian and most distributions that have spun off from Debian, namely Ubuntu. | ||
− | + | To install a package: | |
+ | # apt-get install package | ||
− | + | To remove a package: | |
+ | # apt-get purge package | ||
− | To | + | To remove orphaned packages: |
+ | # apt-get --purge autoremove | ||
− | To update the package list: | + | To update the package list: |
+ | # apt-get update | ||
− | To upgrade existing packages: | + | To upgrade existing packages: |
+ | # apt-get upgrade | ||
− | To | + | To clean the package cache: |
+ | # apt-get clean | ||
− | To | + | To search for a package with a query: |
+ | $ apt-cache search query | ||
− | To | + | To get build dependencies: |
+ | # apt-get build-dep package | ||
− | + | === dnf === | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | == dnf == | ||
See page: [[DNF]] | See page: [[DNF]] | ||
− | == Zypper == | + | === Zypper === |
− | Zypper is a | + | Zypper is a CLI front end for openSUSE's package manager, libzypp. The RPM package format is used, but the package manager itself is independent from Fedora and Red Hat. |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | In contrast to many other package managers, zypper does not require the user to update the repository listings manually. The 'update' function actually updates the system (in other words, it does what other package managers refer to as "upgrading".) | |
− | + | Commands may be given in short form as shown below, which can be expanded to their full English form, for example: | |
− | + | * in - install | |
+ | * rm - remove | ||
+ | * up - update | ||
+ | * se - search | ||
− | + | To install a package: | |
+ | # zypper in package | ||
− | + | To remove a package: | |
− | + | # zypper rm package | |
− | |||
− | |||
− | |||
− | + | To update the package list and upgrade existing packages: | |
+ | # zypper up | ||
− | + | To search for a package with a query: | |
+ | $ zypper se query | ||
− | + | To add a repository to the repository list: | |
+ | # zypper ar repo | ||
− | + | To remove a repository: | |
+ | # zypper rr repo | ||
− | + | === portage === | |
+ | Portage is primarily used in the source-based Gentoo and Funtoo distributions, which means that Portage manipulates a ports tree and automates compilation of packages. | ||
− | + | To update the ports tree: | |
+ | # emerge --sync | ||
− | + | To upgrade installed packages: | |
+ | # emerge --update --deep --with-bdeps=y --newuse @world | ||
− | + | To search for a package with a query: | |
+ | # emerge --search query | ||
− | + | To install (download and compile) a package: | |
+ | # emerge package | ||
− | + | To remove a package: | |
+ | # emerge --unmerge package | ||
− | + | To simulate the installation of a package: | |
+ | # emerge --pretend package | ||
− | + | To only download the source code of a package: | |
+ | # emerge --fetchonly package | ||
− | + | To check USE flags for a package: | |
+ | # emerge -vp <variable> </code> | ||
− | + | === slackpkg === | |
− | < | + | <tt>slackpkg</tt> is Slackware's package manager. |
− | + | To install a package: | |
+ | # slackpkg install package | ||
− | + | To remove a package: | |
+ | # slackpkg remove package | ||
− | + | To search for a package with a query: | |
+ | # slackpkg search package | ||
− | + | To upgrade all installed packages: | |
+ | # slackpkg upgrade-all | ||
− | + | To update the package list: | |
+ | # slackpkg update | ||
− | + | To get information on a package: | |
+ | # slackpkg info package | ||
− | + | ==== Unofficial packages ==== | |
− | < | + | The <tt>slackpkg</tt> repositories are limited to Slackware core packages. Unofficial packages can be downloaded and added with |
− | + | <code>upgradepkg --install-new local_package.tgz</code> | |
− | + | Slackware also supports building packages from source code or from RPM packages with Slackbuild scripts. This gives the security and flexibility of building from source with the ease of package-based management. | |
− | + | To build a Slackbuild, download and extract the Slackbuild tarball, download the source tarball or <tt>.rpm<tt> file and place it in the Slackbuild directory, cd into the Slackbuild directory, optionally edit the configuration file if one exists, run the PROGRAM_NAME.Slackbuild script like so: | |
+ | # bash ./package.Slackbuild | ||
+ | After the script finishes, the last line should read "Package /tmp/PACKAGE_NAME.tgz successfuly created" if the compilation succeeded. | ||
+ | Install the package like so: | ||
+ | # upgradepkg --install-new /tmp/package.tgz | ||
− | + | === pacman === | |
− | + | See the [[Pacman|pacman]] page and also [[Yaourt|yaourt]] for the pacman wrapper. | |
− | + | === xbps === | |
− | + | To both update the package list and upgrade all installed packages: | |
+ | # xbps-install -Su | ||
− | + | To both update the package list and install a package: | |
+ | # xbps-install -Su package | ||
− | + | To remove a package: | |
+ | # xbps-remove -R package | ||
− | + | == *BSD == | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | = | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | = *BSD | ||
− | |||
− | |||
− | |||
− | |||
=== FreeBSD === | === FreeBSD === | ||
Line 205: | Line 148: | ||
Speaks for itself (replace ''packagename'' with your actual package name obviously): | Speaks for itself (replace ''packagename'' with your actual package name obviously): | ||
+ | To install a package: | ||
<code>pkg install ''packagename''</code> | <code>pkg install ''packagename''</code> | ||
+ | To remove a package: | ||
<code>pkg delete ''packagename''</code> | <code>pkg delete ''packagename''</code> | ||
+ | To show a description of the package: | ||
<code>pkg info ''packagename''</code> | <code>pkg info ''packagename''</code> | ||
+ | To search for a package with a query: | ||
<code>pkg search ''packagename''</code> | <code>pkg search ''packagename''</code> | ||
+ | To upgrade all installed packages: | ||
<code>pkg upgrade</code> | <code>pkg upgrade</code> | ||
+ | To remove all orphaned packages: | ||
<code>pkg autoremove</code> | <code>pkg autoremove</code> | ||
− | === OpenBSD == | + | ==== OpenBSD ==== |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | To | + | To install a package: |
+ | # pkg_add package | ||
− | + | To remove a package: | |
+ | # pkg_delete package | ||
− | + | To show a description of a package: | |
+ | $ pkg_info package | ||
− | = OS X = | + | == OS X == |
− | On top of the App Store and the [http://www.hack-store.com/ Hack Store], | + | On top of the App Store and the [http://www.hack-store.com/ Hack Store], third-party package managers resembling those used by GNU/Linux are available. |
− | == fink == | + | === fink === |
See the [https://www.finkproject.org/ main page.] | See the [https://www.finkproject.org/ main page.] | ||
− | == macports == | + | === macports === |
See the [https://www.macports.org/ main page.] | See the [https://www.macports.org/ main page.] | ||
− | == brew == | + | === brew === |
− | + | To install a package: | |
+ | # brew install package | ||
− | + | To remove a package: | |
+ | # brew uninstall package | ||
− | + | # brew tap repo | |
− | + | # brew update | |
− | + | # brew upgrade | |
− | + | # brew help | |
− | |||
[[Category:Package manager]] | [[Category:Package manager]] |
Revision as of 18:34, 19 December 2015
Package managers are used by some operating systems, namely the BSDs and also GNU/Linux to rationalise installation of programs in the operating system, automating installation, removal and in most cases acquiring and searching for packages from a remote repository. There are many package management systems in use by many different families of Linux distributions and operating systems.
Contents
GNU/Linux
apt and dpkg
The combination of dpkg and the Advanced Packaging Tool is used in Debian and most distributions that have spun off from Debian, namely Ubuntu.
To install a package:
# apt-get install package
To remove a package:
# apt-get purge package
To remove orphaned packages:
# apt-get --purge autoremove
To update the package list:
# apt-get update
To upgrade existing packages:
# apt-get upgrade
To clean the package cache:
# apt-get clean
To search for a package with a query:
$ apt-cache search query
To get build dependencies:
# apt-get build-dep package
dnf
See page: DNF
Zypper
Zypper is a CLI front end for openSUSE's package manager, libzypp. The RPM package format is used, but the package manager itself is independent from Fedora and Red Hat.
In contrast to many other package managers, zypper does not require the user to update the repository listings manually. The 'update' function actually updates the system (in other words, it does what other package managers refer to as "upgrading".)
Commands may be given in short form as shown below, which can be expanded to their full English form, for example:
- in - install
- rm - remove
- up - update
- se - search
To install a package:
# zypper in package
To remove a package:
# zypper rm package
To update the package list and upgrade existing packages:
# zypper up
To search for a package with a query:
$ zypper se query
To add a repository to the repository list:
# zypper ar repo
To remove a repository:
# zypper rr repo
portage
Portage is primarily used in the source-based Gentoo and Funtoo distributions, which means that Portage manipulates a ports tree and automates compilation of packages.
To update the ports tree:
# emerge --sync
To upgrade installed packages:
# emerge --update --deep --with-bdeps=y --newuse @world
To search for a package with a query:
# emerge --search query
To install (download and compile) a package:
# emerge package
To remove a package:
# emerge --unmerge package
To simulate the installation of a package:
# emerge --pretend package
To only download the source code of a package:
# emerge --fetchonly package
To check USE flags for a package:
# emerge -vp <variable>
slackpkg
slackpkg is Slackware's package manager.
To install a package:
# slackpkg install package
To remove a package:
# slackpkg remove package
To search for a package with a query:
# slackpkg search package
To upgrade all installed packages:
# slackpkg upgrade-all
To update the package list:
# slackpkg update
To get information on a package:
# slackpkg info package
Unofficial packages
The slackpkg repositories are limited to Slackware core packages. Unofficial packages can be downloaded and added with
upgradepkg --install-new local_package.tgz
Slackware also supports building packages from source code or from RPM packages with Slackbuild scripts. This gives the security and flexibility of building from source with the ease of package-based management.
To build a Slackbuild, download and extract the Slackbuild tarball, download the source tarball or .rpm file and place it in the Slackbuild directory, cd into the Slackbuild directory, optionally edit the configuration file if one exists, run the PROGRAM_NAME.Slackbuild script like so:
# bash ./package.Slackbuild
After the script finishes, the last line should read "Package /tmp/PACKAGE_NAME.tgz successfuly created" if the compilation succeeded. Install the package like so:
# upgradepkg --install-new /tmp/package.tgz
pacman
See the pacman page and also yaourt for the pacman wrapper.
xbps
To both update the package list and upgrade all installed packages:
# xbps-install -Su
To both update the package list and install a package:
# xbps-install -Su package
To remove a package:
# xbps-remove -R package
*BSD
FreeBSD
Speaks for itself (replace packagename with your actual package name obviously):
To install a package:
pkg install packagename
To remove a package:
pkg delete packagename
To show a description of the package:
pkg info packagename
To search for a package with a query:
pkg search packagename
To upgrade all installed packages:
pkg upgrade
To remove all orphaned packages:
pkg autoremove
OpenBSD
To install a package:
# pkg_add package
To remove a package:
# pkg_delete package
To show a description of a package:
$ pkg_info package
OS X
On top of the App Store and the Hack Store, third-party package managers resembling those used by GNU/Linux are available.
fink
See the main page.
macports
See the main page.
brew
To install a package:
# brew install package
To remove a package:
# brew uninstall package
# brew tap repo
# brew update
# brew upgrade
# brew help