vô tình xóa / var / lib / apt /


10

Tôi đã vô tình xóa nội dung của / var / lib / apt bằng lệnh bên dưới:

sudo rm -rf /var/lib/apt/*

Tôi nên làm gì bây giờ? Tôi có thể khôi phục nó không? có cần thiết không


Lý do đằng sau tai nạn này là tôi đã cố gắng loại bỏ / var / lib / apt / list / * vì kích thước khổng lồ của nó để tạo không gian trống trên đĩa của tôi.
Hossein Hosseinvand

Câu trả lời:


24

Các thư mục có chứa một vài điều thú vị, đặc biệt có /var/lib/apt/keyrings/thư mục cho bất kỳ kho mà bạn đã thêm vào hệ thống qua apt-add-repository(và sau đó có còn /etc/apt/trusted.gpg/etc/apt/trusted.gpg.d/) và cdroms.list cần tham khảo các phương tiện cài đặt như là nguồn của gói. Loại bỏ /var/lib/apt/keyrings/ubuntu-archive-keyring.gpgcó thể được cài đặt lại với sudo apt-get install --reinstall ubuntu-keyring.

Ngoài ra /var/lib/apt/lists, có chứa các tệp khóa khi aptđang chạy cập nhật hoặc nâng cấp và danh sách các gói trong kho từ xa. Các mục trong thư mục đó đôi khi bị xóa hoặc xóa như trong bài viết này chẳng hạn. Nó sẽ tái sinh khi bạn chạy apt-get update.

Nói tóm lại, tôi sẽ không lo lắng về điều này nhiều. Chỉ cần chạy sudo apt-get updatevà nó sẽ quay trở lại, tuy nhiên nếu bạn đã thêm các kho lưu trữ thông qua apt-add-repositoryđó có thể yêu cầu khóa GPG, thì bạn có thể muốn thêm khóa đó một lần nữa hoặc tạm thời xóa kho lưu trữ đó khỏi /etc/apt/sources.list.d.

Mặc dù đây không phải là một vấn đề lớn trong trường hợp này, như Lightness đã đề cập trong các bình luận , cốt lõi của vấn đề là việc sử dụng ngẫu nhiênrm -rf. Người dùng nên nhận ra toàn bộ trách nhiệm khi họ sử dụng các lệnh có thể gây hại cho hệ thống của họ. Có vô số ví dụ trên AskUbfox và các trang StackExchange khác nơi người dùng xóa hoặc thay đổi quyền sở hữu các thành phần hệ thống cốt lõi. Từ quan điểm của người dùng mới, có thể hiểu rằng người dùng mới không quen với mức độ thiệt hại có thể gây ra, mặc dù điều đó không giải phóng trách nhiệm của người dùng mới. Không có lý do nào để lên án lệnh hoặc người dùng, nhưng cách đúng đắn là phát triển thói quen xác minh các bước của riêng bạn trong dòng lệnh hoặc ở nơi khác. Điều này không chỉ áp dụng cho Ubuntu mà còn nói chung là điện toán, đi kèm với kinh nghiệm và thường thông qua việc thực sự mắc lỗi và phá vỡ hệ thống của bạn chỉ để sửa chữa nó và phá vỡ lại.


9
Bạn cũng sẽ muốn xem lại lỗi đã xảy ra như thế nào ngay từ đầu, bởi vì viết ra sudotheo rm -rfsau là tên thư mục ngoài ý muốn theo sau *không phải là điều mà bộ não của bạn cho phép xảy ra. Hành động khắc phục / thay đổi hành vi có thể được yêu cầu để tránh các vấn đề tồi tệ hơn nhiều trong tương lai.
Các cuộc đua nhẹ nhàng trong quỹ đạo

1
@LightnessRacesinOrbit Tôi nghĩ rằng bình luận này nên được đặt dưới câu hỏi của OP, nhưng tôi đồng ý - người dùng phải biết họ gõ gì và tránh làm gì rm -rfmà không kiểm tra và đảm bảo rằng họ loại bỏ điều đúng trước.
Sergiy Kolodyazhnyy

1
Vâng, tôi nghĩ rằng nó nên được thêm vào câu trả lời là tại sao tôi lại đặt nó ở đây :) Nhận xét dưới câu hỏi nên được đề xuất làm rõ cho câu hỏi
Cuộc đua nhẹ nhàng trong quỹ đạo

1
@KasperThystrupKarstensen Đồng ý. Thường thì bạn cũng có thể thấy echođược chuẩn bị trước cho một lệnh bạn định chạy bằng ký tự đại diện hoặc các lệnh phá hoại khác. Ví dụ: echo rm /tmp/*loại sự vật
Sergiy Kolodyazhnyy

1
Đó là vị trí, cảm ơn. Tất nhiên không phải là tôi chưa bao giờ mắc lỗi như vậy, nhưng tôi đã ngay lập tức xem xét lỗi và điều chỉnh các thực hành của mình, sao cho tôi không bao giờ mắc lại :) Đó là một kinh nghiệm định dạng miễn là bạn học được từ nó.
Các cuộc đua nhẹ nhàng trong quỹ đạo
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.