APT

Uit Linuxdocs.nl

Ga naar: navigatie, zoeken
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


Persoonlijke instellingen