Я нашел это здесь в Интернете. Он создает историю dpkg из файла журнала dpkg.
Это выглядит очень просто.
function apt-history(){
case "$1" in
install)
cat /var/log/dpkg.log | grep 'install '
;;
upgrade|remove)
cat /var/log/dpkg.log | grep $1
;;
rollback)
cat /var/log/dpkg.log | grep upgrade | \
grep "$2" -A10000000 | \
grep "$3" -B10000000 | \
awk '{print $4"="$5}'
;;
*)
cat /var/log/dpkg.log
;;
esac
}
Источник
EDIT
] Я попробовал этот скрипт на сервере Ubuntu 8.10, и он работает очень хорошо. Не могли бы вы предоставить некоторую информацию, как вы решили свою проблему?
Если вы хотите создать резервную копию, чтобы восстановить конфигурацию системы после переустановки. Лучший способ - создать список установленных программ.
apt-clone предоставляет эту функцию. Он создает список установленных пакетов, которые могут быть использованы для создания такой же установки на другой машине или новой установки.
sudo apt-get install apt-clone
sudo apt-clone clone foo #This creates a file foo.apt-clone.tar.gz.
Скопируйте ее на машину назначения и запустите
sudo apt-clone restore foo.apt-clone.tar.gz #this tells apt to install the packages n the list.
Не правда.
Как вы сказали, вы получите все исполняемые файлы и большинство библиотек, но вы пропустите все файлы конфигурации, среди прочего, так что большинство приложения не будут запускаться.
Если я, когда думаю, что-то вроде этого, я предпочел бы резервировать конфигурацию и переустанавливать приложения. Большинство файлов системной конфигурации находятся в каталоге /etc (пользовательские файлы конфигурации можно найти в $HOME, в скрытых файлах и каталогах (.file).
Сейчас я готов переместить свою установку Ubuntu 16.04 на новый ноутбук. Это сценарий, который я буду использовать для резервного копирования:
#!/bin/bash
# NAME: full-backup
# PATH: /usr/local/bin
# DESC: Full system backup - must call with SUDO
# DATE: July 16, 2017. Modified Oct 17, 2017.
apt autoclean # reduces size of /var/cache/apt/archives
cd /tmp # tar must be created in directory not backed up.
time tar -cvpzf backup.tar.gz \
--exclude=/backup.tar.gz \
--exclude=/proc \
--exclude=/tmp \
--exclude=/mnt \
--exclude=/dev \
--exclude=/sys \
--exclude=/media \
--exclude=/usr/src/linux-headers* \
--exclude=/home/rick/.cache \
--exclude=/var/log \
--exclude=/var/run/ \
--exclude=/run
Некоторые из моих сценариев должны быть изменены после восстановления. Например, у меня есть сценарий оболочки для dd, который гарантирует, что данные не записываются в /dev/sda, /dev/sdb или /dev/sdc. Новый ноутбук имеет PCIe NVMe SSD, где соглашение об именах linux /dev/nvme0n1. После восстановления я сделаю этот сценарий оболочки неисполняемым, чтобы он не запускался, и вместо него запускается исходный dd.
Другим примером является сценарий, который сбрасывает сетевой адаптер при возобновлении с приостановки. У нового ноутбука, скорее всего, будет другой сетевой драйвер. После восстановления я прокомментирую загрузку старых имен драйверов и дайте машине приостановить / возобновить без изменений.
Заголовки Linux, которые необходимы DKMS для компиляции пользовательских драйверов, не включены в резервную копию. Я, скорее всего, удалю все DKMS с нового ноутбука, а затем установлю его позже, если потребуется специальный драйвер.
Наконец, перед восстановлением таблицы дисков /etc/fstab необходимо сохранить и затем скопировать обратно после восстановления.
Размер сжатого файла резервной копии составляет 6 ГБ, включая все /home файлы, которые включают не только сценарии, данные и документы, но также файлы конфигурации для всех приложений.
Если вы хотите создать резервную копию, чтобы восстановить конфигурацию системы после переустановки. Лучший способ - создать список установленных программ.
apt-clone предоставляет эту функцию. Он создает список установленных пакетов, которые могут быть использованы для создания такой же установки на другой машине или новой установки.
sudo apt-get install apt-clone
sudo apt-clone clone foo #This creates a file foo.apt-clone.tar.gz.
Скопируйте ее на машину назначения и запустите
sudo apt-clone restore foo.apt-clone.tar.gz #this tells apt to install the packages n the list.
Не правда.
Как вы сказали, вы получите все исполняемые файлы и большинство библиотек, но вы пропустите все файлы конфигурации, среди прочего, так что большинство приложения не будут запускаться.
Если я, когда думаю, что-то вроде этого, я предпочел бы резервировать конфигурацию и переустанавливать приложения. Большинство файлов системной конфигурации находятся в каталоге /etc (пользовательские файлы конфигурации можно найти в $HOME, в скрытых файлах и каталогах (.file).
Сейчас я готов переместить свою установку Ubuntu 16.04 на новый ноутбук. Это сценарий, который я буду использовать для резервного копирования:
#!/bin/bash
# NAME: full-backup
# PATH: /usr/local/bin
# DESC: Full system backup - must call with SUDO
# DATE: July 16, 2017. Modified Oct 17, 2017.
apt autoclean # reduces size of /var/cache/apt/archives
cd /tmp # tar must be created in directory not backed up.
time tar -cvpzf backup.tar.gz \
--exclude=/backup.tar.gz \
--exclude=/proc \
--exclude=/tmp \
--exclude=/mnt \
--exclude=/dev \
--exclude=/sys \
--exclude=/media \
--exclude=/usr/src/linux-headers* \
--exclude=/home/rick/.cache \
--exclude=/var/log \
--exclude=/var/run/ \
--exclude=/run
Некоторые из моих сценариев должны быть изменены после восстановления. Например, у меня есть сценарий оболочки для dd, который гарантирует, что данные не записываются в /dev/sda, /dev/sdb или /dev/sdc. Новый ноутбук имеет PCIe NVMe SSD, где соглашение об именах linux /dev/nvme0n1. После восстановления я сделаю этот сценарий оболочки неисполняемым, чтобы он не запускался, и вместо него запускается исходный dd.
Другим примером является сценарий, который сбрасывает сетевой адаптер при возобновлении с приостановки. У нового ноутбука, скорее всего, будет другой сетевой драйвер. После восстановления я прокомментирую загрузку старых имен драйверов и дайте машине приостановить / возобновить без изменений.
Заголовки Linux, которые необходимы DKMS для компиляции пользовательских драйверов, не включены в резервную копию. Я, скорее всего, удалю все DKMS с нового ноутбука, а затем установлю его позже, если потребуется специальный драйвер.
Наконец, перед восстановлением таблицы дисков /etc/fstab необходимо сохранить и затем скопировать обратно после восстановления.
Размер сжатого файла резервной копии составляет 6 ГБ, включая все /home файлы, которые включают не только сценарии, данные и документы, но также файлы конфигурации для всех приложений.