Tartalom
Bevezető
Amikor egy Linux disztribúció nem a legfrissebb változatát használjuk, előjöhetnek furcsaságok. Nálam például egy későbbi leírás előkészítéséhez előszedett Debian 9 (Stretch) virtuális gép okozott érdekességet a csomagtárának frissítésekor, de a hiba szerencsére roppant egyszerűen orvosolható volt.
A hibajelenség
Debian 9 (Stretch) backports csomagtárának frissítésekor hibaüzenetet kapunk:
sudo apt-get update
Azt írja hogy "Az alábbi aláírások nem ellenőrizhetők, mert a nyilvános kulcs nem érhető el: NO_PUBKEY xxxxxxx".
Ilyesmi akkor fordulhat elő, ha rendszerünket már nagyon nagyon rég frissítettük, így sok csomag elavult benne. Így jártam én is a már körülbelül több mint egy éve nem használt Debian 9 virtuális gépemmel, amikor előszedtem, hogy egy későbbi leírás céljából naprakész állapotba rakjam - már amennyire naprakész állapotba lehet tenni egy Debian 9-et.
Ez a kellemetlenség szerencsére roppant egyszerűen elhárítható.
A megoldás
Utánanézve a legtöbb helyen a kulcsszerver beállítgatását, illetve a megfelelően friss GPG kulcsok telepítését ajánlgatják, de ennél egyszerűbben is orvosolhatjuk a problémát, amennyiben nem harmadik féltől származó csomagtárról van szó, hanem például a Debian backports tárolójáról.
A Debian 9 esetében, amikor annak idején a disztribúció átkerült az oldstable állapotba, és a helyére a Debian 10 (Buster) került, mint stabil változat, akkor a Debian 9 csomagtára egy idő után átkerült az archív csomagtárba, amit csak a debian-archive-keyring csomaggal érhettünk el, mivel a megfelelő GPG kulcsokat ez a csomag tartalmazza. Így tehát ez a GPG kulcsokat tartalmazó csomag jó eséllyel a gépünkön van, viszont ez is elavult, ezért ezt újra kell telepítenünk az apt-get parancs segítségével:
sudo apt-get --reinstall install debian-archive-keyring
Az APT csomagkezelő ekkor újratelepíti a debian-archive-keyring csomagot a Debian csomagtárából, ami már tartalmazza a friss GPG kulcsokat, valamint eltávolítja az elavult konfigurációs fájlokat, kulcsokat, stb.
Ezután ha újra kiadjuk az apt-get update parancsot, akkor az első alkalommal betölt és megjelenít mindent:
majd utána ha újra futtatjuk, akkor már a megszokott módon működik:
Ezután már frissíthetjük is a csomagjainkat a megszokott módon:
sudo apt-get upgrade
A megoldás harmadik féltől származó csomagtárak esetén
A fenti megoldás csak a Debian saját csomagtárainak használata esetén működik, azonban ha harmadik féltől származó csomagtárakat használunk, akkor muszáj letöltenünk azoknak a saját GPG kulcsait. Lássunk egy példát.
Google Chrome
Például ha a Google Chrome böngészőnk csomagtárának a kulcsa vált érvénytelenné, akkor itt is az alábbi (NO_PUBKEY) hibát dobja egy Debian 9 esetén:
Ekkor futtassuk az alábbi wget parancsot root-ként:
wget -qO - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
És a Google publikus kulcsa települ:
Ezután már működik rendesen a csomagtáraink frissítése is:
Opera
Opera esetén például a kulcsot az alábbi paranccsal tölthetjük le:
wget -qO - https://deb.opera.com/archive.key | sudo apt-key add -
Időnként azonban előfordulhat, hogy a fenti wget parancsok nem tudják letölteni megfelelően a kulcsokat a Chrome vagy egyéb szoftver csomagtárból. Ilyenkor a hiba továbbra is megmarad a következő csomagtár frissítésekor is. Ha Ilyen fordul elő, akkor érdemes közvetlenül az Ubuntu kulcsszerveréről letölteni a kulcsot az alábbi paranccsal:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys <azonosító>
Ahol az <azonosító> helyére helyettesítsük be a saját hibakimenetünkben található "NO_PUBKEY" utáni hexadecimális azonosítót.
Konklúzió
A disztribúciók illetve verzióik jönnek, mennek, a régiek helyére újabbak lépnek, így időnként szükséges lehet a régebbi rendszerek használata esetén külön megoldásokra, hogy aztán rendesen működhessenek tovább.
- A hozzászóláshoz regisztráció és bejelentkezés szükséges
- 380 megtekintés