Package management (Linux): verschil tussen versies

Uit De Vliegende Brigade
Naar navigatie springen Naar zoeken springen
 
(3 tussenliggende versies door dezelfde gebruiker niet weergegeven)
Regel 1: Regel 1:
''Package management'' heeft betrekking op een verzameling software-tools voor installatie, configuratie, upgrading en verwijdering van programmatuur op een computer op een consistente manier. Van oorsprong werd op Linux of Unix software vanaf broncode gecompileerd en geïnstalleerd. Naarmate deze platformen populairder werden, nam de behoefte toe aan een geautomatiseerde manier om software te beheren. Dit nam de vorm aan van wat we nu kennen als package management.
+
''Package management'' heeft betrekking op het consistente beheer van software-onderdelen binnen een bepaalde omgeving (operating system, applicatie, cms, etc.). Wat een package manager zoal doet:
 
 
Debian en afgeleide distributies zoals Unbuntu en Linux mint, gebruiken ''Apt'' (''Advanced Packaging Tool'') voor package management. Arch Linux gebruikt ''Pacman'', FreeBSD gebruikt ''Portage'', etc. Dit artikel gaat vooral over Apt op Linux Mint.
 
 
 
Wat een package manager zoal doet:
 
  
 
* Download, installatie, bijwerken, configureren en verwijderen van programmatuur
 
* Download, installatie, bijwerken, configureren en verwijderen van programmatuur
 
* Dependency resolution
 
* Dependency resolution
 
* Controleren op beschikbaarheid van updates.
 
* Controleren op beschikbaarheid van updates.
 +
 +
Van oorsprong werd software op Linux en Unix vanaf broncode gecompileerd en geïnstalleerd. Naarmate deze platformen populairder werden, nam de behoefte toe aan een geautomatiseerde manier om software te beheren. Dit nam de vorm aan van wat we nu kennen als package management. Package management is niet beperkt tot alleen applicaties. Het wordt ook toegepast op ''plugis'' of ''modules'' voor bv. content management-systemen of voor beheer van libraries voor programmeertalen.
 +
 +
== Voorbeelden ==
 +
 +
* [[Apt]]: Package manager voor Debian en afgeleide distributies zoals Unbuntu en Linux mint
 +
