Un pachet VPN care raportează Installed: (none) nu lipsește; pur și simplu nu este instalat. Linia care decide dacă îl puteți instala este Candidate, pe care APT o derivă din indexuri, numele suitei, arhitectură și orice reguli de fixare în vigoare. Majoritatea rapoartelor despre un pachet VPN dispărut se dovedesc a fi o problemă de candidat, nu o problemă de împachetare. Citiți ambele linii înainte de a atinge vreo intrare din surse.

Verific mai întâi candidatul pentru că necesită o singură comandă și elimină jumătate din presupunerile obișnuite.

Ce vă spune rezultatul apt-cache policy

apt-cache policy citește memoria cache locală a pachetelor, nu rețeaua. Afișează versiunea instalată, versiunea candidat și un tabel cu fiecare index care oferă pachetul, împreună cu prioritatea asociată.

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

Candidatul este versiunea pe care APT ar alege-o chiar acum. madison listează ce oferă fiecare sursă cu prioritatea ei, și așa observați un pachet care există într-un index, dar pierde competiția de fixare. Manualul apt-cache documentează ambele ca citiri din cache, deci niciunul nu dovedește că oglinda este accesibilă în acest moment.

Dacă linia candidatului este goală sau arată (none), nimic din sursele configurate nu este eligibil pentru acest sistem așa cum este configurat.

Patru motive pentru care un candidat dispare

În practică, cauza este aproape întotdeauna unul dintre patru lucruri, iar fiecare are o soluție diferită.

Numele suitei din sursele dumneavoastră trebuie să corespundă distribuției pentru care a fost construit pachetul. Un sistem Debian bookworm îndreptat spre o oglindă trixie, sau o versiune Ubuntu redenumită într-un fișier sources.list.d în timpul unei actualizări, nu rezolvă nimic pentru pachetele care există doar în cealaltă suită. Comparați lsb_release -cs cu câmpul suită din fiecare intrare.

APT vede doar pachetele construite pentru arhitecturile pe care le cunoaște dpkg. Un container pe 32 de biți, o imagine arm64 sau o instalare pe Raspberry Pi care cere un pachet livrat doar pentru amd64 primesc un candidat gol în loc de un mesaj de eroare. dpkg --print-architecture și dpkg --print-foreign-architectures vă spun în ce set vă aflați de fapt.

Componentele contează și ele. Un pachet din contrib sau non-free este invizibil când este activat doar main, iar universe din Ubuntu se comportă la fel. Indexul există și pachetul este în el; doar lista dumneavoastră de componente activate nu îl include.

Fixarea este cea tăcută. Un fișier din /etc/apt/preferences.d poate limita un pachet sub pragul de instalare, iar atunci un candidat perfect bun dispare din rezultat în timp ce indexul îl mai listează. Deoarece policy tipărește prioritățile lângă fiecare sursă, un pachet la care fiecare sursă are un număr mic de fixare este indiciul.

Indexurile învechite arată ca pachete lipsă

Cache-ul este o instantanee. Dacă ultimul apt update a eșuat pe un index, interogările continuă să răspundă din copia mai veche, iar pachetul pe care îl așteptați poate să nu fie în acea copie.

apt update tipărește erori pentru fiecare index, așa că citiți-le în loc să derulați direct la ultima linie.

O reîmprospătare care eșuează din cauza unei erori de semnătură, a unui fișier release expirat sau a unei oglinzi inaccesibile lasă indexul anterior pe loc. Este un design rezonabil, pentru că păstrează un cache funcțional când o oglindă cade pentru scurt timp. Efectul secundar este că o căutare poate reuși în timp ce depozitul este offline. Înseamnă și că absența unui pachet nu dovedește nimic până când nu știți când a fost obținut ultima dată indexul. Verificați datele fișierelor din /var/lib/apt/lists înainte de a da vina pe numele pachetului.

Numiți pachetul de care aveți cu adevărat nevoie

OpenVPN este un demon, iar piesele pe care oamenii le vor de obicei sunt pachete separate.

Motorul, pluginul NetworkManager și editorul de birou sunt trei pachete cu trei nume, iar pluginul are o variantă GTK al cărei nume diferă între distribuții. apt-cache search --names-only openvpn potrivește nume și nume furnizate în loc de descrieri, și este exact ce doriți când știți aproximativ cum se numește lucrul.

Dacă numele este într-adevăr necunoscut, căutați o dată în descrieri, apoi reveniți la numele exacte. Nu adăugați un sufix -gui împrumutat din altă distribuție și nu concluzionați că pachetul nu mai există.

Modificați sursele la final, apoi verificați tranzacția

Adăugarea unui depozit schimbă cine vă furnizează actualizările, așa că aparține finalului investigației, nu începutului.

Înainte de asta, confirmați versiunea, arhitectura, componenta și starea de fixare. Notați pe care dintre cele patru le-ați verificat, ca următoarea persoană să nu repete turul. Dacă toate patru sunt corecte și candidatul tot lipsește, concluzia onestă este că această versiune nu livrează acel pachet. Opțiunile rămase sunt un backport, un pachet de la furnizor sau altă versiune acceptată, iar fiecare este o alegere deliberată și nu o presupunere.

Când candidatul apare, simulați înainte de a confirma: apt-get install --simulate cu numele pachetului arată ce ar fi adus și ce ar fi eliminat. Disponibilitatea pachetului, instalarea și un tunel funcțional rămân trei etape separate, iar tunelul mai are nevoie de profilul, acreditările, rutele și DNS-ul său înainte de a transporta trafic.

Articole similare