Мой скриптик - прошу любить и жаловать - может кому пригодится
. Я им обновляю оффлайновый ноут.
Суть работы: запускаем скрипт из консоли. Просит ввести цифру от 0..9. На компе подключенном к инету 1..9, 0 - для оффлайнового. Цифра означает насколько свежие пакеты готовить к перемещению (т.е. если вы на сетевом компе дня три обновлялись, а на ноут ничего не переносили имеет смысл ввести 3 или 4, скрипт захватит обновления за 3-4 дня; пакеты берутся из кеша поиском по дате изменения за последние N дней). В папке /tmp появляются пара фалов pack_sync.tar.gz и pack_sync.tar. Мы их переносим в папку /tmp оффлайнового компа (например флешкой). Там опять запускаем скрипт. Вводим 0, он закидывает файлы в кеш системы и из него обновляет систему. Если каких-то файлов не хватает (например, на оффлайновом компе другие видеодрова, естественно, их не будет в кеше у инет-компа, либо есть еще какие-нить дополнительные программы) в папке создается /tmp/pack_sync.get не нулевой длины. Мы этот файлик перед следующим запуском закидываем в /tmp инет компа и скрипт докачивает их из инета сам.
ПС.
1) источники приложений (репозитории) для компов должны быть одинаковыми - т.е. если на одном выбран сервер российиской федерации, то и на другом тоже... секции (universe,multiverse,restricted,main) и обновления тоже.
2) чтобы установить новый софт на ноут: выбираем нужные пакеты на инет-компе и ставим галочку только скачать. В итоге, файл попадает в кеш, и когда мы запускаем скриптик, он вместе с обновлениями запаковывается pack_sync.tar.
#!/bin/bash
echo
echo
echo
echo "Управление кэшом пакетов на локальном/сетевом компе."
echo "Для компьютера источника:"
echo " создается файл /tmp/pack_sync.tar.gz из /var/lib/apt/lists"
echo " создается файл /tmp/pack_sync.tar из /var/cache/apt/archives/*.deb"
echo " докачиваются и допаковываются файлы из списка /tmp/pack_sync.get в /tmp/pack_sync.tar"
echo "Для компьютера приемника:"
echo " производятся обратные действия"
echo
echo "1..9 - Сетевой комп (источник)"
echo "0 - Локальный комп (приемник)"
echo "иначе - выход"
read ask
if [[ "$ask" == [1-9] ]]; then
tar -cvzf /tmp/pack_sync.tar.gz /var/lib/apt/lists
find /var/cache/apt/archives -ctime -$ask -name "*.deb" | tar -cvf /tmp/pack_sync.tar -T -
if [[ -f /tmp/pack_sync.get ]]; then
LIST=`cat /tmp/pack_sync.get`
sudo apt-get -y -d --reinstall install $LIST
for F in $LIST; do
tar -rvf /tmp/pack_sync.tar /var/cache/apt/archives/$F*
done
fi
fi
if [[ $ask == "0" ]]; then
sudo tar -C / -xzvf /tmp/pack_sync.tar.gz
sudo tar -C / -xvf /tmp/pack_sync.tar
sudo apt-get -y -m --no-download --allow-unauthenticated dist-upgrade
LC_ALL="C" apt-get -s -qq -d dist-upgrade | grep -o -e '^Inst [^ ]*' | cut -c 6- > /tmp/pack_sync.get
fi
Блин какието на сайте спойлеры ущербные.