* [https://wiki.archlinux.org/index.php/pacman pacman]: Package manager voor Arch Linux
 +
* [https://en.wikipedia.org/wiki/Portage_(software) Portage]: Package manager voor oa. Gentoo Linux & FreeBSD
 +
* [https://en.wikipedia.org/wiki/RPM_Package_Manager RPM]: ''Redhat Package Manager'' voor Redhat en afgeleide distributies. In mijn beleving is RPM de grote tegenhanger van Apt. ''Yum'' is een software-tool voor RPM
 +
* [[Composer]]: Application-level package manager for PHP - Regelt de depencies ''binnen'' een applicatie
 +
* [[Pip (Python) | Pip]]: Package manager voor Python.
 +
 +
Dit artikel gaat primair over Apt op Linux Mint.
  
 
== Dependency Resolution ==
 
== Dependency Resolution ==
  
Misschien dat ''dependency resolution'' zowaar de belangrijkste functie van een package manager is. Als er bv. een nieuwe versie van Ubuntu uitkomt, heb je standaard de beschikking tot een hoop software die precies bij die versie van Ubuntu past. Of andersom: Een tijdje geleden merkte ik op dat ik op een computer de actuele versie van PHP niet kon installeren. Al snel bleek dat het OS (Ubuntu Server of Linux Mint) te oud was voor de gewenste versie van PHP, en dat het tijd was om het hele OS te upgraden.
+
Wellicht dat ''dependency resolution'' zowaar de belangrijkste functie van een package manager is. Als er bv. een nieuwe versie van Ubuntu uitkomt, heb je standaard de beschikking tot een hoop software die precies bij die versie van Ubuntu past. Of andersom: Een tijdje geleden merkte ik op dat ik op een computer de actuele versie van PHP niet kon installeren. Al snel bleek dat het OS (Ubuntu Server of Linux Mint) te oud was voor de gewenste versie van PHP, en dat het tijd was om het hele OS te upgraden.
  
 
Het is de afwezigheid van dependency resolution waarom Arch Linux doorgaans ongeschikt wordt geacht voor zakelijk gebruik: Je hebt geen garantie dat de dingen die je installeert, niet met elkaar conflicteren.  
 
Het is de afwezigheid van dependency resolution waarom Arch Linux doorgaans ongeschikt wordt geacht voor zakelijk gebruik: Je hebt geen garantie dat de dingen die je installeert, niet met elkaar conflicteren.  
 +
 +
Dependency resolution speelt in het bijzonder een rol wanneer er gebruik wordt gemaakt van ''shared libraries'', aka. ''dynamically linked libraries'' itt. ''statically linked libraries'' en de daaruitvloeiende noodzaak om verschillende versies van libraries te beheren. Ziehier de geboorte van [https://en.wikipedia.org/wiki/DLL_Hell DLL Hell] op Microsoft Windows.
  
 
== Packages ==
 
== Packages ==

Huidige versie van 27 jan 2021 om 14:00

Package management heeft betrekking op het consistente beheer van software-onderdelen binnen een bepaalde omgeving (operating system, applicatie, cms, etc.). Wat een package manager zoal doet:

  • Download, installatie, bijwerken, configureren en verwijderen van programmatuur
  • Dependency resolution
  • Controleren op beschikbaarheid van updates.

Van oorsprong werd software op Linux en Unix vanaf broncode gecompileerd en geïnstalleerd. Naarmate deze platformen populairder werden, nam de behoefte toe aan een geautomatiseerde manier om software te beheren. Dit nam de vorm aan van wat we nu kennen als package management. Package management is niet beperkt tot alleen applicaties. Het wordt ook toegepast op plugis of modules voor bv. content management-systemen of voor beheer van libraries voor programmeertalen.

Voorbeelden

  • Apt: Package manager voor Debian en afgeleide distributies zoals Unbuntu en Linux mint
  • pacman: Package manager voor Arch Linux
  • Portage: Package manager voor oa. Gentoo Linux & FreeBSD
  • RPM: Redhat Package Manager voor Redhat en afgeleide distributies. In mijn beleving is RPM de grote tegenhanger van Apt. Yum is een software-tool voor RPM
  • Composer: Application-level package manager for PHP - Regelt de depencies binnen een applicatie
  • Pip: Package manager voor Python.

Dit artikel gaat primair over Apt op Linux Mint.

Dependency Resolution

Wellicht dat dependency resolution zowaar de belangrijkste functie van een package manager is. Als er bv. een nieuwe versie van Ubuntu uitkomt, heb je standaard de beschikking tot een hoop software die precies bij die versie van Ubuntu past. Of andersom: Een tijdje geleden merkte ik op dat ik op een computer de actuele versie van PHP niet kon installeren. Al snel bleek dat het OS (Ubuntu Server of Linux Mint) te oud was voor de gewenste versie van PHP, en dat het tijd was om het hele OS te upgraden.

Het is de afwezigheid van dependency resolution waarom Arch Linux doorgaans ongeschikt wordt geacht voor zakelijk gebruik: Je hebt geen garantie dat de dingen die je installeert, niet met elkaar conflicteren.

Dependency resolution speelt in het bijzonder een rol wanneer er gebruik wordt gemaakt van shared libraries, aka. dynamically linked libraries itt. statically linked libraries en de daaruitvloeiende noodzaak om verschillende versies van libraries te beheren. Ziehier de geboorte van DLL Hell op Microsoft Windows.

Packages

Een package is basically een archiefbestand met installatiebestanden (dus de software en bijbehorende bestanden die geïnstalleerd moeten worden) en metadata.

Wat de metadata zoal inhoud:

  • Naam van het software-pakket
  • Beschrijving
  • Versienummer
  • Leverancier
  • Checksum
  • Lijst van dependencies.

Zie ook

Bronnen