Apt

Uit De Vliegende Brigade
Naar navigatie springen Naar zoeken springen

Rond 2010 kwam ik ergens een lijstje tegen van basisvaardigheden om effectief van Linux gebruik te kunnen maken. Dat lijstje heb ik helaas niet meer kunnen terugvinden, maar twee items die ik me nog kan herinneren:

  • Snap hoe bestands- & maprechten werken
  • Ken je package manager.

Dit artikel gaat over dit tweede punt, in zoverre de betrekking heeft op Linux Mint, en in bredere zin Ubuntu en Debian.

APT

APT (apt voor kort) staat voor Advanced Packaging Tool. Het is een programma voor installatie en verwijdering van software op Debian en afgeleide Linux-distributies zoals Ubuntu en Linux Mint. Iets precieser: apt is van oorsprong een front-end voor dpkg om .deb-bestanden te verwerken. Later is apt uitgebreid met de mogelijkheid om oa. rpm-pakketten te kunnen verwerken en de mogelijkheid om paketten te beheren op OS X, iPhone en Solaris.

  • Apt kent diverse functies zoals apt-get en apt-cache.
  • Apt werkt met repositories. Dat zijn locaties waar paketten beschikbaar zijn. In het bestand etc/apt/sources.list staan de repositories vermeld. Cd-roms kunnen ook als repository dienen.

apt-cache showpkg

Met het commando apt-cache met optie showpkg wordt de inhoud van een pakket getoond. Dat is handig om te achterhalen wat er nu in een pakket zit met een onduidelijke naam (bv. apt-cache showpkg menu of apt-cache showpkg mc) of om in te schatten hoe belangrijk een pakket is, aan de hand van de lijst bij Reverse Depends.

Voorbeeld:

strompf@linz:~$ apt-cache showpkg xorg
Package: xorg
Versions: 
1:7.4+3ubuntu10 (/var/lib/apt/lists/nl.archive.ubuntu.com_ubuntu_dists_karmic-updates_main_binary-i386_Packages) (/var/lib/dpkg/status)
 Description Language: 
                 File: /var/lib/apt/lists/nl.archive.ubuntu.com_ubuntu_dists_karmic-updates_main_binary-i386_Packages
                  MD5: f5abde5fb283cb96048a3d3a5fe06e17

1:7.4+3ubuntu7 (/var/lib/apt/lists/nl.archive.ubuntu.com_ubuntu_dists_karmic_main_binary-i386_Packages)
 Description Language: 
                 File: /var/lib/apt/lists/nl.archive.ubuntu.com_ubuntu_dists_karmic_main_binary-i386_Packages
                  MD5: f5abde5fb283cb96048a3d3a5fe06e17


Reverse Depends: 

  mythbuntu-desktop,xorg
  lubuntu-desktop,xorg
  xubuntu-desktop,xorg
  xfce4,xorg
  ubuntustudio-desktop,xorg
  ubuntu-mid,xorg
  kde-full,xorg
  brdesktop-common,xorg
  ubuntu-netbook-remix,xorg
  ubuntu-desktop,xorg
  ltsp-client,xorg
  kubuntu-netbook,xorg
  kubuntu-desktop,xorg

Dependencies: 

1:7.4+3ubuntu10 - 
xserver-xorg (0 (null)) libgl1-mesa-glx (16 (null)) libgl1 (0 (null)) libgl1-mesa-dri (0 (null)) libglu1-mesa (0 (null)) xfonts-base (2 1:1.0.0-1) 
xfonts-100dpi (2 1:1.0.0-1) xfonts-75dpi (2 1:1.0.0-1) x11-apps (0 (null)) x11-session-utils (0 (null)) x11-utils (0 (null)) x11-xfs-utils (0 (null)) 
x11-xkb-utils (0 (null)) x11-xserver-utils (0 (null)) xauth (0 (null)) xinit (0 (null)) xfonts-utils (0 (null)) xkb-data (0 (null)) 
xorg-docs-core (0 (null)) xterm (16 (null)) x-terminal-emulator (0 (null)) x11-common (0 (null)) xinput (0 (null)) xorg-docs (0 (null)) 
xfonts-scalable (2 1:1.0.0-1) 1:7.4+3ubuntu7 - xserver-xorg (0 (null)) libgl1-mesa-glx (16 (null)) libgl1 (0 (null)) libgl1-mesa-dri (0 (null)) 
libglu1-mesa (0 (null)) xfonts-base (2 1:1.0.0-1) xfonts-100dpi (2 1:1.0.0-1) xfonts-75dpi (2 1:1.0.0-1) x11-apps (0 (null)) x11-session-utils (0 (null))
x11-utils (0 (null)) x11-xfs-utils (0 (null)) x11-xkb-utils (0 (null)) x11-xserver-utils (0 (null)) xauth (0 (null)) xinit (0 (null)) 
xfonts-utils (0 (null)) xkb-data (0 (null)) xorg-docs-core (0 (null)) xterm (16 (null)) x-terminal-emulator (0 (null)) x11-common (0 (null)) 
xinput (0 (null)) xorg-docs (0 (null)) xfonts-scalable (2 1:1.0.0-1) 

