Oudere pakketten installeren met apt
? Als ik bij Debian of Ubuntu met apt een pakket installeer, krijg ik altijd de nieuwste versie. Hoe kan ik een oudere versie installeren, bijvoorbeeld omdat de nieuwste versie problemen oplevert?
ß Om met een oudere versie van een pakket te blijven werken, heb je niet alleen dat pakket nodig, maar moet je ook het updaten daarvan uitschakelen. Het makkelijkste is het als de bewuste versie nog in de repository van de distributie aanwezig is. Dat kun je bij Linux-distributies die op Debian gebaseerd zijn achterhalen met apt-cache policy. De output daarvan voor de Nvidia-driver uit de 304-serie
van Ubuntu 16.04 LTS kun je als voorbeeld in het screenshot zien.
Aan de hand van de versietabel kun je zien dat de versies 304.132-0ubuntu0.16.04.2 en 304.131-0ubuntu3 in de repository zitten. Om de oudere versie 304.131-0ubuntu3 te installeren, geef je het versienummer expliciet aan het commando van apt-get mee:
apt-get install nvidia-304=304.1310ubuntu3
Als je een nog oudere versie nodig hebt die niet meer in de repository zit, dan moet je het anders doen. Je kunt dan dpkg gebruiken om het te installeren. Om bij het voorbeeld van de Nvidia-driver te blijven:
dpkg -i nvidia-304_304.128-—
0ubuntu1_amd64.deb
Maar dpkg houdt geen rekening met eventuele dependency's, zodat je daarna meestal de benodigde extra pakketten via aptget -f install nog moet installeren. Als die in de repository aanwezig zijn tenminste. Wanneer apt de afhankelijkheden niet kan oplossen omdat een benodigd pakket niet in de repository te vinden is, stelt het voor het via dpkg geïnstalleerde pakket weer te verwijderen. Laat dat doen en zoek een bron voor het extra benodigde pakket en installeer dat eveneens handmatig met dpkg. Om een update naar een nieuwere versie te verhinderen, moet je de versie via apt-pinning vastzetten. Daarvoor maak je in de directory /etc/apt/preferences.d/ een tekstbestand aan, bijvoorbeeld nvidiapinning, met de volgende inhoud:
Explanation: updates van de
Nvidia-driver voorkomen Package: nvidia-304
Pin: version 304.131-0ubuntu3 Pin-Priority: 1001
De waarde 1001 voor de prioriteit zorgt ervoor dat er geen andere versie van het pakket meer geïnstalleerd wordt. Wil je op een later tijdstip alsnog naar de actuele versie overstappen, dan moet je die pinning eerst weer verwijderen.