Làm thế nào để khôi phục thư mục xóa dpkg xóa?


30

Thật không may, tôi đã xóa thư mục dpkg trong khi gỡ khóa. Do nhầm lẫn tôi đã gõ

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

Bây giờ khi tôi đang cố gắng cài đặt / gỡ cài đặt các gói, nó hiển thị cho tôi lỗi sau.

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

Tôi nên làm gì bây giờ?


Bạn đã thử sao chép (Cố gắng không xóa chúng) các tệp từ đĩa CD Ubuntu Live vào chính hệ thống dưới dạng Superuser ??
Đaminh Hayes

Câu trả lời:


60

root + rm+ -r= thảm họa

Vì vậy, những gì bạn đã lên án sự hư hỏng?

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

Bạn đã xóa 5 thư mục, tệp trạng thái, v.v ... Vì vậy, hãy thử sửa nội dung. Đầu tiên, tạo thư mục:

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

Khôi phục một số bản sao lưu:

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

Bây giờ, hãy xem dpkg của bạn có hoạt động không (bắt đầu cầu nguyện):

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

Nếu mọi thứ đều "ok" thì hãy sửa các tệp cơ sở của bạn:

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

Bây giờ hãy thử cập nhật danh sách gói của bạn, vv.:

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

Bây giờ, hãy hít một hơi thật sâu. Phù. Làm ls -l /var/lib/dpkgvà so sánh với danh sách trên. Nếu một số -oldtập tin không có mặt, đừng lo lắng, nó sẽ ở đó vào ngày mai.


1
Cảm ơn cho phản ứng. Tôi đã làm theo các bước như bạn đã đề cập ở đây, nhưng trong khi thực hiện sudo dpkg -i dpkg * .deb , tôi gặp lỗi là dpkg: error: không thể mở tệp thông tin gói `/ usr / local / var / lib / dpkg / status 'để đọc: Không có tệp hoặc thư mục như vậy
Sambit

@Sambit không thể. Bạn có thể chỉnh sửa câu hỏi của bạn và thêm đầu ra hoàn chỉnh?
Braiam

@Sambit ls: cannot access /usr/local/var/lib/dpkg/status: No such file or directorylà thứ duy nhất tôi nhận được. /usr/localkhông phải là nơi để cài đặt tập tin dpkg.
Braiam

Vấn đề tương tự ở đây, Ubuntu cố gắng cài đặt /usr/local/thay vì trong /var/lib/dpkg. Làm thế nào để làm cho nó trỏ đến /var/lib/dpkg?
bagustris

@bagustris tải gói từ kho Ubuntu.
Braiam

2

Vâng dpkg(hệ thống quản lý gói Debian) gói cung cấp cơ sở hạ tầng ở mức độ thấp để xử lý việc cài đặt và gỡ bỏ phần mềm Debian packages.So loại bỏ nó không phải là một ý tưởng tốt, và bạn có thể nó có thể sao by-

Tải xuống tệp bằng cách sử dụng wget:

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

Giải nén nó trong thư mục xxx.

cd xxx
./configure
make
sudo make install

hy vọng nó sẽ làm việc


Tôi đã trải qua các bước đó và cài đặt thành công. nhưng một lần nữa tôi lại gặp vấn đề tương tự
Sambit

không ./mình không thành công hay đã thành công ??
Sukupa91

Đã khởi động lại và tôi nhận được lỗi tương tự như được đề cập trong câu hỏi của tôi. Ngoài ra phần mềm sẵn có như "Trung tâm phần mềm Ubuntu", "Trình quản lý cập nhật" cũng không hoạt động.
Sambit

này, tôi đã cập nhật các lệnh đầu tiên của wget, hãy thử quy trình tương tự bắt đầu với lệnh wget
Sukupa91

1
gặp lỗi, cp: không thể thống kê `/ var / lib / dpkg / status-old ': Không có tệp hoặc thư mục như vậy . Tôi đang đối mặt với những vấn đề này vì thư mục "dpkg" không tồn tại trong hệ thống của tôi.
Sambit

1

Phục hồi hệ thống của bạn từ bản sao lưu. Bạn đã thực hiện sao lưu phải không? Sao lưu hệ thống và dữ liệu của bạn là rất quan trọng để xử lý các tình huống bất ngờ như lỗi này (lỗi người dùng) và lỗi phần cứng. Nếu bạn không thể tạo bản sao lưu như được thảo luận ở đây, bạn có thể thử phục hồi dữ liệu.

Trong tương lai tôi khuyên bạn nên sao lưu thường xuyên để tránh mất dữ liệu thảm khốc. Và tôi nghi ngờ bạn sẽ quên điều đó như @Braiam đã nói " root + rm + -r = thảm họa "


-2

Chỉ cần làm theo các bước dưới đây, chắc chắn bạn có thể khôi phục các tệp, ít nhất là apt-gethoặc dpkgsẽ hoạt động.

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

Sau thử nghiệm này liệu nó có hoạt động hay không.

sudo apt-get install {Package-name}

sudo dpkg -i {package_name}

Hy vọng nó hoạt động. Nếu không bình luận bên dưới. Hãy ghi nhớ, sử dụng hết sức thận trọng trong khi chơi với sudo + rm -rf.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.