Ранее, а если точнее давным давно, я уже разбирал работу приложения apt-cacher но ориентировался на дистрибутив Ubuntu 12.04.5 Server amd64 и в целом меня все устраивало, но все меняется выходят новые долговременные релизы, к примеру Ubuntu Trusty. И как показывает практика конфигурационные файлы имеют отличия да и новые глюки также присутствуют.
Ниже ссылки на заметки применительно к Ubuntu Precise
- Я уже разбирал как использовать apt-cacher
- Настройки для клиента в файле /etc/apt/sources.list
- Отчеты:
А сейчас я пройдусь по всем шагам установки apt-cacher на Ubuntu 14.04.4 Server amd64
ekzorchik@srv-host:~$ uname -a && lsb_release -a
Linux srv-host 3.19.0-25-generic #26~14.04.1-Ubuntu SMP Fri Jul 24 21:16:20 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.4 LTS
Release: 14.04
Codename: trusty
ekzorchik@srv-host:~$ sudo tasksel install lamp-server
New password for the MySQL “root” user: 712mbddr@
Repeat password for the MySQL “root” user: 712mbddr@
ekzorchik@srv-host:~$ sudo mkdir /cache
ekzorchik@srv-host:~$ sudo chown -R www-data:www-data /cache/
ekzorchik@srv-host:~$ apt-cache show apt-cacher | grep Version
Version: 1.7.8
ekzorchik@srv-host:~$ sudo apt-get install apt-cacher -y
Daemon mode for apt-cacher: daemon
ekzorchik@srv-host:~$ sudo cp /etc/apt-cacher/apt-cacher.conf /etc/apt-cacher/apt-cacher.conf.backup
ekzorchik@srv-host:~$ sudo nano /etc/apt-cacher/apt-cacher.conf
cache_dir = /cache
log_dir = /var/log/apt-cacher
daemon_port = 3142
group = www-data
user = www-data
interface = eth0
limit = 0
path_map = ubuntu archive.ubuntu.com/ubuntu; ubuntu-updates archive.ubuntu.com/ubuntu; ubuntu-security security.ubuntu.com/ubuntu;
allowed_hosts = *
distinct_namespaces = 1
generate_reports = 1
ekzorchik@srv-host:~$ sudo /etc/init.d/apt-cacher status
* apt-cacher is running
ekzorchik@srv-host:~$ sudo /etc/init.d/apt-cacher restart
может так случиться что-то неправильно сделано в конфигурационном файле и после старта службы на консоль выводится следующее сообщение
Invalid line in main configuration file /etc/apt-cacher/apt-cacher.conf: . Ignoring line
apt-cacher.
Только вот как понять что нет так, а просто следует внимательно проверить каждый параметр скорее всего что-то лишнее настроили.
Запускаю сервис apt-cacher:
ekzorchik@srv-host:~$ sudo /etc/init.d/apt-cacher restart
ekzorchik@srv-host:~$ sudo /etc/init.d/apt-cacher status
* apt-cacher is running
ekzorchik@srv-host:~$ sudo netstat -tulpn | grep :3142
tcp6 0 0 :::3142 :::* LISTEN 7114/perl
Работает.
Теперь настрою клиента под управление Ubuntu 12.04.5 Server к данному кеширующему серверу пакетов:
ekzorchik@srv-mon:~$ uname -a && lsb_release -a
Linux srv-mon 3.13.0-32-generic #57~precise1-Ubuntu SMP Tue Jul 15 03:51:20 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 12.04.5 LTS
Release: 12.04
Codename: precise
ekzorchik@srv-mon:~$ sudo nano /etc/apt/sources.list
deb http://192.168.1.174:3142/ubuntu precise main restricted
deb http://192.168.1.174:3142/ubuntu precise universe
ekzorchik@srv-mon:~$ sudo apt-get update
Get:1 http://192.168.1.174 precise Release.gpg [198 B]
Get:2 http://192.168.1.174 precise Release [49.6 kB]
Get:3 http://192.168.1.174 precise/main amd64 Packages [1273 kB]
Get:4 http://192.168.1.174 precise/restricted amd64 Packages [8452 B]
Get:5 http://192.168.1.174 precise/universe amd64 Packages [4786 kB]
Get:6 http://192.168.1.174 precise/main i386 Packages [1274 kB]
Get:7 http://192.168.1.174 precise/restricted i386 Packages [8431 B]
Get:8 http://192.168.1.174 precise/universe i386 Packages [4796 kB]
Get:9 http://192.168.1.174 precise/main TranslationIndex [3706 B]
Get:10 http://192.168.1.174 precise/restricted TranslationIndex [2596 B]
Get:11 http://192.168.1.174 precise/universe TranslationIndex [2922 B]
Get:12 http://192.168.1.174 precise/main Translation-en [726 kB]
Get:13 http://192.168.1.174 precise/restricted Translation-en [2395 B]
Get:14 http://192.168.1.174 precise/universe Translation-en [3341 kB]
Fetched 16.3 MB in 20s (799 kB/s)
Reading package lists… Done
Устанавливаю какие-либо пакеты, к примеру:
ekzorchik@srv-mon:~$ sudo apt-get install manpages-ru -y
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following NEW packages will be installed:
manpages-ru
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 586 kB of archives.
After this operation, 1159 kB of additional disk space will be used.
Get:1 http://192.168.1.174/ubuntu/ precise/universe manpages-ru all 0.98-4 [586 kB]
вот видно, что пакет скачивается с сервера пакетов, что мне и требовалось.
А теперь подключу к серверу пакетов еще одну станцию, только под управлением Ubuntu 14.04.4 Server amd64
ekzorchik@srv-phone:~$ uname -a && lsb_release -a
Linux srv-phone 3.19.0-25-generic #26~14.04.1-Ubuntu SMP Fri Jul 24 21:16:20 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.4 LTS
Release: 14.04
Codename: trusty
ekzorchik@srv-phone:~$ sudo rm /etc/apt/sources.list
ekzorchik@srv-phone:~$ sudo nano /etc/apt/sources.list
deb http://192.168.1.174:3142/ubuntu trusty main restricted
deb http://192.168.1.174:3142/ubuntu trusty universe
ekzorchik@srv-phone:~$ sudo apt-get update && sudo apt-get upgrade -y
ekzorchik@srv-phone:~$ sudo tasksel install lamp-server
а после на сервере пакетов генерируем отчет в ручную:
ekzorchik@srv-host:~$ sudo /usr/share/apt-cacher/apt-cacher-report.pl
Проверяем статистику
http://192.168.1.174:3142/report
ekzorchik@srv-host:~$ du -sh /cache/
50M /cache/
она соответствует размеру каталога
ekzorchik@srv-host:~$ du -sh /cache/
50M /cache/
ekzorchik@srv-host:~$ ls /cache/packages/
ubuntu
ubuntu_dists_precise_Release
ubuntu_dists_precise_Release.gpg
ubuntu_dists_precise_main_binary-amd64_Packages.bz2
ubuntu_dists_precise_main_binary-i386_Packages.bz2
ubuntu_dists_precise_main_i18n_Index
ubuntu_dists_precise_main_i18n_Translation-en.bz2
ubuntu_dists_precise_restricted_binary-amd64_Packages.bz2
ubuntu_dists_precise_restricted_binary-i386_Packages.bz2
ubuntu_dists_precise_restricted_i18n_Index
ubuntu_dists_precise_restricted_i18n_Translation-en.bz2
ubuntu_dists_precise_universe_binary-amd64_Packages.bz2
ubuntu_dists_precise_universe_binary-i386_Packages.bz2
ubuntu_dists_precise_universe_i18n_Index
ubuntu_dists_precise_universe_i18n_Translation-en.bz2
ubuntu_dists_trusty_Release
ubuntu_dists_trusty_Release.gpg
ubuntu_dists_trusty_main_binary-amd64_Packages.bz2
ubuntu_dists_trusty_main_binary-i386_Packages.bz2
ubuntu_dists_trusty_main_i18n_Translation-en.bz2
ubuntu_dists_trusty_restricted_binary-amd64_Packages.bz2
ubuntu_dists_trusty_restricted_binary-i386_Packages.bz2
ekzorchik@srv-host:~$ ls /cache/packages/ubuntu
apache2-bin_2.4.7-1ubuntu4_amd64.deb
apache2-data_2.4.7-1ubuntu4_all.deb
apache2-mpm-prefork_2.4.7-1ubuntu4_amd64.deb
apache2_2.4.7-1ubuntu4_amd64.deb
libaio1_0.3.109-4_amd64.deb
и т.д.
Видно, что все файлы обоих дистрибутивов присутствуют на сервере пакетов, как и задумывалось
Было:
ekzorchik@srv-host:~$ du -sh /cache/
50M /cache/
Задача: добавить на сервере пакетов пакеты установленные на самой системе:
ekzorchik@srv-host:~$ sudo /usr/share/apt-cacher/apt-cacher-import.pl /var/cache/apt/archives/
Undefined subroutine &main::inet_aton called at /usr/share/apt-cacher/lib/apt-cacher.pl line 245.
ошибка и как ее исправить? Если поправлю, что в каталоге
ekzorchik@srv-host:~$ ls /cache/packages/
будут добавленные пакеты с основной системы это очень нужно.
Решение данной ошибки есть подгрузки модуля Socket:
ekzorchik@srv-host:~$ sudo nano +55 /usr/share/apt-cacher/apt-cacher-import.pl
use Socket;
После запускаю импорт установленных на системе пакетов в хранилище пакетов (т. е. В каталог /cache)
ekzorchik@srv-host:~$ sudo /usr/share/apt-cacher/apt-cacher-import.pl -R -r /var/cache/apt/archives/
Done.
182 files imported
Задача: добавить на сервер пакетов пакеты из iso образа
Копирую на сервер пакетов дистрибутив:
ekzorchik@navy:~$ scp ISO/ubuntu-12.04.5-server-amd64.iso ekzorchik@192.168.1.174:/home/ekzorchik
Монтирую на сервере пакетов через обратную петлю дистрибутив:
ekzorchik@srv-host:~$ sudo mount -o loop /home/ekzorchik/ubuntu-12.04.5-server-amd64.iso /media/cdrom
mount: block device /home/ekzorchik/ubuntu-12.04.5-server-amd64.iso is write-protected, mounting read-only
Запускаю импорт с примонтированного для чтения каталога:
ekzorchik@srv-host:~$ sudo /usr/share/apt-cacher/apt-cacher-import.pl -R -r /media/cdrom/
Undefined subroutine &main::inet_aton called at /usr/share/apt-cacher/lib/apt-cacher.pl line 245
-R Recurse into subdirectories below the import directory.
-r Do not move the source files. Instead, create hardlinks or real
copies.
Если до этого не делали правку /usr/share/apt-cacher/lib/apt-cacher.pl, то правим как я указал выше, а после запускаем импорт пакетов с подмонтированного образа:
ekzorchik@srv-host:~$ sudo /usr/share/apt-cacher/apt-cacher-import.pl -R -r /media/cdrom/
Done.
1342 files imported
ekzorchik@srv-host:~$ sudo umount /media/cdrom
Отлично, теперь проверяю размер каталога /cache:
ekzorchik@srv-host:~$ du -sh /cache/
773M /cache/
Круто, по такому же принципу импортировать из всех дистрибутивов релиза precise (архитектур: x86_64 & amd64) и trusty (архитектур: x86_64 & amd64) и будет самое оно. Я не буду зависеть от пакетов в репозитариях, обычно владельцы репозитариев любят изменять их по своему образу с учетом выхода новых версий, а из-за этого мои заметки моего блога становятся неактуальными. А так у меня все своё. Я доверяю в вопросах настройки чего-либо только себе, т. е. Если я сделаю что-то не до конца винить я буду только себя, а я стараюсь делать на совесть, чтобы потом не получить люлей. Вот так вот, на этом собственно все, с уважением автор блога — ekzorchik.