APT offline gebruiken



Versie 3.1.3



Inhoudsopgave

1. Inleiding
1.1. Overzicht
2. Op beide computers APT gebruiken
2.1. Overzicht
2.2. Het configuratiebestand
3. APT en wget gebruiken
3.1. Overzicht
3.2. Werking
   

Normaal heeft APT rechtstreeks toegang tot een Debian archief nodig, ofwel op lokale media ofwel via een netwerk. Ook keert regelmatig de klacht terug dat een bepaalde Debiancomputer over een trage verbinding, zoals een modem, beschikt, terwijl er een andere computer met een zeer snelle verbinding beschikbaar is, die echter fysiek op een afstand van elkaar staan.

   

Een oplossing hiervoor is gebruik maken van grote verwijderbare media, zoals een Zip-schijf of een SuperDisc-schijf. Dergelijke schijven zijn onvoldoende groot om een volledig Debian archief te bevatten, maar ze kunnen er met gemak een subset van bevatten die voor de meeste gebruikers voldoende groot is. Het concept is om APT te gebruiken om een lijst van pakketten samen te stellen die men nodig heeft en die dan op te halen met een computer met een goede verbinding en ze op de schijf te plaatsen. Het is zelfs mogelijk om een andere Debian-computer met APT te gebruiken of een computer met een volledig ander OS en een download-hulpmiddel zoals wget. Laten we aannemen dat 'externe-computer' de computer is die de pakketten downloadt en 'computer-in-kwestie' degene met een slechte of geen verbinding.

   

Dit wordt gerealiseerd door op een creatieve manier het configuratiebestand van APT te manipuleren. De essentiële aanname is dat APT gezegd wordt om op een schijf te zoeken naar de archiefbestanden die het nodig heeft. Merk op dat de schijf geformatteerd moet zijn voor een bestandssysteem dat overweg kan met lange bestandsnamen, zoals ext2, fat32 of vfat.

   

Het configuratiebestand moet APT opdragen om zijn bestanden op de schijf op te slaan en om ook de configuratiebestanden op de schijf te gebruiken. In het bestand sources.list moeten de eigenlijke sites vermeld staan die u vanaf 'externe-computer' wenst te gebruiken en het statusbestand moet een kopie zijn van /var/lib/dpkg/status op 'computer-in-kwestie'. Noteer dat indien u van een lokaal archief gebruik maakt, u URI's van het type copy moet gebruiken, waarvan de syntaxis identiek is aan die van URI's van het type file.

   

apt.conf moet de informatie bevatten die nodig is om APT de schijf te doen gebruiken:

   
 APT
 {
   /* Dit is niet noodzakelijk als de twee computers dezelfde architectuur
      hebben. Het vertelt APT van 'externe-computer' welke architectuur
      'computer-in-kwestie' heeft */
   Architecture "i386";

   Get::Download-Only "true";
 };

 Dir
 {
   /* Gebruik maken van de schijf voor statusinformatie en het statusbestand
      omleiden van /var/lib/dpkg wat de standaardlocatie ervan is */
   State "/disc/";
   State::status "status";

   // Binaire caches zullen lokaal opgeslagen worden
   Cache::archives "/disc/archives/";
   Cache "/tmp/";

   // Locatie van de lijst met pakketbronnen.
   Etc "/disc/";
 };
   

U krijgt meer details als u de man-pagina apt.conf raadpleegt en het voorbeeldconfiguratiebestand in /usr/share/doc/apt/examples/apt.conf.

   

Het eerste wat moet gebeuren is op 'computer-in-kwestie' de schijf aankoppelen en /var/lib/dpkg/status er naartoe kopiëren. U zult ook de mappen moeten aanmaken die in het overzicht beschreven werden, archives/partial/ en lists/partial/. Neem vervolgens de schijf mee naar 'externe-computer' en configureer het bestand sources.list. Voer op 'externe-computer' de volgende opdracht uit:

   
 # export APT_CONFIG="/disc/apt.conf"
 # apt-get update
 [ APT haalt de bestanden Packages op ]
 # apt-get dist-upgrade
 [ APT haalt alle pakketbestanden op die nodig zijn om 'computer-in-kwestie' op te waarderen ]
   

Het commando dist-upgrade kan door om het even welk ander standaard commando van APT vervangen worden, in het bijzonder dselect-upgrade. U kunt zelfs een front-end voor APT gebruiken, zoals dselect. Dit stelt wel een probleem bij het opnieuw communiceren van de selecties naar 'computer-in-kwestie'.

   

Nu bevat de schijf alle indexbestanden en archieven die nodig zijn om 'computer-in-kwestie' op te waarderen. Neem de schijf terug mee en voer het volgende uit:

   
  # export APT_CONFIG="/disc/apt.conf"
  # apt-get check
  [ APT maakt een lokale kopie van de cachebestanden aan ]
  # apt-get --no-d -o dir::state::status=/var/lib/dpkg/status dist-upgrade
  [ Of elk ander APT commando ]
   

Met het oog op een goede werking is het nodig om opnieuw op te geven dat het statusbestand terug het lokale moet zijn. Dit is zeer belangrijk!

   

Indien u dselect gebruikt, kunt u de zeer riskante operatie uitvoeren om disc/status naar /var/lib/dpkg/status te kopiëren, waardoor alle selecties die u op 'externe-computer' uitvoerde, bijgewerkt worden. Ik raad mensen ten stelligste aan enkel selecties uit te voeren op de lokale computer - maar het kan zijn dat dit niet altijd mogelijk is. Kopieer het statusbestand NIET indien APT of dpkg ondertussen uitgevoerd werden!!