mirror of
https://pagure.io/fedora-docs/quick-docs.git
synced 2024-11-28 06:54:52 +00:00
119 lines
4.6 KiB
Text
119 lines
4.6 KiB
Text
= Package management system
|
||
Caleb McKee ; Otto Urpelainen; Ben Cotton
|
||
:revnumber: unspecified
|
||
:revdate: 2022-05-04
|
||
:category: Administration
|
||
:tags: How-to
|
||
// :page-aliases:
|
||
|
||
|
||
[[package-management-system]]
|
||
Package Management System
|
||
-------------------------
|
||
|
||
[[introduction]]
|
||
Introduction
|
||
~~~~~~~~~~~~
|
||
|
||
Fedora is a distribution that uses a package management system. This
|
||
system is based on https://rpm.org[rpm] , the RPM Package Manager, with
|
||
several higher level tools built on top of it, most notably
|
||
https://www.freedesktop.org/software/PackageKit/[PackageKit] (default
|
||
gui) and xref:dnf.adoc[DNF].
|
||
GNOME Software is another GUI package manager.
|
||
|
||
[[advantages-of-package-management-systems]]
|
||
Advantages of package management systems
|
||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||
|
||
Package management systems have many advantages:
|
||
|
||
* It's easy to query what version of a package is installed or available.
|
||
|
||
* It's easy to remove a package entirely, making sure all its files are gone.
|
||
|
||
* It's easy to verify the integrity of the packages files, so you can
|
||
see if it's been corrupted or tampered with.
|
||
|
||
* It's easy to upgrade a package by installing the new version and
|
||
removing all the old versions files. This will make sure not to leave
|
||
any lingering files from the old package around to confuse or break
|
||
things.
|
||
|
||
* It's easy to see what packages require or provide things that other
|
||
packages provide or require, so you can be sure to have the needed items
|
||
for the package to function correctly.
|
||
|
||
* It's easy to install or remove groups of packages.
|
||
|
||
* In many cases it's possible to downgrade back to a previous version of
|
||
a package, for example when a new version has a bug.
|
||
|
||
[[disadvantages-of-package-management-systems]]
|
||
Disadvantages of package management systems
|
||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||
|
||
* You are restricted to either using the versions of the package that
|
||
are available or having to make your own package if you need a different
|
||
version.
|
||
|
||
[[why-mixing-source-installs-and-packages-is-a-bad-idea]]
|
||
Why mixing source installs and packages is a bad idea
|
||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||
|
||
Package management systems have no way to query or note when you bypass
|
||
them and install something from source. You should avoid mixing source
|
||
installs and packaged installs for (at least) the following reasons:
|
||
|
||
* You lose all the advantages above from a package managed system.
|
||
|
||
* Installing from source may overwrite, delete, or change existing files
|
||
that are in a package, making that package not function correctly.
|
||
|
||
* The source install may override a package install causing undefined
|
||
behavior in the package or source installed item.
|
||
|
||
* Installing from source makes it impossible or very difficult for
|
||
anyone to help you debug issues, since versions can't be easily queried
|
||
and integrity checked.
|
||
|
||
* Fedora packages may include patches or configuration to work with
|
||
other packages, but upstream source does not, leading to loss of
|
||
functionality.
|
||
|
||
* Software installed from source will not upgrade with package managed
|
||
packages, leading to breakage in the source install package on upgrades
|
||
or os updates.
|
||
|
||
Strongly consider making your own package if you need a different
|
||
version or a version of some package with changes. See:
|
||
xref:package-maintainers::Packaging_Tutorial_GNU_Hello.adoc[Packaging Tutorial: GNU Hello]
|
||
|
||
[[preferred-search-order-for-a-software]]
|
||
Preferred search order for a software
|
||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||
|
||
If some software is missing in your installation then you should try the
|
||
following steps to get the packaged version:
|
||
|
||
1. Search in Fedora ( 'dnf search foo' or search for 'foo' in the
|
||
PackageKit gui )
|
||
2. Try one of the available xref:finding-and-installing-linux-applications.adoc#_enabling_third_party_repositories[third-party repositories]
|
||
3. xref:package-maintainers::Packaging_Tutorial_GNU_Hello.adoc[Build your own package]
|
||
|
||
[[package-management-tools]]
|
||
Package Management tools
|
||
~~~~~~~~~~~~~~~~~~~~~~~~
|
||
|
||
Here are some tools for managing packages:
|
||
|
||
* xref:dnf.adoc[dnf] - Dandified Yum
|
||
* https://www.freedesktop.org/software/PackageKit/[PackageKit] -
|
||
PackageKit gui tool ('add/remove software' in your menu)
|
||
* https://wiki.gnome.org/Apps/Software[GNOME Software] - Graphical package manager for GNOME
|
||
* https://apps.kde.org/discover/[KDE Discover] - Graphical package manager for KDE Plasma
|
||
* https://rpm.org[rpm] - RPM package manager.
|
||
* https://github.com/timlau/yumex-dnf[yumex] - Yum Extender
|
||
|
||
See a typo, something missing or out of date, or anything else which can be
|
||
improved? Edit this document at https://pagure.io/fedora-docs/quick-docs.
|