Silinen “dpkg” dizini nasıl kurtarılır?


30

Maalesef kilidi kaldırırken dpkg dizinini sildim . Yanlışlıkla ben yazdım

root@sam:~$ rm -r /var/lib/dpkg

Şimdi paketleri kurmaya / kaldırmaya çalıştığımda, aşağıdaki hatayı gösteriyor.

E: Could not open lock file /var/lib/dpkg/lock - open (2: No such file or directory)

Ben şimdi ne yapmalıyım?


Bir Ubuntu Live CD'sindeki dosyaları Superuser olarak sistemin içine kopyalamayı (silmemeye çalışmayı denediniz mi )?
Dominic Hayes

Yanıtlar:


60

kök + rm+ -r= felaket

Öyleyse geleneğe ne mahkum ettin?

ls -l /var/lib/dpkg/
total 9964
drwxr-xr-x 2 root root    4096 nov 28 11:18 alternatives
-rw-r--r-- 1 root root      11 sep 18 14:08 arch
-rw-r--r-- 1 root root 2573807 nov 28 11:18 available
-rw-r--r-- 1 root root 2561322 nov 28 10:25 available-old
-rw-r--r-- 1 root root       8 abr 24  2013 cmethopt
-rw-r--r-- 1 root root     538 sep 25 17:24 diversions
-rw-r--r-- 1 root root     457 sep 25 17:24 diversions-old
drwxr-xr-x 2 root root  483328 nov 28 11:17 info
-rw-r----- 1 root root       0 nov 28 11:18 lock
drwxr-xr-x 2 root root    4096 mar 22  2013 parts
-rw-r--r-- 1 root root     135 abr 24  2013 statoverride
-rw-r--r-- 1 root root 2269113 nov 28 11:18 status
-rw-r--r-- 1 root root 2268870 nov 28 11:18 status-old
drwxr-xr-x 2 root root    4096 nov 28 11:18 triggers
drwxr-xr-x 2 root root    4096 nov 28 11:18 updates

5 dizini kaldırdınız, durum dosyasını vb. İlk önce, dizini yaratın:

sudo mkdir -p /var/lib/dpkg/{alternatives,info,parts,triggers,updates}

Bazı yedekleri kurtarın:

sudo cp /var/backups/dpkg.status.0 /var/lib/dpkg/status

Şimdi, dpkg'ınızın çalışıp çalışmadığını görelim (dua etmeye başlayın):

apt-get download dpkg
sudo dpkg -i dpkg*.deb

Her şey yolundaysa, temel dosyalarınızı da onarın:

apt-get download base-files
sudo dpkg -i base-files*.deb

Şimdi paket listenizi vb. Güncellemeyi deneyin.

dpkg --audit
sudo apt-get update
sudo apt-get check

Şimdi derin bir nefes alalım. Uf. Yapın ls -l /var/lib/dpkgve yukarıdaki listeyle karşılaştırın. Bazı -olddosyalar yoksa endişelenmeyin, yarın orada olacak.


1
Cevap için teşekkürler. Burada bahsettiğiniz adımları takip ettim, ancak sudo dpkg -i dpkg * .deb komutunu çalıştırırken dpkg hatası alıyorum : hata: `/ usr / local / var / lib / dpkg / status paket bilgi dosyasını açamadı. 'okuma için: Böyle bir dosya veya dizin yok
Sambit

@Sambit İmkansız. Sorunuzu düzenleyebilir ve çıktının tamamını ekleyebilir misiniz?
Braiam

@Sambit aldığım ls: cannot access /usr/local/var/lib/dpkg/status: No such file or directorytek şey. /usr/localdpkg dosyalarını yüklemek için bir yer değil.
Braiam

Burada da aynı sorun, Ubuntu /usr/local/yerine yüklenmeye çalışılıyor /var/lib/dpkg. Bunu işaret etmek nasıl /var/lib/dpkg?
bagustris

@bagustris, paketi Ubuntu depolarından indirir.
Braiam

2

Well dpkg(Debian paket yönetim sistemi) paketi, Debian yazılım paketlerinin kurulumu ve kaldırılması için düşük seviyeli bir altyapı sağlar.

Dosyayı kullanarak indirme wget:

wget https://launchpad.net/ubuntu/+archive/primary/+files/dpkg_1.16.1.2ubuntu7.2.tar.bz2

Xxx klasöründe ayıklayın.

cd xxx
./configure
make
sudo make install

işe yarayacağını umuyorum.


Bu adımları izledim ve başarıyla yükledim. ama yine aynı problemi alıyorum.
Sambit

/ .configure başarısız oldu veya başarılı oldu mu?
Sukupa91,

Zaten yeniden başlatıldı ve sorumla belirtilen aynı hatayı alıyorum. Ayrıca "Ubuntu Software Center", "Update Manager" gibi dahili yazılımlar da çalışmıyor.
Sambit

hey wget ilk komutlarını güncelledim, wget komutuyla başlayan aynı işlemi deneyin
Sukupa91

1
hata alıyorum, cp: `/ var / lib / dpkg / status-old 'stat statüsünde olamaz: Böyle bir dosya veya dizin yok . Bu sorunla karşı karşıyayım çünkü sistemimde "dpkg" dizini bulunmuyor.
Sambit

1

Sisteminizi yedekten kurtarın. Yedekleri doğru yaptın mı? Sisteminizi ve verilerinizi yedeklemek, bu (beklenmedik hata) ve donanım arızası gibi beklenmeyen durumlarla baş etmek için kritik öneme sahiptir. Burada tartışıldığı gibi yedeklemeler oluşturamazsanız , veri kurtarmayı deneyebilirsiniz .

Gelecekte , felaketle ilgili veri kaybını önlemek için düzenli aralıklarla yedekleme yapmanızı öneriyorum . Ve @Braiam'ın " root + rm + -r = felaket " dediği gibi unutacağınızdan şüpheliyim


-2

Sadece aşağıdaki adımları izleyin, dosyaları kurtarabilir, en azından çalıştırabilir apt-getveya çalıştırabilirsiniz dpkg.

sudo cp /var/backups/dpkg.status.0  /var/lib/dpkg/

sudo mv /var/backups/dpkg.status.0  /var/backups/status

sudo mkdir /var/lib/dpkg/updates

Bu testten sonra çalışıp çalışmayacağı.

sudo apt-get install {Package-name}

sudo dpkg -i {package_name}

Umarım işe yaradı. Aşağıdaki yorum yapılmadıysa. Aklınızda bulundurun, oynarken oynarken çok dikkatli olun sudo + rm -rf.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.