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 redove kandidata, pinovanja i arhitekture prije uređivanja izvora.
VPN paket koji prijavljuje Installed: (none) ne nedostaje; on jednostavno nije instaliran. Red 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 pakovanja. Pročitajte oba reda prije nego što dotaknete ijedan unos izvora.
Prvo provjeravam kandidata jer to košta jednu komandu i isključuje polovinu uobičajenih pretpostavki.
Šta vam govori izlaz naredbe apt-cache policy
apt-cache policy čita lokalni keš paketa, a ne mrežu. Ispisuje instaliranu verziju, verziju kandidata i tabelu svakog indeksa koji nudi paket, sa 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 šta svaki izvor nudi sa svojim prioritetom, i tako uočavate paket koji postoji u indeksu ali gubi pin takmičenje. Uputstvo za apt-cache opisuje oboje kao čitanje keša, pa nijedno od njih ne dokazuje da je ogledalo dostupno u ovom trenutku.
Ako je red kandidata prazan ili prikazuje (none), ništa u konfigurisanim izvorima nije podobno za ovaj sistem onako kako je konfigurisan.
Č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 napravljen. Debian bookworm sistem usmjeren na trixie ogledalo, ili Ubuntu izdanje koje je tokom nadogradnje preimenovano u datoteci sources.list.d, ne rješava ništa za pakete koji postoje samo u drugom suite. Uporedite lsb_release -cs sa poljem suite u svakom unosu.
APT vidi samo pakete napravljene 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 dobija praznog kandidata umjesto poruke o grešci. dpkg --print-architecture i dpkg --print-foreign-architectures kažu vam u kojem se skupu zaista nalazite.
Komponente su takođe važne. Paket u contrib ili non-free je nevidljiv kada je omogućen samo main, a Ubuntu universe se ponaša isto. Indeks postoji i paket je u njemu; samo vaša lista omogućenih komponenti ga ne uključuje.
Pinovanje je ono tiho. Datoteka u /etc/apt/preferences.d može ograničiti paket ispod praga za instalaciju, i tada sasvim dobar kandidat nestaje iz izlaza dok ga indeks još uvijek navodi. Pošto policy ispisuje prioritete pored svakog izvora, paket čiji svaki izvor nosi nizak pin broj je znak.
Zastarjeli indeksi izgledaju kao paketi koji nedostaju
Keš je snimak. 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 greške po indeksu, pa ih čitajte umjesto da odmah skrolujete do posljednjeg reda.
Osvježavanje koje ne uspije zbog greške u potpisu, istekle release datoteke ili nedostupnog ogledala ostavlja prethodni indeks na mjestu. To je razuman dizajn, jer čuva radni keš kada je ogledalo kratko nedostupno. Nuspojava je da pretraga može uspjeti dok je repozitorij offline. To takođe znači da odsustvo 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 upoređ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 tačnim nazivima. Ne dodajte sufiks -gui pozajmljen iz druge distribucije i ne zaključujte da paket više ne postoji.
Promijenite izvore na kraju, pa provjerite transakciju
Dodavanje repozitorija mijenja to ko isporučuje vaša ažuriranja, pa pripada na kraj istrage, a ne na početak.
Prije toga potvrdite izdanje, arhitekturu, komponentu i stanje pinovanja. 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 šta bi bilo povučeno i šta 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 saobraćaj.