Provides: 

1:7.4+3ubuntu10 - x-window-system-core x-window-system 
1:7.4+3ubuntu7 - x-window-system-core x-window-system 

Reverse Provides: 

Overigens: Ik vind de output vaak karig. Meestal staat bij Provides alleen maar een versienummer. Wat er in zit, weet je dus meestal niet.

apt-get clean

Het commando apt-get clean leegt de package cache waar .deb-files bewaard worden. Met apt-get autoclean gebeurt dit automatisch.

apt-get purge

apt-get purge verwijdert programma's inclusief installatiebestanden, maar exclusief configuratiebestanden in de home dirs van gebruikers. Die configuratiebestanden zijn geplaatst door het programma zelf, en apt-get heeft daar geen weet van.

apt-get remove

Met apt-get remove kun je paketten verwijderen, bv. apt-get remove firefox. Met dit commando wordt tevens alle software verwijderd die afhankelijk zijn van het te verwijderen pakket.

Dit commando laat configuratiebestanden bestaan. Als je die ook wilt verwijderen, heb je nodig:

apt-get remove --purge <pakket>

apt-get update

Met het commando apt-get update wordt de lijst van beschikbare file updates gedownload van alle opgegeven repositories.

apt-get upgrade

Met het commando apt-get upgrade wordt alle software bijgewerkt naar de nieuwste versie die de computer kent middels apt-get update.

Aptitude

Aptitude is een grafische schil voor apt. Je kunt het ook starten binnen een terminal: Dan wordt er een tekstgebaseerde interface gebruikt.

Aptitude schijnt beter met dependencies te kunnen omgaan dan apt-get ([1]).

Geïnstalleerde pakketten weergeven

dpkg --get-selections

Geconfigureerde repositories weergeven - KLOPT NIET

apt-cache policy # KLOPT NIET

Repositories toevoegen

Standaard is een Linux-distributie voorzien van een handjevol repositories of repo's die noodzakelijk zijn om het OS bij te werken en aan te passen. Veel mensen en organisaties stellen hun programmatuur echter beschikbaar via 'eigen' reposities. Vaak is de handigste manier om dergelijke programmatuur te installeren en te beheren, door de betreffende repository toe te voegen op de betreffende computer. Dan wordt het betreffende pakket bijgewerkt via apt update en apt upgrade/

Repositories toevoegen gaat in twee stappen (geloof ik):

Sleutel toevoegen

  • De eerste stap is om de keyfile of GPG key van de betreffende repository te downloaden. Ik geloof dat dit een public key is
  • Voeg deze sleutel toe aan je verzameling van trusted keys. Dit gaat met het commando apt-key add
  • De lijst met sleutels kun je zien via apt-key list

Repository toevoegen

  • Repository toevoegen: Dus het eigenlijke toevoegen.

Zie bv. Albert (Quickstarter, Linux) voor een voorbeeld.

Repository verwijderen

Er zijn verschillende manieren om handmatig toegevoegde repositories weer te verwijden. De manier die hier beschreven wordt, is waarschijnlijk nogal primitief, maar het werkt en ik snap waarom.

Voorbeeld: Ik wil http://ppa.launchpad.net/flexiondotorg/albert/ubuntu verwijderen:

  • cd /etc/apt/sources.list.d - Overzicht van geïnstalleerde repositories
  • sudo rm flexiondotorg-albert-xenial.list - Gewoon bestand verwijderen
  • sudo apt update
  • apt-cache policy | grep flex - Gelukt

Zie ook

Bronnen