Un paquet VPN que informa Installed: (none) no falta; simplement no està instal·lat. La línia que decideix si el podeu instal·lar és Candidate, que APT deriva dels índexs, del nom del suite, de l’arquitectura i de qualsevol regla de fixació vigent. La majoria d’informes d’un paquet VPN desaparegut resulten ser un problema de candidat i no un problema d’empaquetatge. Llegiu les dues línies abans de tocar cap entrada de fonts.

Primer comprovo el candidat perquè costa una ordre i descarta la meitat de les suposicions habituals.

Què us diu la sortida d’apt-cache policy

apt-cache policy llegeix la memòria cau local de paquets, no la xarxa. Imprimeix la versió instal·lada, la versió candidata i una taula de cada índex que ofereix el paquet amb la prioritat que hi té associada.

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

El candidat és la versió que APT triaria ara mateix. madison llista què ofereix cada font amb la seva prioritat, i així és com detecteu un paquet que existeix en un índex però perd la competició de fixació. El manual d’apt-cache documenta tots dos com a lectures de la memòria cau, així que cap dels dos no demostra que el mirall sigui accessible en aquest moment.

Si la línia del candidat és buida o diu (none), res de les fonts configurades no és elegible per a aquest sistema tal com està configurat.

Quatre motius pels quals desapareix un candidat

A la pràctica la causa és gairebé sempre una de quatre coses, i cadascuna té una solució diferent.

El nom del suite a les vostres fonts ha de coincidir amb la distribució per a la qual es va construir el paquet. Un sistema Debian bookworm apuntat a un mirall trixie, o una versió d’Ubuntu que va ser reanomenada en un fitxer sources.list.d durant una actualització, no resol res per als paquets que només existeixen a l’altre suite. Compareu lsb_release -cs amb el camp suite de cada entrada.

APT només veu paquets construïts per a les arquitectures que dpkg coneix. Un contenidor de 32 bits, una imatge arm64 o una instal·lació en Raspberry Pi que demana un paquet que només es distribueix per a amd64 obtenen un candidat buit en lloc d’un missatge d’error. dpkg --print-architecture i dpkg --print-foreign-architectures us diuen en quin conjunt esteu realment.

Els components també importen. Un paquet a contrib o non-free és invisible quan només main està habilitat, i l’universe d’Ubuntu fa el mateix. L’índex existeix i el paquet hi és; simplement la vostra llista de components habilitats no l’inclou.

La fixació és la silenciosa. Un fitxer a /etc/apt/preferences.d pot limitar un paquet per sota del llindar d’instal·lació, i llavors un candidat perfectament bo desapareix de la sortida mentre l’índex encara el llista. Com que policy imprimeix les prioritats al costat de cada font, un paquet en què cada font porta un número de fixació baix és la pista.

Els índexs obsolets semblen paquets que falten

La memòria cau és una instantània. Si l’últim apt update va fallar en un índex, les consultes continuen responent de la còpia més antiga, i el paquet que espereu pot no ser en aquesta còpia.

apt update imprimeix errors per índex, així que llegiu-los en lloc de desplaçar-vos directament a l’última línia.

Una actualització que falla per un error de signatura, un fitxer release caducat o un mirall inaccessible deixa l’índex anterior al seu lloc. És un disseny sensat, perquè manté una memòria cau funcional quan un mirall cau breument. L’efecte secundari és que una cerca pot tenir èxit mentre el repositori està fora de línia. També vol dir que l’absència d’un paquet no demostra res fins que no sabeu quan es va obtenir l’índex per última vegada. Comproveu les dates dels fitxers a /var/lib/apt/lists abans de culpar el nom del paquet.

Anomeneu el paquet que realment necessiteu

OpenVPN és un dimoni, i les peces que la gent sol voler són paquets separats.

El motor, el connector de NetworkManager i l’editor d’escriptori són tres paquets amb tres noms, i el connector té una variant GTK el nom de la qual difereix entre distribucions. apt-cache search --names-only openvpn fa coincidir noms i noms proporcionats en lloc de descripcions, que és el que voleu quan sabeu aproximadament com es diu la cosa.

Si el nom és realment desconegut, cerqueu una vegada a les descripcions i després torneu als noms exactes. No afegiu un sufix -gui manllevat d’una altra distribució i conclogueu que el paquet ja no existeix.

Canvieu les fonts al final i després verifiqueu la transacció

Afegir un repositori canvia qui subministra les vostres actualitzacions, així que pertany al final de la investigació, no al principi.

Abans, confirmeu la versió, l’arquitectura, el component i l’estat de fixació. Anoteu quins dels quatre heu comprovat, perquè la propera persona no repeteixi l’escombrat. Si els quatre són correctes i el candidat encara falta, la conclusió honesta és que aquesta versió no distribueix aquest paquet. Les opcions restants són un backport, un paquet de proveïdor o una altra versió suportada, i cadascuna és una elecció deliberada i no una endevinalla.

Quan el candidat aparegui, simuleu abans de confirmar: apt-get install --simulate amb el nom del paquet mostra què s’atrauria i què s’eliminaria. La disponibilitat del paquet, la instal·lació i un túnel funcional continuen sent tres etapes separades, i el túnel encara necessita el seu perfil, credencials, rutes i DNS abans de portar trànsit.

Articles relacionats