Існує альтернативний підхід командного рядка до отримання історії встановлення.
Менеджер пакетів , 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
Це можна адаптувати або розширити, щоб отримати установки в діапазоні дат.
apt-get remove
:sed 's/ ([^)]*)//g' | sed 's/,//g')
.