Zašto apt-cache za vaš VPN paket prikazuje instalirano (nema)
Instalirano (nema) znači da VPN paket nije instaliran, a ne da nedostaje. Pročitajte retke kandidata, prikvačivanja i arhitekture prije uređivanja izvora.
VPN paket koji prijavljuje Installed: (none) ne nedostaje; on jednostavno nije instaliran. Redak koji odlučuje možete li ga instalirati je Candidate, a APT ga izvodi iz indeksa, naziva suite, arhitekture i svih pin pravila koja su na snazi. Većina prijava nestalog VPN paketa ispostavi se kao problem kandidata, a ne problem pakiranja. Pročitajte oba retka prije nego što dotaknete ijedan unos izvora.
Prvo provjeravam kandidata jer to stoji jednu naredbu i isključuje pola uobičajenih pretpostavki.
Što vam govori izlaz naredbe apt-cache policy
apt-cache policy čita lokalnu predmemoriju paketa, a ne mrežu. Ispisuje instaliranu verziju, verziju kandidata i tablicu svakog indeksa koji nudi paket, s prioritetom koji mu je pridružen.
apt-cache policy openvpn
apt-cache madison openvpn
apt list -a network-manager-openvpnKandidat je verzija koju bi APT sada izabrao. madison navodi što svaki izvor nudi sa svojim prioritetom, i tako uočavate paket koji postoji u indeksu ali gubi pin natjecanje. Uputa za apt-cache opisuje oboje kao čitanje predmemorije, pa nijedno od njih ne dokazuje da je zrcalo dostupno u ovom trenutku.
Ako je redak kandidata prazan ili prikazuje (none), ništa u konfiguriranim izvorima nije podobno za ovaj sustav onako kako je konfiguriran.
Četiri razloga zašto kandidat nestaje
U praksi je uzrok gotovo uvijek jedna od četiri stvari, a svaka ima drugačije rješenje.
Naziv suite u vašim izvorima mora odgovarati distribuciji za koju je paket izgrađen. Debian bookworm sustav usmjeren na trixie zrcalo, ili Ubuntu izdanje koje je tijekom nadogradnje preimenovano u datoteci sources.list.d, ne rješava ništa za pakete koji postoje samo u drugom suite. Usporedite lsb_release -cs s poljem suite u svakom unosu.
APT vidi samo pakete izgrađene za arhitekture koje dpkg poznaje. 32-bitni kontejner, arm64 slika ili instalacija na Raspberry Pi koja traži paket koji se isporučuje samo za amd64 dobiva praznog kandidata umjesto poruke o pogrešci. dpkg --print-architecture i dpkg --print-foreign-architectures kažu vam u kojem se skupu zaista nalazite.
Komponente su također važne. Paket u contrib ili non-free je nevidljiv kada je omogućen samo main, a Ubuntu universe ponaša se isto. Indeks postoji i paket je u njemu; samo vaš popis omogućenih komponenti ga ne uključuje.
Prikvačivanje je ono tiho. Datoteka u /etc/apt/preferences.d može ograničiti paket ispod praga za instalaciju, i tada posve dobar kandidat nestaje iz izlaza dok ga indeks još uvijek navodi. Budući da policy ispisuje prioritete pokraj svakog izvora, paket čiji svaki izvor nosi nizak pin broj je znak.
Zastarjeli indeksi izgledaju kao paketi koji nedostaju
Predmemorija je snimka. Ako je posljednji apt update neuspješan na jednom indeksu, upiti nastavljaju odgovarati iz starije kopije, a paket koji očekujete možda nije u toj kopiji.
apt update ispisuje pogreške po indeksu, pa ih čitajte umjesto da odmah skrolate do posljednjeg retka.
Osvježavanje koje ne uspije zbog pogreške potpisa, istekle release datoteke ili nedostupnog zrcala ostavlja prethodni indeks na mjestu. To je razuman dizajn, jer čuva radnu predmemoriju kada je zrcalo kratko nedostupno. Nuspojava je da pretraga može uspjeti dok je repozitorij izvan mreže. To također znači da odsutnost paketa ništa ne dokazuje dok ne znate kada je indeks posljednji put preuzet. Provjerite datume datoteka u /var/lib/apt/lists prije nego što okrivite naziv paketa.
Imenujte paket koji vam zaista treba
OpenVPN je daemon, a dijelovi koji ljudima obično trebaju su odvojeni paketi.
Mehanizam, dodatak za NetworkManager i uređivač radne površine su tri paketa s tri naziva, a dodatak ima GTK varijantu čiji se naziv razlikuje među distribucijama. apt-cache search --names-only openvpn uspoređuje nazive i navedene nazive umjesto opisa, a to je ono što želite kada otprilike znate kako se stvar zove.
Ako je naziv zaista nepoznat, jednom pretražite opise, pa se vratite točnim nazivima. Ne dodajte sufiks -gui posuđen iz druge distribucije i ne zaključujte da paket više ne postoji.
Promijenite izvore na kraju, pa provjerite transakciju
Dodavanje repozitorija mijenja to tko isporučuje vaša ažuriranja, pa pripada na kraj istrage, a ne na početak.
Prije toga potvrdite izdanje, arhitekturu, komponentu i stanje prikvačivanja. Zapišite koje ste od četiri provjerili, da sljedeća osoba ne ponavlja pregled. Ako su sva četiri ispravna a kandidat još nedostaje, iskren zaključak je da ovo izdanje ne isporučuje taj paket. Preostale opcije su backport, paket dobavljača ili drugo podržano izdanje, a svaka od njih je svjestan izbor, a ne nagađanje.
Kada se kandidat ipak pojavi, simulirajte prije nego što primijenite: apt-get install --simulate s nazivom paketa pokazuje što bi bilo povučeno i što uklonjeno. Dostupnost paketa, instalacija i radni tunel ostaju tri odvojene faze, a tunelu još trebaju njegov profil, vjerodajnice, rute i DNS prije nego što prenosi promet.