De pakketbronnenlijst /etc/apt/sources.list en de bestanden die in /etc/apt/sources.list.d/ te vinden zijn, werden ontwikkeld om gelijk welk aantal actieve bronnen en een variatie aan bronmedia te ondersteunen. In de bestanden wordt elke pakketbron op een aparte regel vermeld (de één-regelstijl) of ze bevatten uit meerdere regels bestaande elementen die per element een of meer pakketbronnen definiëren (de deb822 stijl), waarbij de meest wenselijke pakketbron eerst komt (voor het geval een bepaalde versie in meer dan één pakketbron te vinden is). De op deze geconfigureerde pakketbronnen beschikbare informatie wordt opgevraagd met apt-get update (of met een equivalent commando van een ander front-end voor APT).
De map /etc/apt/sources.list.d biedt de mogelijkheid om items voor sources.list in afzonderlijke bestanden toe te voegen. Zoals beschreven wordt in de volgende twee secties, zijn twee verschillende bestandsindelingen toegelaten. Bestandsnamen moeten eindigen op .list of .sources, afhankelijk van welke indeling ze bevatten. De bestandsnamen mogen enkel letters (a-z en A-Z), cijfers (0-9), lage streepjes (_), koppeltekens (-) en punten (.) bevatten. Is dit niet het geval, dan zal APT melden dat het een bestand overgeslagen heeft, tenzij dat bestand beantwoordt aan een patroon uit de configuratielijst Dir::Ignore-Files-Silently - in dat geval zal het stilzwijgend overgeslagen worden.
Bestanden met deze indeling hebben de extensie .list. Iedere regel die een pakketbron specificeert, begint met het type (bijv. deb-src), gevolgd door opties en argumenten voor dat type. Een individueel item mag niet tot op een volgende regel doorlopen. Lege regels worden overgeslagen en het teken # ergens op een regel geeft aan dat de rest van die regel commentaar bevat. Als gevolg daarvan kan een item gedeactiveerd worden door de hele regel uit te commentariëren. Indien er opties opgegeven moeten worden, worden ze van elkaar gescheiden door komma's en allemaal samen worden ze tussen rechte haakjes ([]) op de regel geplaatst na het type en daarvan gescheiden door een komma. Indien een optie meerdere waarden mag hebben, dan worden ze met een komma (,) van elkaar gescheiden. De naam van een optie wordt van zijn waarde(n) gescheiden met een gelijkheidsteken (=). Multi-waarde opties hebben ook -= en += als scheidingstekens. In plaats van de standaardwaarde(n) te vervangen door de opgegeven waarde(n), wijzigen zij de standaardwaarde(n) door er de opgegeven waarden uit te verwijderen of eraan toe te voegen.
Dit is de traditionele indeling die door alle versies van apt ondersteund wordt. Merk op dat niet alle opties die hieronder beschreven worden door alle versies van apt ondersteund worden. Merk ook op dat sommige oudere toepassingen die zelfstandig deze indeling ontleden wellicht geen opties zullen verwachten, aangezien die ongebruikelijk waren voor de invoering van multi-architectuurondersteuning.
Bestanden met deze indeling hebben de extensie .sources. Op het gebied van de syntaxis is de indeling gelijkaardig aan andere bestanden die door Debian en zijn derivaten gebruikt worden, zoals de metadatabestanden die apt ophaalt bij de geconfigureerde pakketbronnen of het bestand debian/control in een Debian broncodebestand. Individuele items worden van elkaar gescheiden door een witregel. Bijkomende witregels worden genegeerd en het teken # aan het begin van een regel markeert de volledige regel als commentaar. Een item kan dus gedeactiveerd worden door elke regel die onderdeel is van dat item, uit te commentariëren. Maar meestal is het eenvoudiger om het item te deactiveren door er het veld "Enabled: no" aan toe te voegen. Dat veld verwijderen of het instellen op yes, activeert het item opnieuw. Opties gebruiken dezelfde syntaxis als elk ander veld: een veldnaam gescheiden van zijn waarde(n) door een dubbele punt (:) en optionele spaties. Merk in het bijzonder op dat meerdere waarden onderling gescheiden worden door witruimte (zoals spaties, tabs en regeleindes) en niet door komma's, zoals het geval is bij de één-regelindeling. Multi-waarde velden, zoals Architectures, kennen ook Architectures-Add en Architectures-Remove om de standaardwaarde aan te passen in plaats van ze te vervangen.
Dit is een nieuwe indeling die door apt zelf ondersteund wordt sinds versie 1.1. Eerdere versies negeren dergelijke bestanden met een kennisgevingsbericht zoals eerder beschreven. Het is de bedoeling dat deze indeling gaandeweg de standaardindeling wordt en dat de eerder beschreven één-regelstijl uitgefaseerd wordt, vermits het zowel voor mensen als voor machines makkelijker is om in deze nieuwe indeling items aan te maken, uit te breiden en te wijzigen, in het bijzonder als er een heleboel pakketbronnen en/of opties in het spel zijn. Ontwikkelaars die met pakketbronnen van apt werken en/of ze ontleden worden sterk aangemoedigd om ondersteuning voor deze indeling toe te voegen en om met het APT-team contact te nemen om dit werk te coördineren en met elkaar te delen. Gebruikers kunnen nu reeds ongehinderd op deze indeling overschakelen, maar kunnen eventueel problemen ondervinden met software die deze nieuwe indeling nog niet ondersteunt.
Het type deb verwijst naar een typisch Debian-archief met twee niveaus, distributie/component. De distributie is over het algemeen de naam van een suite zoals stable of testing of een codenaam zoals bullseye of bookworm, terwijl component een van de volgende kan zijn: main, contrib of non-free. Het type deb-src verwijst in dezelfde vorm als het type deb naar de broncode van een Debian distributie. Om bronnenindexen te kunnen ophalen is een deb-src-regel noodzakelijk.
De indeling van twee items in de één-regelstijl met de types deb en deb-src, ziet er zo uit:
deb [ optie1=waarde1 optie2=waarde2 ] uri suite [component1] [component2] [...] deb-src [ optie1=waarde1 optie2=waarde2 ] uri suite [component1] [component2] [...]
Anderzijds ziet het equivalent van dit item in deb822-stijl er als volgt uit:
Types: deb deb-src URIs: uri Suites: suite Components: [component1] [component2] [...] optie1: waarde1 optie2: waarde2
De URI voor het type deb moet de basis vermelden van de Debian distributie waar APT de benodigde informatie kan vinden. suite kan een exact pad opgeven en in dat geval moeten de componenten weggelaten worden en moet suite eindigen op een slash (/). Dit is nuttig in een geval waarbij enkel een specifieke sub-sectie van het archief dat door de URI aangeduid wordt, van belang is. Indien suite geen exact pad opgeeft, moet minstens één component vermeld worden.
suite kan ook een variabele, $(ARCH), bevatten, die omgezet wordt naar de Debian architectuur (zoals amd64 of armel) die op het systeem in gebruik is. Dit laat toe om archtectuuronafhankelijke sources.list-bestanden te gebruiken. Over het algemeen is dit enkel van belang wanneer een exact pad opgegeven wordt. Anders zal APT automatisch een URI genereren met de huidige architectuur.
Als uit een bepaalde locatie een subset van alle beschikbare distributies of componenten gewenst wordt, kan het bij het hanteren van de één-regelstijl nodig zijn om meerdere regels voor dezelfde URI te gebruiken, aangezien er per regel slechts één distributie opgegeven kan worden. Nadat APT intern een complete set gegenereerd heeft, zal het de URI-lijst sorteren en bijvoorbeeld meerdere verwijzingen naar eenzelfde computer op het internet, samenbundelen in eenzelfde verbinding. Dit is om niet op een inefficiënte manier te werk te gaan door een FTP-verbinding tot stand te brengen, die te sluiten, iets anders te doen en vervolgens opnieuw een verbinding te moeten maken met dezelfde computer. APT zet ook parallelle verbindingen op met verschillende computers om effectiever om te gaan met sites met een geringe bandbreedte.
Het is belangrijk om pakketbronnen in volgorde van voorkeur te vermelden met de grootste voorkeur eerst. Een typisch gebruik is een ordening volgens snelheid van snelst naar traagst (bijvoorbeeld een CD gevolgd door computers op een lokaal netwerk en tenslotte afgelegen internetcomputers).
Bij wijze van voorbeeld zouden de pakketbronnen voor uw distributie er als volgt kunnen uitzien met de indeling in de één-regelstijl:
deb http://deb.debian.org/debian bullseye main contrib non-free deb http://security.debian.org bullseye-security main contrib non-free
en als volgt met de indeling in de deb822-stijl:
Types: deb URIs: http://deb.debian.org/debian Suites: bullseye Components: main contrib non-free Types: deb URIs: http://security.debian.org Suites: bullseye-security Components: main contrib non-free
Bij elk pakketbronitem kunnen opties opgegeven worden om aan te passen welke bron gebruikt wordt en op welke manier er gegevens van opgehaald worden. Indeling, syntaxis en namen van de opties variëren naargelang het een één-regelstijl of een deb822-stijl betreft, zoals eerder beschreven, maar met beide stijlen kunnen dezelfde opties gebruikt worden. Om het eenvoudig te houden vermelden we hier de veldnaam voor de deb822-stijl en geven we de naam voor de één-regelstijl er tussen haakjes bij. Onthoud dat u multi-waarde opties expliciet kunt vermelden, maar dat u daarnaast over de optie beschikt om ze aan te passen uitgaande van hun standaardwaarde. Maar hier geven we hun namen expliciet weer. Niet-ondersteunde opties worden door alle versies van APT geruisloos genegeerd.
Daarnaast zijn er opties die, als ze ingesteld worden, betrekking hebben op alle pakketbronnen met dezelfde URI en Suite, waardoor ze ingesteld moeten worden voor alle soortgelijke items en er niet gevarieerd kan worden tussen verschillende componenten. Als er zich dergelijke anomalieën manifesteren, zal APT ze proberen te ontdekken en verbeteren.
De momenteel herkende URI-types zijn:
http (apt-transport-http(1))
Merk op dat deze authenticatiemethodes onveilig zijn, aangezien de volledige communicatie met de externe server (of de proxy) onversleuteld verloopt. Daardoor kan een voldoende onderlegde aanvaller de logingegevens bekijken en opslaan evenals de rest van de interactie. De aanvaller kan evenwel de communicatie niet beïnvloeden, vermits het databeveiligingsmodel dat toegepast wordt door APT, onafhankelijk van de gekozen transportmethode functioneert. Raadpleeg voor details apt-secure(8).
https (apt-transport-https(1))
mirror, mirror+methode (apt-transport-mirror(1))
file
cdrom
ftp
Noteer dat een FTP-proxy opgegeven kan worden met de omgevingsvariabele ftp_proxy. Met deze omgevingsvariabele en enkel daarmee kan ook een HTTP-proxy opgegeven worden (HTTP proxyservers kunnen vaak omgaan met FTP-URL's). Proxy's die HTTP gebruiken en in het configuratiebestand vermeld staan worden genegeerd.
copy
rsh, ssh
nog andere herkenbare URI-types toevoegen
Gebruikt het lokaal opgeslagen (of via NFS aangekoppelde) archief in /home/apt/debian voor stable/main, stable/contrib, en stable/non-free.
deb file:/home/apt/debian stable main contrib non-free
Types: deb URIs: file:/home/apt/debian Suites: stable Components: main contrib non-free
Zoals hierboven, behalve dat hier de distributie unstable (distributie in ontwikkeling) gebruikt wordt.
deb file:/home/apt/debian unstable main contrib non-free
Types: deb URIs: file:/home/apt/debian Suites: unstable Components: main contrib non-free
Specificatie voor de bronbestanden van het voorgaande.
deb-src file:/home/apt/debian unstable main contrib non-free
Types: deb-src URIs: file:/home/apt/debian Suites: unstable Components: main contrib non-free
De eerste regel haalt pakketinformatie op voor de architecturen uit APT::Architectures terwijl de tweede steeds amd64 en armel ophaalt.
deb http://deb.debian.org/debian bullseye main deb [ arch=amd64,armel ] http://deb.debian.org/debian bullseye main
Types: deb URIs: http://deb.debian.org/debian Suites: bullseye Components: main Types: deb URIs: http://deb.debian.org/debian Suites: bullseye Components: main Architectures: amd64 armel
Gebruikt HTTP om toegang te krijgen tot het archief van archive.debian.org en gebruikt daar enkel het gebied hamm/main.
deb http://archive.debian.org/debian-archive hamm main
Types: deb URIs: http://archive.debian.org/debian-archive Suites: hamm Components: main
Gebruikt FTP om toegang te krijgen tot het archief op ftp.debian.org onder de map debian en gebruikt er enkel het gebied bullseye/contrib.
deb ftp://ftp.debian.org/debian bullseye contrib
Types: deb URIs: ftp://ftp.debian.org/debian Suites: bullseye Components: contrib
Gebruikt FTP om toegang te krijgen tot het archief op ftp.debian.org onder de map debian en gebruikt er enkel het gebied unstable/contrib. Indien deze regel en die uit het voorgaande voorbeeld allebei voorkomen in sources.list zal een enkele FTP-verbinding gebruikt worden voor beide regels met pakketbronnen.
deb ftp://ftp.debian.org/debian unstable contrib
Types: deb URIs: ftp://ftp.debian.org/debian Suites: unstable Components: contrib
Gebruikt HTTP om toegang te krijgen tot het archief op ftp.tlh.debian.org onder de map universe en gebruikt op i386-computers enkel bestanden die te vinden zijn onder unstable/binary-i386 en op amd64-computers bestanden onder unstable/binary-amd64 en zo verder voor andere ondersteunde architecturen. [Merk op dat dit voorbeeld enkel toont hoe de substitutievariabele moet gebruikt worden; officiële debian-archieven worden niet op die manier georganiseerd]
deb http://ftp.tlh.debian.org/universe unstable/binary-$(ARCH)/
Types: deb URIs: http://ftp.tlh.debian.org/universe Suites: unstable/binary-$(ARCH)/
Gebruikt HTTP om binaire pakketten en broncode uit de suites stable, testing en unstable en uit de componenten main en contrib op te halen.
deb http://deb.debian.org/debian stable main contrib deb-src http://deb.debian.org/debian stable main contrib deb http://deb.debian.org/debian testing main contrib deb-src http://deb.debian.org/debian testing main contrib deb http://deb.debian.org/debian unstable main contrib deb-src http://deb.debian.org/debian unstable main contrib
Types: deb deb-src URIs: http://deb.debian.org/debian Suites: stable testing unstable Components: main contrib
apt-get(8), apt.conf(5), /usr/share/doc/apt/acquire-additional-files.md.gz
m[blue]APT bugpaginam[][1]. Indien u een bug in APT wilt rapporteren, raadpleeg dan /usr/share/doc/debian/bug-reporting.txt of het reportbug(1) commando.
De Nederlandse vertaling werd in 2015 gemaakt door Frans Spiesschaert <Frans.Spiesschaert@yucom.be>, in samenwerking met het Debian Dutch l10n Team <debian-l10n-dutch@lists.debian.org>.
Merk op dat de vertaling van dit document nog onvertaalde delen kan bevatten. Dit is intentioneel om te vermijden dat inhoud verloren zou gaan door een vertaling die achterop loopt op het origineel.
Jason Gunthorpe
APT-team