APT
Uit Linuxdocs.nl
| Door: | Laurens Vonder |
| Versie: | 5 |
Inhoud |
Voorwoord
In alle situaties wordt uitgegaan van het uitvoeren van commando's als root, tenzij anders aangegeven. Sudoers dienen voor elk commando 'sudo ' te plaatsen.
APT
Distro's: Debian gebaseerd
APT is een softwarepakket dat zorgt voor het snel en eenvoudig beheren van debian gebaseerde pakketten die normaal als offline variant met dpkg worden geïnstalleerd, onderhouden of verwijderd. Bovenop APT zijn verschillende schillen verkrijgbaar zoals Synaptic of Adept. Dit is distro- en windowmanager afhankelijk welke standaard geïnstalleerd zijn.
Om verbinding te maken met de verschillende servers die de pakketten aanbieden, hierna te noemen als repositories, heeft APT een lijst nodig waar de bronnen in staan. Deze lijst, /etc/apt/sources.list zou er zó uit kunnen zien:
## Official Debian repos: deb http://ftp.nluug.nl/pub/os/Linux/distr/debian/ lenny main contrib non-free deb-src http://ftp.nluug.nl/pub/os/Linux/distr/debian/ lenny main contrib non-free deb http://security.debian.org/ lenny/updates main contrib non-free deb-src http://security.debian.org/ lenny/updates main contrib non-free deb http://http.us.debian.org/debian/ lenny main contrib non-free ## US mirror: deb ftp://ftp.us.debian.org/debian/ sid main contrib non-free deb ftp://ftp.us.debian.org/debian/ testing main contrib non-free deb ftp://ftp.us.debian.org/debian/ stable main contrib non-free ## Latest drivers: deb http://ftp.de.debian.org/debian experimental main contrib non-free deb-src http://ftp.de.debian.org/debian experimental main contrib non-free ## Latest NL drivers: deb http://ftp.nl.debian.org/debian experimental main contrib non-free deb-src http://ftp.nl.debian.org/debian experimental main contrib non-free ## Stable NL drivers: deb http://ftp.nl.debian.org/debian lenny main contrib non-free deb-src http://ftp.nl.debian.org/debian lenny main contrib non-free ## WineHQ - Ubuntu 8.04 "Hardy Heron" # deb http://wine.budgetdedicated.com/apt etch main ## Opera webbrowser deb http://deb.opera.com/opera/ lenny non-free ## Debian Multimedia Christian Marrillat repository deb http://www.debian-multimedia.org lenny main deb-src http://www.debian-multimedia.org lenny main deb http://www.debian-multimedia.org testing main deb-src http://www.debian-multimedia.org testing main ## Google picasa deb http://dl.google.com/linux/deb/ stable non-free ## Unstable # deb http://ftp.debian.org/debian/ sid main contrib non-free ## FAI install / clone software deb http://www.informatik.uni-koeln.de/fai/download lenny koeln ## Other Debian repositories deb http://http.us.debian.org/debian testing main contrib non-free deb-src http://http.us.debian.org/debian testing main contrib non-free deb http://security.debian.org testing/updates main contrib non-free ## Non-free repositories: deb ftp://ftp.debian.org/debian testing main contrib non-free ## Experimental deb http://ftp.us.debian.org/debian/ experimental main contrib non-free deb http://www.debian-multimedia.org experimental main ## Tor deb http://mirror.noreply.org/pub/tor lenny main deb-src http://mirror.noreply.org/pub/tor lenny main ## Debian Volatile http://www.debian.org/volatile/ deb http://volatile.debian.org/debian-volatile lenny/volatile main contrib non-free ## Debian Unofficial Repository ## For more info visit http://debian-unofficial.org/ deb http://ftp.debian-unofficial.org/debian testing main contrib non-free restricted deb-src http://ftp.debian-unofficial.org/debian testing main contrib non-free restricted ## LXDE http://lxde.sourceforge.net/about.html PCMan is in Sid repos ## LXDE is the abbrevation of Lightweight X11 Desktop Environment deb http://people.linux.org.tw/~andrew/debian/lxde/ ./ ## swiftfox http://www.getswiftfox.com/index.htm deb http://getswiftfox.com/builds/debian unstable non-free ## moblock, mobloquer http://moblock-deb.sourceforge.net ## gpg --keyserver wwwkeys.eu.pgp.net --recv 9072870B ## gpg --export --armor 9072870B | sudo apt-key add - deb http://moblock-deb.sourceforge.net/debian lenny main deb-src http://moblock-deb.sourceforge.net/debian lenny main ## Unofficial Debian packages ## http://packages.kirya.net/ deb http://packages.kirya.net/debian/ unstable main contrib non-free deb-src http://packages.kirya.net/debian/ unstable main contrib non-free ## Star Control II - The Ur Quan Masters A really cool game!! deb http://uqm.debian.net/ stable/ ## Google software repository http://www.google.com/linuxrepositories/apt.html ##(wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add - ) ## or (gpg --keyserver subkeys.pgp.net --recv A040830F7FAC5991 && gpg --export --armor A040830F7FAC5991 | sudo apt-key add - ) # Google testing repository deb http://dl.google.com/linux/deb/ testing non-free ## Debian Official Repository deb ftp://debian.oregonstate.edu/debian/ testing main contrib non-free deb-src ftp://debian.oregonstate.edu/debian/ testing main contrib non-free ## Austrian mirror deb http://ftp.au.debian.org/debian/ testing main non-free contrib deb-src http://ftp.au.debian.org/debian/ testing main non-free contrib ## EFTel mirror updates deb http://mirror.eftel.com/debian testing main non-free contrib ## Debian.hands.com deb http://debian.hands.com/debian/ testing main non-free contrib deb-src http://debian.hands.com/debian/ testing main non-free contrib ## Other Debian mirrors: deb http://mirror.ox.ac.uk/debian testing main contrib non-free ## for freemind deb http://eric.lavar.de/comp/linux/debian/ experimental/ deb-src http://eric.lavar.de/comp/linux/debian/ experimental/ ## for some of the required dependencies of freemind 0.8 and stuff ## URL quoted cause of bad connections # deb ftp://gulus.usherbrooke.ca/debian/ unstable main contrib non-free ## http://www.os-works.com deb http://www.os-works.com/debian testing main deb-src http://www.os-works.com/debian testing main ## SA Mirrors deb http://debian.mirror.ac.za/debian/ testing main contrib non-free deb ftp://ftp.is.co.za/linux/distributions/debian/security.debian.org/ testing/updates main contrib non-free deb ftp://ftp.is.co.za/linux/distributions/debian/ftp.us.debian.org/ testing contrib main non-free deb http://debian.mirror.ac.za/debian/ unstable main contrib non-free deb http://debian.mirror.ac.za/debian/ experimental main contrib non-free ## Debian Multimedia deb http://mirror.home-dn.net/debian-multimedia testing main ## Compiz deb http://download.tuxfamily.org/osrdebian unstable compiz-fusion-git ## Debian Lenny Main Source - Non-Free deb http://ftp.de.debian.org/debian/ lenny main non-free contrib deb-src http://ftp.de.debian.org/debian/ lenny main non-free contrib
Na het toevoegen of verwijderen van repositories in deze lijst zal altijd de lijst opnieuw moeten worden ingelezen.
apt-get update
Nu kan naar wens een programma geïnstalleerd worden dat op een van de servers voorkomt.
Mocht APT met de melding komen 'Dynamic MMap ran out of room', dan is dit eenvoudig op te lossen door onderstaand bestand aan te maken of te wijzigen in onderstaande:
/etc/apt/apt.conf
APT::Cache-Limit "100000000";
Herlaad APT opnieuw zoals hierboven beschreven en het probleem moet verholpen zijn.
! Bovenstaande lijst wordt aangeraden te gebruiken in combinatie met APT Pinning.
Een lokale pakketserver aanmaken
Soms komt het voor dat bepaalde pakketten alleen los te downloaden zijn of al tijden niet meer beschikbaar in de nieuwe versie. Op zo'n moment is het handig de losse pakketten of oude broncode bestanden in een aparte directory te plaatsen en te zorgen dat APT ook daar kijkt naar updates en installatiemogelijkheden.
Bij de eerste aanmaak kunnen we een zelf te kiezen plaats aangeven waar de bestanden komen te staan, zie hieronder een voorbeeld:
mkdir /etc/apt/localrepo mkdir /etc/apt/localrepo/deb touch /etc/apt/localrepo/deb/Packages dpkg-scanpackages /etc/apt/localrepo/deb/ >/etc/apt/localrepo/deb/Packages tar -c -z -v /etc/apt/localrepo/deb/*.deb >/etc/apt/localrepo/deb/Packages.gz
Voeg nu in /etc/apt/sources.list de volgende regel toe:
deb file:/etc/apt/localrepo deb/
Eventueel is voor vervolgupdates hier een eenvoudig script voor te fabriceren, bijvoorbeeld /bin/localrepoupdate
#!/bin/bash touch /etc/apt/localrepo/deb/Packages dpkg-scanpackages /etc/apt/localrepo/deb/ >/etc/apt/localrepo/deb/Packages tar -c -z -v /etc/apt/localrepo/deb/*.deb >/etc/apt/localrepo/deb/Packages.gz
Dit bestand als uitvoerbaar aanmerken voor root:
chmod 700 /bin/localrepoupdate
Na elke keer pakketten in deze map geplaatst te hebben of eruit verwijderd is nu de lokale repository eenvoudig te updaten door middel van het uitvoeren van ons nieuwe script en daarna een apt-get update:
localrepoupdate apt-get update
Pakketten kunnen nu geïnstalleerd worden door één van onderstaande commando's
apt-get install programmanaam
aptitude install programmanaam
Alleen zoeken naar een programma of pakket kan ook:
apt-cache search pakketnaam
Overbodige bestanden verwijderen kan volautomatisch:
apt-get autoremove deborphan | xargs apt-get -y remove
Eventueel de eerste keer deborphan installeren:
apt-get -y install deborphan
Het komt soms voor dat na een deborphan actie er weer andere pakketten zijn die ook verwijderd kunnen worden. In dat geval kan bovenstaande herhaald worden tot er niets meer verwijderd hoeft te worden.
APT Pinning
APT pinning is een term voor het gebruiken van software uit andere pakketbronnen die normaal gesproken te oud of onstabiel zijn, maar in combinatie met de recente pakketten op eenvoudige wijze problemen met afhankelijkheden kunnen oplossen.
Hieronder een voorbeeld hoe dit bij een Debian Lenny Expirimental systeem wordt gedaan:
Het bestand /etc/apt/preferences zou er zó uit kunnen zien:
Package: * Pin: release o=Debian,a=lenny Pin-Priority: 900 Package: * Pin: release o=Debian,a=testing Pin-Priority: 700 Package: * Pin: release a=testing Pin-Priority: 500 Package: * Pin: release a=experimental Pin-Priority: 400 Package: * Pin: release a=sid Pin-Priority: 300 Package: * Pin: release a=unstable Pin-Priority: 100
Standaard zal het systeem kiezen voor de hoogste prioriteit, in ons geval de Lenny uitgave. Maar als we in de console of via een schil zoals Synaptic of Adept aangeven een andere versie te willen, zal het pakket uit die andere worden overgenomen. Nog beter is het om aptitude te gebruiken indien het niet lukt op de standaardwijze een pakket te installeren, daar deze in de meeste gevallen zelf de beste versies uitzoekt en bij elkaar brengt in de zelfde groep van afhankelijkheden.
Debian hanteert een aantal standaardbegrippen voor uitgaven. Stable is de uitgekauwde versie die met zeer grote zekerheid stabiel is, Testing is al stabiel, maar nog in ontwikkelingsfase, Sid is te nieuw en nog niet goed getest, en Unstable is dusdanig nieuw dat deze nog helemaal niet zijn getest op programmeerfouten (bugs). Op dit moment (september 2009) is Etch oud, Lenny stabiel en Squeeze de nieuwe, onstabiele uitgave.
Om gebruik te kunnen maken van alle uitgaven zal dit aangegeven moeten worden in /etc/apt/sources.list.
Storingen met APT
Soms lukt het niet meer om APT uit de stress te krijgen, bijvoorbeeld bij sommige repositories waar de gegevens beschadigd waren is dit een groot probleem. Het oplossen is vaak eenvoudiger dan het lijkt.
Als een bepaald pakket niet meer geconfigureerd kan worden, probeer dan eens het volgende:
rm /var/lib/apt/info/pakketnaam*
En daarna die pakketnaam te verwijderen d.m.v. apt-get remove pakketnaam* of geïnstalleerd laten zonder medeweten van apt.
APT heeft nog meer plaatsen in het systeem waar interessante gegevens te vinden zijn, zie systeemvariabelen.
How-TO's | Programma How-TO's | Hoofdpagina | Forum | Linux Nieuws | Externe links

