Egy VPN-csomag, amely Installed: (none) állapotot jelent, nem hiányzik; egyszerűen nincs telepítve. A telepíthetőségét eldöntő sor a Candidate, amelyet az APT az indexekből, a suite nevéből, az architektúrából és a hatályos rögzítési szabályokból vezet le. Az eltűnt VPN-csomagról szóló jelentések többsége jelöltprobléma, nem csomagolási probléma. Olvassa el mindkét sort, mielőtt egyetlen forrásbejegyzéshez hozzányúlna.

Először a jelöltet ellenőrzöm, mert ez egyetlen parancsba kerül, és kizárja a szokásos találgatások felét.

Mit mond el az apt-cache policy kimenete

Az apt-cache policy a helyi csomag-gyorsítótárat olvassa, nem a hálózatot. Kiírja a telepített verziót, a jelölt verziót és minden index táblázatát, amely kínálja a csomagot, a hozzá rendelt prioritással.

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

A jelölt az a verzió, amelyet az APT most választana. A madison felsorolja, mit kínál az egyes forrás a prioritásával, és így veszi észre azt a csomagot, amely létezik egy indexben, de elveszíti a rögzítési versenyt. Az apt-cache kézikönyve mindkettőt gyorsítótár-olvasásként dokumentálja, így egyik sem bizonyítja, hogy a tükör ebben a pillanatban elérhető.

Ha a jelölt sor üres, vagy (none) áll, akkor a beállított forrásokban semmi sem alkalmas erre a rendszerre úgy, ahogy be van állítva.

Négy ok, amiért a jelölt eltűnik

A gyakorlatban az ok szinte mindig négy dolog egyike, és mindegyikre más a megoldás.

A forrásokban szereplő suite névnek meg kell egyeznie azzal a disztribúcióval, amelyhez a csomagot építették. Egy trixie tükörre mutató Debian bookworm rendszer, vagy egy Ubuntu kiadás, amelyet frissítés közben átneveztek egy sources.list.d fájlban, semmit sem old meg azoknál a csomagoknál, amelyek csak a másik suite-ban léteznek. Hasonlítsa össze az lsb_release -cs kimenetét az egyes bejegyzések suite mezőjével.

Az APT csak azokra az architektúrákra épített csomagokat látja, amelyeket a dpkg ismer. Egy 32 bites konténer, egy arm64 lemezkép vagy egy Raspberry Pi telepítés, amely csak amd64-hez szállított csomagot kér, üres jelöltet kap hibaüzenet helyett. A dpkg --print-architecture és a dpkg --print-foreign-architectures megmondja, melyik halmazban van valójában.

A komponensek is számítanak. A contrib vagy non-free komponensben lévő csomag láthatatlan, ha csak a main van engedélyezve, és az Ubuntu universe ugyanígy viselkedik. Az index létezik, és a csomag benne van; csak az engedélyezett komponensek listája nem tartalmazza.

A rögzítés a csendes. Egy fájl a /etc/apt/preferences.d könyvtárban a telepítési küszöb alá szoríthat egy csomagot, és akkor egy teljesen jó jelölt eltűnik a kimenetből, miközben az index még mindig felsorolja. Mivel a policy az egyes források mellé kiírja a prioritásokat, az a csomag, amelynek minden forrása alacsony rögzítési számot hordoz, az árulkodó jel.

Az elavult indexek hiányzó csomagoknak látszanak

A gyorsítótár pillanatkép. Ha az utolsó apt update egy indexnél meghiúsult, a lekérdezések továbbra is a régebbi másolatból válaszolnak, és lehet, hogy a várt csomag nincs abban a másolatban.

Az apt update indexenként írja ki a hibákat, ezért olvassa el őket, ahelyett hogy egyenesen az utolsó sorra görgetne.

Egy frissítés, amely aláírási hiba, lejárt release fájl vagy elérhetetlen tükör miatt hiúsul meg, a helyén hagyja az előző indexet. Ez ésszerű tervezés, mert működő gyorsítótárat tart meg, amikor egy tükör rövid időre kiesik. Mellékhatása, hogy egy keresés sikerülhet, miközben a tároló offline. Ez azt is jelenti, hogy egy csomag hiánya semmit sem bizonyít, amíg nem tudja, mikor töltötték le utoljára az indexet. Ellenőrizze a fájldátumokat a /var/lib/apt/lists alatt, mielőtt a csomag nevét hibáztatná.

Nevezze meg a valóban szükséges csomagot

OpenVPN egy démon, és az emberek általában vágyott darabok külön csomagok.

A motor, a NetworkManager beépülő modul és az asztali szerkesztő három csomag három névvel, és a beépülő modulnak van egy GTK-változata, amelynek neve disztribúciónként eltér. Az apt-cache search --names-only openvpn a leírások helyett neveket és biztosított neveket egyeztet, és ezt akarja, amikor nagyjából tudja, hogy hívják a dolgot.

Ha a név valóban ismeretlen, egyszer keressen a leírásokban, majd térjen vissza a pontos nevekhez. Ne fűzzön hozzá egy másik disztribúcióból kölcsönzött -gui utótagot, és ne következtessen arra, hogy a csomag már nem létezik.

Utoljára módosítsa a forrásokat, majd ellenőrizze a tranzakciót

Egy tároló hozzáadása megváltoztatja, ki szállítja a frissítéseit, ezért a vizsgálat végére tartozik, nem az elejére.

Előtte erősítse meg a kiadást, az architektúrát, a komponenst és a rögzítés állapotát. Jegyezze fel, melyiket ellenőrizte a négyből, hogy a következő ember ne ismételje meg a körjáratot. Ha mind a négy helyes, és a jelölt még mindig hiányzik, az őszinte következtetés az, hogy ez a kiadás nem szállítja azt a csomagot. A fennmaradó lehetőségek egy backport, egy gyártói csomag vagy egy másik támogatott kiadás, és mindegyik tudatos választás, nem találgatás.

Amikor a jelölt mégis megjelenik, szimuláljon a véglegesítés előtt: az apt-get install --simulate a csomag nevével megmutatja, mi kerülne be és mi törlődne. A csomag elérhetősége, a telepítés és egy működő alagút továbbra is három külön szakasz, és az alagútnak még mindig kell a profilja, a hitelesítő adatai, az útvonalai és a DNS, mielőtt forgalmat szállít.

Kapcsolódó cikkek