A var könyvtárban lakó backup könyvtárból nem tudod pótolni az egyes csomagokhoz tartozó, a /var/lib/dpkg/ elérési úton található, info könyvtárban lakó fájlokat: list, md5sums, postinst, postrm, preinst, prerm, config, conffiles.
Mindezeket menthetted rendszer-visszaállítási pontban (Timeshift, Systemback). Javasolt.
Az említett beállításokat alapértelmezetten a rendszer nem menti másodpéldányban, és ez nem is elvárás.
Az info könyvtár tartalmának pótlására két általános módszer létezik...
A módszerek
- a rendszer újratelepítése telepítő segítségével.
- az összes egyéni beállításod „elvész”, de teljesen friss rendszert kapsz.
- a telepítés 10-15 perc, a rendszer személyre szabása az, ami hosszabb ideig tarthat (ehhez segítség itt).
- az összes alkalmazás és csomag újratelepítése.
- hosszú ideig tart.
- sok szabad hely szükséges, akár 10-15 GB.
- a saját beállításaid, a telepített alkalmazások megmaradnak, de egyes rendszer beállításokkal bizony foglalkozni kell (alapértelmezésre állnak vissza), és ehhez van-e kitartás.
Válaszd ki, melyik mellett döntesz. Mérlegeld a módszerek előnyeit és a hátrányait.
Telepítővel történő rendszer újratelepítés
Ismertek a feltételek. Ez a tiszta, azaz, az ajánlott módszer.
A telepítés előtt azonban érdemes a saját dolgaidat például külső merevlemezre vagy felhőbe menteni, hiszen egy új telepítés nem tartja meg a letöltött vagy mentett fájlokat és könyvtárakat, mindent töröl.
Az összes telepített alkalmazás és csomag újratelepítése
Megteheted azt is, hogy a telepített csomagokat újratelepíted.
A needrestart alkalmazás eltávolítása
0) Érdemes eltávolítani a needrestart alkalmazást, hiszen sok csomagot telepítesz újra, és a Systemd meglehetősen sokszor kérne meg, hogy bizonyos szolgáltatásokat indíts újra egy-egy csomag telepítése után, következésképpen az újratelepítések folyamata akár több óráig tartana, és folyamatos figyelmet, készenlétet igényelne tőled.
A needrestart beállításainak szerkesztése is megoldás lehet, de egyszerűbb az alkalmazást átmenetileg eltávolítani.
sudo apt-get purge needrestart
A szolgáltatás kikapcsolásának érvényesítéséhez indítsd újra a rendszert grafikusan vagy terminálban.
sudo systemctl reboot
Felkészülés a csomagok újratelepítésére
Könnyen érthető lépéseken vezetlek végig a tennivalókon.
1) Legyen elegendő szabad hely a merevlemezen a csomagkezelő által letöltött telepítőknek.
2) Előfordulhat, hogy egy-egy alkalmazást a telepítőjének letöltésével, a GDebi csomagkezelővel telepítetted, vagyis, a telepítés alkalmával nem jött létre az alkalmazás frissítéséhez szükséges tükör. Ilyen alkalmazás például a Zoom, amely a saját menüjéből frissíthető. Ezeket az alkalmazásokat mindenképpen telepítsd újra, hiszen ezzel létrehozod az alkalmazásra jellemző, a /var/lib/dpkg/ elérési úton található, info könyvtárban lakó fájlokat: list, md5sums, postinst, postrm, preinst, prerm, config, conffiles.
3) Telepíts újra a rendszerre telepített csomagokat. A script csak azokat a csomagokat telepíti újra, amelyek nem rendelkeznek az alkalmazásra jellemző, a /var/lib/dpkg/ elérési úton található, info könyvtárban lakó fájlokkal: list, md5sums, postinst, postrm, preinst, prerm, config, conffiles. A fájlokat az alkalmazások egyszeri telepítése hozza létre. A script csak azokat az alkalmazásokat tudja újratelepíteni, amelyek tükörrel rendelkeznek. Ezért volt fontos az előző lépés.
A hiányzó rendszerfájlokra (info könyvtár) jellemző hibaüzenetek egy-egy csomag telepítésének vagy újratelepítésének alkalmával jelentkeznek, a frissítés (sudo apt-get update ; sudo apt-get upgrade parancssorok futtatásakor) nem.
A hibaüzenet (példa):
dpkg: figyelj!: files list file for package '*' missing; assuming package has no files currently installed
Alkalmazások újratelepítése
Az újratelepítő scriptben a Kaffeine alkalmazás újratelepítésével hozom létre azon hibaüzeneteket, amelyekre az újratelepítés folyamata felépül.
Ha a rendszereden nincs telepítve a Kaffeine vagy nem szeretnéd telepíteni, akkor cseréld ki a kaffeine kifejezést egy, a rendszeredre már telepített alkalmazás csomagnevére...
for package in $(LANG=C sudo apt-get install --reinstall kaffeine 2>&1 | grep "warning: files list file for package '" | grep -Po "[^'\n ]+'" | grep -Po "[^']+"); do sudo apt-get install --reinstall "$package" --yes; done
Ha például a Firefox böngésző telepítve van, akkor a script így néz ki:
for package in $(LANG=C sudo apt-get install --reinstall firefox 2>&1 | grep "warning: files list file for package '" | grep -Po "[^'\n ]+'" | grep -Po "[^']+"); do sudo apt-get install --reinstall "$package" --yes; done
A parancssorban a yes kapcsoló (--yes) biztosítja, hogy a telepítések a lehetőségekhez mérten a felhasználó közreműködése nélkül fussanak le. Amikor feltétlen szükséges -helyetted nem tud dönteni a rendszer- valamilyen választ kell adnod a folytatáshoz (lásd lentebb).
A folyamat meglehetősen hosszú ideig tart (~három napi hideg élelemről gondoskodj).
A csomagok újratelepítése...
- nem befolyásolja a saját könyvtáradban található, a felhasználóra vonatkozó alkalmazás beállításokat,
- viszont akár befolyásolhatja az általános, azaz rendszerszintű alkalmazás beállításokat.
Megfelelően kezelendő jelzések
- A Lynis alkalmazás az újratelepítésekor megkérdezi, a meglévő (általad szerkesztett, megváltoztatott) beállításokat használod, vagy a mindenkori újat. A felkínált lehetőségek közül választhatsz.
- Az update-alternatives alkalmazás figyelmeztet az alapértelmezett beállítások megváltozására. Ezt mondja: esetleg újra be kell állítanod a jelzett alapértelmezéseket. Alapértelmezett beállításra példa: háttérkép, szövegszerkesztő, böngésző.
- Az inxi, ha nem a tükörről származó verzióját használod, megkérdezi azt, mint a Lynis. Itt azonban, a választásodtól függetlenül, érdemes inkább ismét frissíteni a legújabb inxi verzióra.
Egy-egy csomag telepítése nem sikerül
Az alkalmazások sikertelen telepítéséről hibajelzést kapsz a folyamat során (dpkg).
Hibajelzés a kimenetben (példa):
Hibák történtek a feldolgozáskor: libpaper1:amd64 libreoffice-writer libgs9:amd64 libreoffice-draw dvisvgm libspectre1:amd64 ufw libpaper-utils ghostscript fig2dev scribus grub-pc unattended-upgrades cups libdvd-pkg: Package libdvdcss2-1.4.2-1 was removed, stop processing... E: Sub-process /usr/bin/dpkg returned an error code (1)
A dpkg csomagkezelő jelzései az alkalmazás telepítéséhez szükséges függőségek hiányát jelzik, és a folyamat előrehaladásával eltűnnek. Amikor az alkalmazás függősége is telepítésre kerül, az apt csomagkezelő helyrehozza a problémás telepítést. Magyarázat másképpen: egyszerre egy alkalmazás kerül újratelepítésre, és a dpkg nem kezeli a csomagfüggőségeket, az apt viszont igen.
Ha mégsem tűnnek el, akkor futtasd:
sudo dpkg --configure -a
sudo apt-get -f install
Ha a két parancssor után is hibákat kapsz bármilyen csomagtelepítés alkalmával...
Ellenőrzés (példa):
sudo apt-get install --reinstall kaffeine
vagy
sudo apt-get install --reinstall firefox
vagy esetleg (lásd később is).
sudo apt-get install --reinstall needrestart
Hibák (példa):
dpkg: figyelj!: files list file for package 'linux-image-5.18.0-10.2-liquorix-amd64' missing; assuming package has no files currently installed dpkg: figyelj!: files list file for package 'libasound2-plugins:i386' missing; assuming package has no files currently installed (Adatbázis olvasása ... 382030 files and directories currently installed.)
A javítás sikerességének felmérése az apt-cache alkalmazás policy kapcsolójával történik (példa)
Ha az alkalmazás tükörről telepíthető, akkor http://* elérést kapsz (a tükör):
apt-cache policy libasound2-plugins:i386 libasound2-plugins:i386: Telepítve: 1.2.2-2 Jelölt: 1.2.2-2 Verziótáblázat: *** 1.2.2-2 500 500 http://deb.debian.org/debian bullseye/main i386 Packages 100 /var/lib/dpkg/status
Ha az alkalmazás tükörről nem telepíthető, azaz, törölhető, akkor nincs http://* elérés, csak status:
apt-cache policy linux-image-5.18.0-10.2-liquorix-amd64 linux-image-5.18.0-10.2-liquorix-amd64: Telepítve: 5.18-10.1~bullseye Jelölt: 5.18-10.1~bullseye Verziótáblázat: *** 5.18-10.1~bullseye 100 100 /var/lib/dpkg/status
Alkalmazás újratelepítése a hibaüzenet alapján (példa)
sudo apt-get install --reinstall libasound2-plugins:i386
Nem elérhető, másként felesleges alkalmazás törlése (példa)
sudo apt-get purge linux-image-5.18.0-10.2-liquorix-amd64
Egyszerre több csomag is kezelhető, ha sorba állítod a fenti parancssorokban az újratelepítendő, illetve a törlendő alkalmazásneveket (akkor, ha azokból több is létezik).
A sikeres újratelepítési folyamat után
Töröld a letöltött telepítőket.
sudo apt-get clean
Helyfoglalás (példa)
a tisztítás előtt,
df -h Fájlrendszer Méret Fogl. Szab. Fo.% Csatol. pont udev 3,8G 0 3,8G 0% /dev tmpfs 783M 1,5M 781M 1% /run /dev/sda1 110G 101G 3,0G 98% / tmpfs 3,9G 148K 3,9G 1% /dev/shm tmpfs 5,0M 4,0K 5,0M 1% /run/lock tmpfs 783M 100K 782M 1% /run/user/1000
és a tisztítás után.
df -h Fájlrendszer Méret Fogl. Szab. Fo.% Csatol. pont udev 3,8G 0 3,8G 0% /dev tmpfs 783M 1,5M 781M 1% /run /dev/sda1 110G 99G 5,7G 95% / tmpfs 3,9G 148K 3,9G 1% /dev/shm tmpfs 5,0M 4,0K 5,0M 1% /run/lock tmpfs 783M 100K 782M 1% /run/user/1000
... az újratelepítésekkel a rendszer korábban elfoglalt mérete mindenképpen megnő.
Töröld a rendszer működéséhez nem szükséges alkalmazásokat
sudo apt-get autoremove --purge
Telepítsd a needrestart alkalmazást (szükség van rá)
sudo apt-get install needrestart
A szolgáltatás használatának érvényesítéséhez és az újratelepített alkalmazások működéséhez szükséges szolgáltatások újraindításához, vagyis, a rendszer biztonságos használatához indítsd újra a rendszert grafikusan vagy terminálban.
sudo systemctl reboot
Enjoy :-)
Jegyzet
A korábbi leírást itt meghagyom: a Debian-alapú rendszerek csomagkezeléséről lehet vele tanulni...
Ne használd.
Nézd meg, a könyvtár létezik-e (terminálban):
file /var/lib/dpkg/
Ha a könyvtár létezik, akkor a kimenet ez:
/var/lib/dpkg/: directory
A könyvtár pótlása (ha nem létezik, akkor):
sudo apt-get update
sudo apt-get upgrade
... az eredeti tartalom azonban elveszett.
A könyvtár tartalma igen fontos, az APT, a dpkg, a Synaptic és az összes csomagkezelő ezt használja.
Véletlen törlés következményeként a telepített csomagokat nem látja a rendszer, így azokat frissíteni sem tudja.
Mutatom a javítás módszerét...
Készíts biztonsági mentést a status fájlról (mv):
sudo mv /var/lib/dpkg/status /var/lib/dpkg/status.ORIG
Másold a biztonsági mentésből (/var/backups/) a dpkg.status.0 fájlt a /var/lib/ útvonalon lakó dpkg könyvtárba (cp)
sudo cp /var/backups/dpkg.status.0 /var/lib/dpkg/
Nevezd át a bemásolt fájlt, mert a működő status fájl ez lesz (mv):
sudo mv /var/lib/dpkg/dpkg.status.0 /var/lib/dpkg/status
Ismételd meg a műveleteket a diversions és a statoverride fájlokkal (szintén fontos és szükséges beállításokat tartalmaznak):
sudo mv /var/lib/dpkg/diversions /var/lib/dpkg/diversions.ORIG
sudo cp /var/backups/dpkg.diversions.0 /var/lib/dpkg/
sudo mv /var/lib/dpkg/dpkg.diversions.0 /var/lib/dpkg/diversions
sudo mv /var/lib/dpkg/statoverride /var/lib/dpkg/statoverride.ORIG
sudo cp /var/backups/dpkg.statoverride.0 /var/lib/dpkg/
sudo mv /var/lib/dpkg/dpkg.statoverride.0 /var/lib/dpkg/statoverride
A másolás és az átnevezés megoldható a fájlkezelő használatával is (admin joggal).
Futtass javítást terminálban (vélhetően, ezt üzenet is jelzi):
sudo apt-get -f install
Majd frissítsd a csomagokat:
sudo apt-get update
sudo apt-get upgrade
Hozzászólások
Frissítés
Beküldte kimarite -
Értékelés:
A leírás frissítve!