как не качать deb-пакеты дважды
когда вышел Ubunty 9.04 Jaunty Jackalope, я немедленно скачал torrent официального DVD и положил в папочку. А памятуя прошлые обновления, когда новые версии пакетов тянулись с официальных серверов в час по чайной ложке, решил в этот раз использовать пакеты с диска. Но мне вовсе не хотелось вначале записывать образ на болванку, а потом слушать урчание привода, который всяко медленнее винчестера. Казалось бы, что может быть проще — примонтировать iso в файловую систему и указать инсталлятору на неё. Но не тут-то было!
во время предыдущего обновления я безуспешно пытался проделать эту операцию. Однако в этот раз я решил пойти до конца. Вначале создал каталог /media/ubuntu
. Работать с iso-образами я предпочитаю через гуй простенькой программки gmount-iso, но того же можно добиться и через /etc/fstab
:
/media/l-large/ubuntu-9.04-dvd-i386.iso /media/ubuntu udf,iso9660 noauto,loop
вручную вставить диск в инсталлятор невозможно, о чём предупреждает man apt-cdrom
, поэтому положимся на него:
sudo apt-cdrom -d /media/ubuntu add
он зачем-то отмонтирует диск и попросит «вставить» его снова, но это не создаёт особых трудностей : )
после этих операций в /etc/apt/sources.list
появилась запись:
deb cdrom:[Ubuntu 9.04 _Jaunty Jackalope_ - Release i386 (20090421.3)]/ jaunty main restricted
тут я обрадовался и запустил инсталлятор. Тот пошуршал байтами и попросил меня вставить диск в привод /cdrom/
. «Ага!», — сказали мужики и задумались. Именно в этом месте я забил в прошлый раз. Но сейчас на глаза мне попалась строчка из мана apt-cdrom: «Configuration Item: Acquire::cdrom::mount.» Что-то похоже я уже видел в настройках apt. Например, в /etc/apt/apt.conf.d/10periodic
:
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::AutocleanInterval "0";
APT::Periodic::Unattended-Upgrade "1";
Дальше было просто. Я создал файл /etc/apt/apt.conf.d/35cdrom
с одной строчкой:
Acquire::cdrom::mount "/media/ubuntu/";
после этого пакеты ставились и продолжают ставиться большей частью с диска: «Need to get 929kB/5920kB of archives.» Впрочем, локально того же эффекта можно было добиться, указав эту опцию в командной строке к dist-upgrade:
sudo apt-get dist-upgrade -o Acquire::cdrom::mount="/media/ubuntu/"
итак, кратко то же самое (от рута):
# mkdir /media/ubuntu
# echo "/media/l-large/ubuntu-9.04-dvd-i386.iso /media/ubuntu udf,iso9660 noauto,loop" >> /etc/fstab
# sudo apt-cdrom -d /media/ubuntu add
# echo 'Acquire::cdrom::mount "/media/ubuntu/";\n' >> /etc/apt/apt.conf.d/35cdrom
ps: собравшись опубликовать это на хабре, обнаружил там быстрый рецепт для обновления с сиди:
/cdmountpoint/cdromupgrade