29 lines
2.6 KiB
Org Mode
29 lines
2.6 KiB
Org Mode
:PROPERTIES:
|
|
:ID: b7c4f849-d1b1-4837-8634-82f6976a1473
|
|
:END:
|
|
#+title: package-manager
|
|
|
|
A package manager or package-management system is a collection of software tools that automates the process of installing, upgrading, configuring, and removing computer programs for a computer in a consistent manner.
|
|
|
|
A package manager deals with packages, distributions of software and data in archive files. Packages contain metadata, such as the software's name, description of its purpose, version number, vendor, checksum (preferably a cryptographic hash function), and a list of dependencies necessary for the software to run properly. Upon installation, metadata is stored in a local package database. Package managers typically maintain a database of software dependencies and version information to prevent software mismatches and missing prerequisites. They work closely with software repositories, binary repository managers, and app stores.
|
|
|
|
Package managers are designed to eliminate the need for manual installs and updates. This can be particularly useful for large enterprises whose operating systems typically consist of hundreds or even tens of thousands of distinct software packages.
|
|
|
|
* Functions
|
|
A software package is an archive file containing a computer program as well as necessary metadata for its deployment. The computer program can be in source code that has to be compiled and built first. Package metadata include package description, package version, and dependencies (other packages that need to be installed beforehand).
|
|
|
|
Package managers are charged with the task of finding, installing, maintaining or uninstalling software packages upon the user's command. Typical functions of a package management system include:
|
|
|
|
Working with file archivers to extract package archives
|
|
Ensuring the integrity and authenticity of the package by verifying their checksums and digital [[id:e28dfeaa-876b-4255-a25e-dcc0c909d08a][certificates]], respectively
|
|
Looking up, downloading, installing, or updating existing software from a software repository or app store
|
|
Grouping packages by function to reduce user confusion
|
|
Managing dependencies to ensure a package is installed with all packages it requires, thus avoiding "dependency hell"
|
|
|
|
* Uses
|
|
There are many instances where a package manager is used. If a programm can be modular upgraded there is usually a package manager and some kind of [[id:b75bbc20-fc24-44b9-be3a-8dbcdcbea63e][Repository]] for those packages used.
|
|
** examples
|
|
*** [[id:5fada795-19a3-4ba6-97c0-0b70bd728a2f][Linux]]
|
|
*** [[id:5f1df0e1-384f-4685-ae1e-fec2431b04e5][emacs]]
|
|
*** [[id:345d5300-432c-4f6f-98a4-4527e955927f][latex]]
|