V Ubuntuju in Debianu apt-get install (ali novejši apt install) privzeto namesti najnovejšo različico, ki je na voljo v repozitorijih. To je največkrat prav, saj najnovejša različica vsebuje varnostne popravke. Včasih pa potrebuješ določeno različico: aplikacija je združljiva le z določeno različico, posodobitev je prinesla napako in se je treba vrniti na prejšnjo ali pa mora na več strežnikih teči ista različica.
Za spodnje ukaze so potrebne pravice root ali sudo, zato jih lahko uporabljaš na lastnem KVM VPS ali namenskem strežniku.
1. Preveri, katere različice so na voljo
Posodobi seznam paketov, nato poizvedi različice paketa:
sudo apt-get update
apt-cache policy nginx
V izpisu vrstica Installed pokaže nameščeno različico, vrstica Candidate različico, ki se namesti privzeto, pod njima pa so vse različice, ki so na voljo v repozitorijih. Na testnem računalniku z Debianom 13 pri paketu bind9-host (del ukazov dig in host):
bind9-host:
Installed: 1:9.20.30-1~deb13u1
Candidate: 1:9.20.30-1~deb13u1
Version table:
*** 1:9.20.30-1~deb13u1 500
500 mirror+file:/etc/apt/mirrors/debian-security.list trixie-security/main arm64 Packages
100 /var/lib/dpkg/status
1:9.20.26-1~deb13u1 500
500 mirror+file:/etc/apt/mirrors/debian.list trixie/main arm64 Packages
Nameščena različica je prišla iz varnostnega repozitorija (trixie-security), različica ob izidu pa je še na voljo v glavnem repozitoriju (trixie/main). Isto v krajši obliki izpišeta tudi ukaza apt list -a nginx ali apt-cache madison nginx.
2. Namesti želeno različico
Za imenom paketa z enačajem navedi različico, natanko tako, kot jo je izpisal prejšnji ukaz, s številko revizije in, če obstaja, z delom 1: (epoch) na začetku:
sudo apt-get install nginx=1.24.0-2ubuntu7
sudo apt-get install bind9-host=1:9.20.26-1~deb13u1
Številka različice je tu le primer, svojo kopiraj iz izpisa apt-cache policy. Če je zahtevana različica starejša od nameščene, apt vpraša za vrnitev na starejšo različico (downgrade); pri neinteraktivnem zagonu je za to potrebno stikalo --allow-downgrades.
3. Zakleni različico
Če paketa ne zakleneš, ga naslednji apt upgrade ali samodejna posodobitev spet zamenja z najnovejšo različico. Zaklepanje:
sudo apt-mark hold nginx
apt-mark showhold
sudo apt-mark unhold nginx
Prvi ukaz paket zaklene, drugi izpiše zaklenjene pakete, tretji pa zaklep odstrani. V preizkusu je posodobitev zaklenjene pakete naštela v vrstici The following packages have been kept back: in jih ni posodobila. Zaklenjen paket ne dobi niti varnostnih posodobitev, zato to uporabljaj le kot začasno rešitev. O posodabljanju sistema preberi v našem vodniku za posodabljanje sistema.
Pogoste napake
E: Version '...' for '...' was not found: navedene različice ni v repozitorijih. V Ubuntuju in Debianu repozitoriji običajno hranijo le različico ob izidu in zadnjo posodobljeno različico, vmesne izginejo. Preveri natančno številko različice ali uporabi lastni repozitorij proizvajalca programske opreme, ki pogosto ponuja več starejših različic.- Napaka odvisnosti (
Depends: ... but ... is to be installed): paket zahteva isto različico drugih paketov. V preizkusu se je vrnitevbind9-hostna starejšo različico ustavila takole:bind9-host : Depends: bind9-libs (= 1:9.20.26-1~deb13u1) but 1:9.20.30-1~deb13u1 is to be installed. V tem primeru v istem ukazu navedi tudi odvisnost:sudo apt-get install --allow-downgrades bind9-host=1:9.20.26-1~deb13u1 bind9-libs=1:9.20.26-1~deb13u1; to je v preizkusu oba vrnilo na starejšo različico. - Namestitev že prenesene datoteke
.deb: če imaš paket.debstare različice (na primer v imeniku/var/cache/apt/archives/), ga lahko namestiš z ukazomsudo apt install ./csomag.deb, tako apt razreši tudi odvisnosti.
Preverjanje
Po namestitvi vrstica Installed v izpisu apt-cache policy csomagnev pokaže dejansko različico, večina programov pa jo izpiše tudi s stikalom --version (na primer nginx -v).