У меня есть сервер apt-cacher-ng в сети LAN, и мне было интересно, как я мог «заставить» pbuilder
использовать его (для ускорения сборки пакетов).
Типичная настройка клиентской части кэша выглядит примерно так:
В /etc/apt/apt.conf
:
Acquire::http { Proxy "http://servername:3142"; };
Например:
$ sudo pbuilder --login --save-after-login
# echo 'Acquire::http { Proxy "http://servername:3142"; };' > /etc/apt/apt.conf.d/02proxy
# exit
$
В качестве альтернативы вы можете использовать опцию --execute
:
$ sudo pbuilder --execute --save-after-exec -- /tmp/setup-apt-proxy.sh
... где /tmp/setup-apt-proxy.sh
содержит команды для создания /etc/apt/apt.conf.d/02proxy
.
Я использовал аргумент - mirror , например:
sudo pbuilder create --debootstrapopts --variant=buildd --configfile ~/.pbuilderrc --mirror http://localhost:3142/us.archive.ubuntu.com/ubuntu/ main restricted universe multiverse
для проверки попаданий в кеширующий прокси:
$ tail -f /var/log/apt-cacher/access.log
Thu Dec 19 19:16:33 2013|26140|::ffff:127.0.0.1|HIT|1272844|us.archive.ubuntu.com_ubuntu_dists_precise_main_binary-amd64_Packages.bz2
Thu Dec 19 19:18:45 2013|26647|::ffff:127.0.0.1|HIT|49563|us.archive.ubuntu.com_ubuntu_dists_precise_Release
Thu Dec 19 19:18:45 2013|26663|::ffff:127.0.0.1|HIT|198|us.archive.ubuntu.com_ubuntu_dists_precise_Release.gpg
Thu Dec 19 19:18:46 2013|26707|::ffff:127.0.0.1|HIT|1272844|us.archive.ubuntu.com_ubuntu_dists_precise_main_binary-amd64_Packages.bz2
Если вы установите export http_proxy=http://your-proxy:8080/
в ~/.pbuilderrc
, он будет использовать этот прокси для загрузки пакетов.
Я только что попробовал это на моей установке, и это сработало. Насколько я могу судить по интернет-трафику, мне не нужно ничего загружать во время работы pbuilder create
.
Приятно то, что этот способ также работает при создании архива, а не только после его создания и последующего изменения.