Сервер пакетов для моих систем

Posted by

Ранее, а если точнее давным давно, я уже разбирал работу приложения но ориентировался на дистрибутив Ubuntu 12.04.5 Server amd64Схема работы сервера пакетов и в целом меня все устраивало, но все меняется выходят новые долговременные релизы, к примеру Ubuntu Trusty. И как показывает практика конфигурационные файлы имеют отличия да и новые глюки также присутствуют.

Ниже ссылки на заметки применительно к Ubuntu Precise

А сейчас я пройдусь по всем шагам установки apt-cacher на .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/.

ошибка и как ее исправить? Если поправлю, что в каталоге

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.