Apt
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 repositoriessudo rm flexiondotorg-albert-xenial.list
- Gewoon bestand verwijderensudo apt update
apt-cache policy | grep flex
- Gelukt
Zie ook
Bronnen
- http://en.wikipedia.org/wiki/Advanced_Packaging_Tool
- http://askubuntu.com/questions/231562/what-is-the-difference-between-apt-get-purge-and-apt-get-remove
- http://askubuntu.com/questions/176685/why-does-purge-not-remove-everything-related-to-an-app?rq=1
- http://en.wikipedia.org/wiki/Aptitude_%28software%29
- http://kevin.vanzonneveld.net/techblog/article/schedule_automatic_updates_on_ubuntu/
- http://askubuntu.com/questions/17823/how-to-list-all-installed-packages