Чтобы получить список установленных пакетов:
dpkg --get-selections '*' > /tmp/selections.txt
Повторно -загрузить установленные пакеты на машину с доступом в Интернет:
apt-get clean
awk '$2=="hold" || $2 == "install" {print $1}' /tmp/selections.txt |
xargs -r apt-get -d -y reinstall
Это загрузит все установленные пакеты в /var/cache/apt/archives/
. xargs
используется здесь в случае, если список установленных пакетов слишком велик, чтобы уместиться в одной командной строке.
Примечание. :запуск apt-get clean
не является обязательным. Он удалит все файлы .deb
, которые уже были в /var/cache/apt/archives
. Это делается только для того, чтобы свести к минимуму количество пакетов, которые необходимо будет скопировать на не -интернет-компьютер (, например. старые версии, удаленные пакеты и т. д., которые все еще присутствуют в этом каталоге ). Минус в том, что все установленные пакеты будут загружены заново, даже если они уже были в директории архивов.
Скопируйте /tmp/selections.txt
в /tmp/
на машине, не подключенной к Интернету -.
Скопируйте все в /var/cache/apt/archives
в тот же каталог на машине, не входящей в -Интернет. Метод не имеет значения -scp, rsync, USB-накопитель, внешний -жесткий диск, что угодно. Важно то, что они копируются в /var/cache/apt/archives
на целевой машине.
на цели (без -интернет )запуск машины:
dpkg --set-selections < /tmp/selections.txt
apt-get dist-upgrade
Если вы хотите, чтобы apt-get dist-upgrade
удалял пакеты, которые ранее были установлены на целевой машине, но НЕ установлены на другой машине, запуститеdpkg --clear-selections
перед запуском dpkg --set-selections
.
Дополнительную информацию об опциях --get-selections
, --set-selections
и --clear-selections
см. на справочной странице dpkg
.
Вероятно, пользователь соответствует более чем одному правилу. В этом случае выигрывает последнее подходящее правило. Итак, если вы двигаетесь:
%wheel ALL=(ALL) NOPASSWD: ALL
в конец файла, должно работать.