Paket VPN, ki poroča Installed: (none), ne manjka; preprosto ni nameščen. Vrstica, ki odloča, ali ga lahko namestite, je Candidate, ki jo APT izpelje iz indeksov, imena suite, arhitekture in vseh veljavnih pravil pripenjanja. Večina poročil o izginulem paketu VPN se izkaže za težavo kandidata in ne za težavo pakiranja. Preberite obe vrstici, preden se dotaknete enega samega vnosa virov.

Najprej preverim kandidata, ker to stane en ukaz in izloči polovico običajnih ugibanj.

Kaj vam pove izpis apt-cache policy

apt-cache policy bere lokalni predpomnilnik paketov, ne omrežja. Izpiše nameščeno različico, različico kandidata in tabelo vsakega indeksa, ki ponuja paket, z dodeljeno prednostjo.

apt-cache policy openvpn
apt-cache madison openvpn
apt list -a network-manager-openvpn

Kandidat je različica, ki bi jo APT izbral zdaj. madison našteje, kaj ponuja vsak vir s svojo prednostjo, in tako opazite paket, ki v indeksu obstaja, a izgubi tekmovanje pripenjanja. Priročnik apt-cache oboje opisuje kot branje predpomnilnika, zato nobeno od tega ne dokazuje, da je zrcalo v tem trenutku dosegljivo.

Če je vrstica kandidata prazna ali prikazuje (none), ni nič v konfiguriranih virih primerno za ta sistem, kot je konfiguriran.

Štirje razlogi, da kandidat izgine

V praksi je vzrok skoraj vedno ena od štirih stvari, in vsaka ima drugačno rešitev.

Ime suite v vaših virih se mora ujemati z distribucijo, za katero je bil paket zgrajen. Sistem Debian bookworm, usmerjen na zrcalo trixie, ali izdaja Ubuntu, preimenovana v datoteki sources.list.d med nadgradnjo, ne reši ničesar za pakete, ki obstajajo samo v drugem suite. Primerjajte lsb_release -cs s poljem suite v vsakem vnosu.

APT vidi le pakete, zgrajene za arhitekture, ki jih pozna dpkg. 32-bitni vsebnik, slika arm64 ali namestitev na Raspberry Pi, ki zahteva paket, dobavljen samo za amd64, dobi praznega kandidata namesto sporočila o napaki. dpkg --print-architecture in dpkg --print-foreign-architectures vam povesta, v katerem naboru ste v resnici.

Pomembne so tudi komponente. Paket v contrib ali non-free je neviden, ko je omogočen samo main, in universe v Ubuntu se obnaša enako. Indeks obstaja in paket je v njem; le vaš seznam omogočenih komponent ga ne vključuje.

Pripenjanje je tiho. Datoteka v /etc/apt/preferences.d lahko omeji paket pod prag namestitve, in takrat povsem dober kandidat izgine iz izpisa, medtem ko ga indeks še vedno navaja. Ker policy izpiše prednosti ob vsakem viru, je paket, pri katerem ima vsak vir nizko številko pripenjanja, namig.

Zastareli indeksi so videti kot manjkajoči paketi

Predpomnilnik je posnetek. Če zadnji apt update ni uspel na enem indeksu, poizvedbe še naprej odgovarjajo iz starejše kopije, in paketa, ki ga pričakujete, v tej kopiji morda ni.

apt update izpiše napake za vsak indeks, zato jih berite, namesto da takoj drsite do zadnje vrstice.

Osvežitev, ki ne uspe zaradi napake podpisa, potekle datoteke release ali nedosegljivega zrcala, pusti prejšnji indeks na mestu. To je smiselna zasnova, ker ohrani delujoč predpomnilnik, ko zrcalo za kratek čas pade. Stranski učinek je, da lahko iskanje uspe, medtem ko je shramba brez povezave. To tudi pomeni, da odsotnost paketa nič ne dokazuje, dokler ne veste, kdaj je bil indeks nazadnje pridobljen. Preden krivite ime paketa, preverite datume datotek v /var/lib/apt/lists.

Poimenujte paket, ki ga zares potrebujete

OpenVPN je demon, deli, ki jih ljudje običajno želijo, pa so ločeni paketi.

Motor, vtičnik NetworkManager in namizni urejevalnik so trije paketi s tremi imeni, vtičnik pa ima različico GTK, katere ime se med distribucijami razlikuje. apt-cache search --names-only openvpn usklajuje imena in zagotovljena imena namesto opisov, in to je tisto, kar želite, ko približno veste, kako se stvar imenuje.

Če je ime res neznano, enkrat preiščite opise in se nato vrnite k natančnim imenom. Ne dodajajte pripone -gui, izposojene iz druge distribucije, in ne sklepajte, da paketa ni več.

Vire spremenite na koncu in nato preverite transakcijo

Dodajanje shrambe spremeni, kdo dobavlja vaše posodobitve, zato spada na konec preiskave, ne na začetek.

Pred tem potrdite izdajo, arhitekturo, komponento in stanje pripenjanja. Zapišite, katere od štirih ste preverili, da naslednja oseba ne ponovi pregleda. Če so vse štiri pravilne in kandidat še vedno manjka, je pošten sklep, da ta izdaja tega paketa ne dobavlja. Preostale možnosti so backport, paket dobavitelja ali druga podprta izdaja, in vsaka od njih je zavestna izbira in ne ugibanje.

Ko se kandidat pojavi, simulirajte, preden potrdite: apt-get install --simulate z imenom paketa pokaže, kaj bi bilo potegnjeno in kaj odstranjeno. Razpoložljivost paketa, namestitev in delujoč tunel ostajajo tri ločene stopnje, tunel pa še vedno potrebuje svoj profil, poverilnice, poti in DNS, preden prenaša promet.

Sorodni članki