Waarom apt-cache vir jou VPN-pakket as geïnstalleer (geen) wys
Geïnstalleer (geen) beteken die VPN-pakket is nie geïnstalleer nie, nie dat dit ontbreek nie. Lees die kandidaat-, pin- en argitektuurlyne voordat jy sources wysig.
’n VPN-pakket wat Installed: (none) rapporteer, ontbreek nie; dit is bloot nie geïnstalleer nie. Die lyn wat besluit of jy dit kan installeer, is Candidate, wat APT aflei uit die indekse, die suite-naam, die argitektuur en enige pin-reëls wat geld. Die meeste berigte oor ’n verdwene VPN-pakket blyk ’n kandidaatprobleem te wees eerder as ’n verpakkingsprobleem. Lees beide lyne voordat jy aan ’n enkele broninskrywing raak.
Ek kyk eerste na die kandidaat, want dit kos een opdrag en skakel die helfte van die gewone vermoedens uit.
Wat die uitset van apt-cache policy jou vertel
apt-cache policy lees die plaaslike pakketkas, nie die netwerk nie. Dit druk die geïnstalleerde weergawe, die kandidaatweergawe en ’n tabel van elke indeks wat die pakket aanbied, met die prioriteit daarby.
apt-cache policy openvpn
apt-cache madison openvpn
apt list -a network-manager-openvpnDie kandidaat is die weergawe wat APT nou sou kies. madison lys wat elke bron aanbied met sy prioriteit, en dit is hoe jy ’n pakket raaksien wat in ’n indeks bestaan maar die pin-stryd verloor. Die apt-cache-handleiding beskryf albei as kaslesings, so nie een bewys dat die spieël op hierdie oomblik bereikbaar is nie.
As die kandidaatlyn leeg is of (none) wys, is niks in die gekonfigureerde bronne geskik vir hierdie stelsel soos dit gekonfigureer is nie.
Vier redes waarom ’n kandidaat verdwyn
In die praktyk is die oorsaak byna altyd een van vier dinge, en elkeen het ’n ander oplossing.
Die suite-naam in jou bronne moet pas by die verspreiding waarvoor die pakket gebou is. ’n Debian bookworm-stelsel wat na ’n trixie-spieël wys, of ’n Ubuntu-uitgawe wat tydens ’n opgradering in ’n sources.list.d-lêer hernoem is, los niks op vir pakkette wat net in die ander suite bestaan nie. Vergelyk lsb_release -cs met die suite-veld in elke inskrywing.
APT sien net pakkette wat vir die argitekture gebou is wat dpkg ken. ’n 32-bis-houer, ’n arm64-beeld of ’n Raspberry Pi-installasie wat ’n pakket vra wat net vir amd64 verskaf word, kry ’n leë kandidaat eerder as ’n foutboodskap. dpkg --print-architecture en dpkg --print-foreign-architectures vertel jou in watter stel jy werklik is.
Komponente maak ook saak. ’n Pakket in contrib of non-free is onsigbaar wanneer net main geaktiveer is, en Ubuntu se universe werk dieselfde. Die indeks bestaan en die pakket is daarin; jou geaktiveerde komponentlys sluit dit net nie in nie.
Pinning is die stille een. ’n Lêer in /etc/apt/preferences.d kan ’n pakket onder die installasiedrempel beperk, en dan verdwyn ’n heeltemal goeie kandidaat uit die uitset terwyl die indeks dit steeds lys. Omdat policy die prioriteite langs elke bron druk, is ’n pakket waarvan elke bron ’n lae pin-nommer dra, die verklikker.
Verouderde indekse lyk soos ontbrekende pakkette
Die kas is ’n momentopname. As die laaste apt update op een indeks misluk het, bly navrae uit die ouer kopie antwoord, en die pakket wat jy verwag, is dalk nie in daardie kopie nie.
apt update druk foute per indeks, so lees hulle eerder as om reguit na die laaste reël te rol.
’n Herlewing wat op ’n handtekeningfout, ’n vervalde release-lêer of ’n onbereikbare spieël misluk, laat die vorige indeks in plek. Dit is ’n sinvolle ontwerp, want dit hou ’n werkende kas wanneer ’n spieël kortliks af is. Die newe-effek is dat ’n soektog kan slaag terwyl die bewaarplek vanlyn is. Dit beteken ook dat die afwesigheid van ’n pakket niks bewys voordat jy weet wanneer die indeks laas gehaal is nie. Kyk na die lêerdatums onder /var/lib/apt/lists voordat jy die pakketnaam blameer.
Noem die pakket wat jy werklik nodig het
OpenVPN is ’n daemon, en die stukke wat mense gewoonlik wil hê, is aparte pakkette.
Die enjin, die NetworkManager-inprop en die lessenaarredigeerder is drie pakkette met drie name, en die inprop het ’n GTK-variant wie se naam tussen verspreidings verskil. apt-cache search --names-only openvpn pas name en verskafde name eerder as beskrywings, en dit is wat jy wil hê wanneer jy ongeveer weet wat die ding genoem word.
As die naam werklik onbekend is, deursoek beskrywings een keer en gaan dan terug na presiese name. Moenie ’n -gui-agtervoegsel byvoeg wat by ’n ander verspreiding geleen is en aflei dat die pakket nie meer bestaan nie.
Verander bronne laaste, en verifieer dan die transaksie
Om ’n bewaarplek by te voeg verander wie jou opdaterings lewer, so dit hoort aan die einde van die ondersoek, nie aan die begin nie.
Voor dit, bevestig release, argitektuur, komponent en pin-toestand. Skryf neer watter van die vier jy nagegaan het, sodat die volgende persoon nie die sweep herhaal nie. As al vier reg is en die kandidaat steeds ontbreek, is die eerlike gevolgtrekking dat hierdie uitgawe nie daardie pakket verskaf nie. Die oorblywende opsies is ’n backport, ’n verskafferpakket of ’n ander ondersteunde uitgawe, en elkeen daarvan is ’n doelbewuste keuse eerder as ’n raaiskoot.
Wanneer die kandidaat wel verskyn, simuleer voordat jy verbind: apt-get install --simulate met die pakketnaam wys wat ingetrek en wat verwyder sou word. Pakketbeskikbaarheid, installasie en ’n werkende tonnel bly drie aparte fases, en die tonnel het steeds sy profiel, geloofsbriewe, roetes en DNS nodig voordat dit verkeer dra.