Làm cách nào để xóa tất cả các bản cập nhật được cài đặt sau một ngày cụ thể?


12

Tôi đã cho phép trình quản lý cập nhật cài đặt 200 Mib các bản cập nhật và tôi nghĩ rằng các bản cập nhật này khiến trình điều khiển đồ họa của tôi gặp sự cố. Vì vậy, tôi cần một cách để loại bỏ các bản cập nhật đã được cài đặt kể từ ngày 30 tháng 12, chẳng hạn (hoặc bất kỳ ngày nào khác). Nếu tôi phải gỡ bỏ chúng theo cách thủ công (trong trường hợp gỡ cài đặt từng cái một), bạn vui lòng cho tôi hướng dẫn cách thực hiện.

Câu trả lời:


8

Có một cách tiếp cận, dòng lệnh để lấy lịch sử cài đặt.

Trình quản lý gói aptdường như đăng nhập mọi thứ trong /var/log/apt/history.log/var/log/apt/term.log, bao gồm tách mọi thứ bằng dấu dữ liệu. Cả hai đều chứa thông tin tương tự, có thể sử dụng nhưngterm.log cả hai đều dài dòng hơn và không cho biết rõ ràng những gì đã bắt đầu hoạt động.

Nhật ký lịch sử

/var/log/apt/history.loglưu trữ một bản tóm tắt súc tích của mỗi lần aptchạy. Đây là một đoạn của tôi để cài đặt thủ công:

Start-Date: 2014-08-22  17:17:52
Commandline: apt-get install nautilus-dropbox
Install: nautilus-dropbox:amd64 (1.6.1-1), python-gpgme:amd64 (0.3-0ubuntu3, automatic)
End-Date: 2014-08-22  17:19:13

Các Commandline:lĩnh vực chỉ ra những gì gây ra thời gian, và trong trường hợp cài đặt được thực hiện bởi người quản lý cập nhật nó sẽ giống như thế:

Commandline: aptdaemon role='role-commit-packages' sender=':1.131'

... Và có danh sách các gói của bạn, được sắp xếp theo ngày, phương thức và hành động (cài đặt / nâng cấp / xóa). Lưu ý rằng nếu bạn muốn chuyển các gói này trở lại apt-get remove ...:

  • Như đã đề cập , điều này loại bỏ hoàn toàn các gói hơn là hoàn nguyên chúng. Thông tin trong nhật ký chắc chắn có thể được sử dụng để xem xét các gói nâng cấp, mặc dù việc khôi phục chúng là một vấn đề khác.
  • Bạn sẽ cần phải loại bỏ các dấu ngoặc đơn, nội dung của họ và dấu phẩy tách khỏi danh sách thông qua phương pháp ưa thích của bạn thao tác văn bản (ví dụ sed, vimvv). Vì vậy, nếu tôi muốn xóa các gói trong đoạn trích ở trên, tôi có thể sử dụng dòng tương đối trực tiếp:

    sudo apt-get remove nautilus-dropbox:amd64 python-gpgme:amd64
    

Nhật ký thiết bị đầu cuối

Nói chung /var/log/apt/term.loglà ít cấu trúc thuận tiện hơn, nhưng để hoàn thiện, bạn có thể nhận được thông tin tương tự. Đầu ra của thiết bị đầu cuối được phân định bằng dấu thời gian một lần nữa và cài đặt gói có thể được lấy từ các dòng có dạng sau:

Selecting previously unselected package nautilus-dropbox.

Sau đây là một cách in danh sách các gói đã cài đặt đến thiết bị đầu cuối cho toàn bộ nhật ký:

$ awk '/^Selecting/ {gsub(/\./,""); print $5}' /var/log/apt/term.log

Điều này có thể được điều chỉnh hoặc mở rộng để có được cài đặt trong phạm vi ngày.


1
Nếu điều này có thể làm cho cuộc sống của ai đó dễ dàng hơn, thì đây là đoạn trích sed mà tôi đã sử dụng để xóa parens và dấu phẩy khỏi gói /var/log/apt/history.log để tôi có thể đưa chúng vào apt-get remove: sed 's/ ([^)]*)//g' | sed 's/,//g').
Apterx

4

Lưu ý: Không giống như Windows, việc xóa bản cập nhật trong Ubuntu thường sẽ gỡ cài đặt gói / chương trình đó và sẽ không đơn giản hoàn nguyên (hoặc hạ cấp) nó về phiên bản trước.

Bạn có thể mở Trung tâm phần mềm Ubuntu và nhấp vào lịch sử

nhập mô tả hình ảnh ở đây

Khi bạn thực hiện điều đó, nhấp vào bản cập nhật và nó sẽ hiển thị cho bạn tất cả các bản cập nhật được cài đặt trên hệ thống của bạn. Khi bạn tìm ra các bản cập nhật mà bạn cần xóa, bạn cần thực hiện thủ công.

nhập mô tả hình ảnh ở đây

Để xóa, bạn có thể sử dụng Trình quản lý gói Synaptic. Nếu bạn chưa cài đặt, bạn có thể cài đặt nó từ


cảm ơn. Nó có liên quan đến bất kỳ lệnh nào trên terminal để làm như vậy không?
sáng tạ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.