Vì bạn chỉ xóa /usr/lib/*
và không /lib/*
, bạn có thể khôi phục. Tôi nghĩ rằng tất cả các chương trình bạn rất cần để khôi phục hệ thống của bạn chỉ sử dụng các thư viện từ đó /usr/lib
.
Khởi động một dấu nhắc đăng nhập văn bản. Nếu khởi động bình thường không cung cấp cho bạn login:
lời nhắc trong chế độ văn bản, hãy khởi động chỉ với các dịch vụ tối thiểu. Bấm và giữ Shiftkhi máy tính của bạn bắt đầu hiển thị lời nhắc Grub; bạn cần nhấn phím sau khi BIOS khởi tạo bàn phím nhưng trước khi Grub được tải, trên một số máy chỉ để lại một cửa sổ thời gian nhỏ và có thể yêu cầu một số hình ảnh. Tại dấu nhắc Grub, nhấn Downđể tô sáng mục nhập khởi động chế độ một người dùng và khởi động.
Khi bạn có một dòng lệnh, hãy chạy apt-get --reinstall install PACKAGE1 PACKAGE2 …
để cài đặt lại các gói có tệp /usr/lib
. Bạn có thể chạy đoạn mã shell này để lấy danh sách tên của các gói cần cài đặt lại:
egrep -l '/usr/lib/[^/]*\.so\.' /var/lib/dpkg/info/a*.list |
sed -e 's!^/var/lib/dpkg/info/!!' -e 's!\.list$!!'
Một số tập lệnh cài đặt gói có thể yêu cầu các thư viện từ các gói khác có mặt, vì vậy bạn có thể cần chạy cài đặt lại theo một thứ tự cụ thể. Nếu bạn thấy rằng các tập lệnh cài đặt của gói đang cố gắng sử dụng một chương trình cụ thể, bạn có thể tìm hiểu các thư viện mà chương trình này cần ldd
. Ví dụ: điều này cho thấy python đang thiếu ba thư viện mà bạn cần cài đặt lại:
$ ldd /usr/bin/python | grep 'not found'
libssl.so.0.9.8 => not found
libcrypto.so.0.9.8 => not found
libz.so.1 => not found
dpkg -S /usr/lib/libz.so.1
tiết lộ rằng tập tin này đến từ zlib1g
, và như vậy.
Nếu bạn thấy rằng apt-get
không thể tải xuống các gói, trước tiên hãy tải xuống một vài gói chính từ đĩa CD trực tiếp. zlib1g
và libssl0.9.8
là hai gói bạn rất có thể cần sớm.