Як я можу видалити всі оновлення, встановлені після конкретної дати?


12

Я дозволив менеджеру оновлень встановити 200 Мбіт оновлень, і я думаю, що ці оновлення запускають мій графічний драйвер. Отже, мені потрібен спосіб видалити оновлення, встановлені, наприклад, 30 травня 12 року (або будь-яку іншу дату). Якщо мені доведеться їх видалити вручну (у разі видалення їх по черзі), просимо дати мені вказівки, як це зробити.

Відповіді:


8

Існує альтернативний підхід командного рядка до отримання історії встановлення.

Менеджер пакетів , aptздається, протоколювати всі в /var/log/apt/history.logі /var/log/apt/term.log, в той числі відділення все від тимчасової мітки. Обидва містять подібну, корисну інформацію, але term.logє більш детальною і не вказують прямо, що ініціювало операцію.

Журнал історії

/var/log/apt/history.logзберігає стислий підсумок кожного aptпробігу. Ось мій фрагмент для ручної установки:

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

Commandline:Поле вказує на те, що викликало запуск, і в разі установок , зроблених менеджером оновлень він повинен виглядати приблизно так:

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

... і там є ваш список пакунків, відсортований за датою, способом та дією (встановити / оновити / видалити). Зауважте, що якщо ви хочете передати ці пакунки назад apt-get remove ...:

  • Як уже згадувалося , це повністю видаляє пакети, а не повертає їх. Інформація в журналах, безумовно, може бути використана для перегляду оновлених пакетів, хоча повернення їх - інша справа.
  • Вам потрібно буде викреслити круглі дужки, їх вміст і роздільник комами зі списку за допомогою вподобаного способу маніпулювання текстом (наприклад sed, vimтощо). Отже, якщо я хотів видалити пакунки з фрагмента, наведеного вище, я можу використати рядок відносно безпосередньо:

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

Журнал терміналів

Як правило /var/log/apt/term.log, менш зручно структуровано, але для повноти ви можете отримати ту саму інформацію. Вихід терміналу знову обмежується часовими позначками, а установки пакетів можна отримати з рядків такої форми:

Selecting previously unselected package nautilus-dropbox.

Нижче наведено один із способів друку списку встановлених пакетів до терміналу для всього журналу:

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

Це можна адаптувати або розширити, щоб отримати установки в діапазоні дат.


1
Якщо це може зробити життя людини простіше, ось СЕД фрагмента коду я використовував , щоб видалити дужки і коми з /var/log/apt/history.log перерахованого пакета , так що я міг би годувати їх apt-get remove: sed 's/ ([^)]*)//g' | sed 's/,//g').
Apteryx

4

Примітка. На відміну від Windows, видалення оновлення в Ubuntu зазвичай видаляє цей пакет / програму, а не просто поверне його (або поверне його до попередньої версії).

Ви можете відкрити Центр програмного забезпечення Ubuntu та натиснути історію

введіть тут опис зображення

Після цього натисніть на оновлення, і вони покажуть усі оновлення, встановлені у вашій системі. Як тільки ви дізнаєтесь оновлення, які вам потрібно видалити, це потрібно зробити вручну.

введіть тут опис зображення

Для видалення можна скористатися Synaptic Package Manager. Якщо у вас його не встановлено, ви можете встановити його


дякує. Чи передбачає це будь-які команди на терміналі для цього?
творчі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.