Какой рейтинг вас больше интересует?
|
Кешируюший прокси deb пакетов apt-cacher на slackware2008-02-26 02:54:00 (читать в оригинале)Моими стараниями количество desktop-ов в организации, работающих под Ubuntu приближается к 10 шт. В дальнейшем их станет больше. Возникает проблема установки дополнительных программ и обновления существующих. Качать пакеты индивидуально для каждого компьютера — долго и не экономит интернет-трафик. Решение заключается в установке одного из кеширующих прокси серверов для deb пакетов. Например apt-cacher, преимущество которого в том что не надо изменять урлы репозитариев, а только настройки прокси-сервера для пакетной системы apt. Описывать установку и настройку apt-cacher на debian или любой debian-based операционной системе, в том числе на ubuntu, я не буду. Во-первых это элементарно, во-вторых уже не раз описано, например здесь. К тому же у меня нет серверов на ubuntu, зато есть сервера на slackware. Вот и займемся установкой apt-cacher на slackware 12. Сначала посмотрим на зависимости пакета: maxim@ubuntu:~$ apt-cache depends apt-cacher apt-cacher Зависит: perl Зависит: bzip2 Зависит: libwww-perl Предлагает: libdbd-sqlite3-perl Радует что apt-cacher написан на perl. Нам понадобится perl библиотека libwww-perl. Установим её на slackware с помошью утилиты cpan2tgz. Можно почитать подробнее про использование cpan2tgz. root@darkstar:~# cpan2tgz LWP С зависимостями разобрались, теперь на ubuntu скачиваем deb пакет apt-cacher: maxim@ubuntu:~$ aptitude download apt-cacher Получили файл apt-cacher_1.5.3_all.deb. Далее устанавливаем программу, если у вас её ещё нет, для преобразования пакетов в разные форматы — alien: maxim@ubuntu:~$ sudo aptitude install alien Преобразуем deb пакет в tgz пакет: maxim@ubuntu:~$ sudo alien --to-tgz -k apt-cacher_1.5.3_all.deb Получили файл apt-cacher-1.5.3.tgz. Изучим его содержимое: maxim@ubuntu:~$ tar -tzf apt-cacher-1.5.3.tgz ./ ./usr/ ./usr/sbin/ ./usr/sbin/apt-cacher ./usr/share/ ./usr/share/man/ ./usr/share/man/man1/ ./usr/share/man/man1/apt-cacher.1.gz ./usr/share/apt-cacher/ ./usr/share/apt-cacher/apt-cacher-precache.pl ./usr/share/apt-cacher/apt-cacher.pl ./usr/share/apt-cacher/apt-proxy-to-apt-cacher ./usr/share/apt-cacher/apt-cacher ./usr/share/apt-cacher/apt-cacher-report.pl ./usr/share/apt-cacher/apt-cacher-lib.pl ./usr/share/apt-cacher/remove.pl ./usr/share/apt-cacher/apt-cacher-format-transition.pl ./usr/share/apt-cacher/apt-cacher-import.pl ./usr/share/apt-cacher/upgrade.pl ./usr/share/apt-cacher/apt-cacher-lib-cs.pl ./usr/share/apt-cacher/install.pl ./usr/share/apt-cacher/apt-cacher-cleanup.pl ./usr/share/doc/ ./usr/share/doc/apt-cacher/ ./usr/share/doc/apt-cacher/copyright ./usr/share/doc/apt-cacher/NEWS.Debian.gz ./usr/share/doc/apt-cacher/changelog.gz ./usr/share/doc/apt-cacher/README.Debian.gz ./etc/ ./etc/init.d/ ./etc/init.d/apt-cacher ./etc/default/ ./etc/default/apt-cacher ./etc/apt-cacher/ ./etc/apt-cacher/checksumming.conf ./etc/apt-cacher/apt-cacher.conf ./etc/apt-cacher/apache.conf ./etc/logrotate.d/ ./etc/logrotate.d/apt-cacher ./etc/cron.daily/ ./etc/cron.daily/apt-cacher Что же тут не соотвествует стандартам slackware? Многое:
Остальное вроде в порядке. Копируем tgz пакет на slackware сервер и устанавливаем его: root@darkstar:~# installpkg apt-cacher-1.5.3.tgz Просматриваем файл /etc/apt-cacher/apt-cacher.conf и видим, что сервер будет запускаться под пользователем и группой www-data. На данный момент в slackware их не существует, исправляем ситуацию: root@darkstar:~# groupadd www-data root@darkstar:~# useradd -g www-data www-data Прописываем в файле /etc/default/apt-cacher значение параметра AUTOSTART=1 и пробуем запустить прокси-сервер apt-cacher: root@darkstar:~# /etc/rc.d/init.d/apt-cacher start Starting Apt-Cacher: apt-cacher/etc/rc.d/init.d/apt-cacher: line 26: start-stop-daemon: command not found Твою мать! В стартовом скрипте используется дебиановская утилита start-stop-daemon, которой нет в slackware. Далее у нас два пути: переписать стартовый скрипт с использованием slackware-way утилит или установить утилиту start-stop-daemon. Системный администратор не программист :-), поэтому ничего переписывать не будем, а будем устанавливать утилиту. Возвращаемся в ubuntu и обнаруживаем, что start-stop-daemon почему-то находится в deb пакете dpkg. Ну да нам все равно, идем по проторенному пути: maxim@ubuntu:~$ aptitude download dpkg maxim@ubuntu:~$ sudo alien --to-tgz -k dpkg_1.13.22ubuntu7_i386.deb Опять копируем полученный пакет на slackware, устанавливаем его и пытаемся снова запустить прокси-сервер apt-cacher: root@darkstar:~# installpkg dpkg-1.13.22ubuntu7.tgz root@darkstar:~# /etc/rc.d/init.d/apt-cacher start Starting Apt-Cacher: apt-cacher/usr/sbin/apt-cacher: No cache_dir directory! Уже лучше, предыдущей ошибки уже нет, но прокси-сервер все равно не стартует. На этот раз он жалуется на нехватку каких-то директорий. Похоже, что на ubuntu эти директории создаются из инсталяционного скрипта в в deb пакете. Но alien при конвертировании пакета нас честно предупреждает что инсталяционные скрипты не конвертируются. Хорошо. Начинаем внимательнее изучать содержимое deb пакета, для этого него извлекаем управляющие скрипты: maxim@ubuntu:~$ dpkg -e apt-cacher_1.5.3_all.deb И обнаруживаем в извлеченном файле DEBIAN/postinst следующие строчки: echo "Running apt-cacher's install script..." /usr/share/apt-cacher/install.pl Понятно, вот чего нам не хватало, запускаем этот скрипт на slackware вручную: root@darkstar:~# /usr/share/apt-cacher/install.pl Assuming www-data is the user ID used to run apt-cacher Doing mkdir(/var/cache/apt-cacher, 0755) Doing mkdir(/var/log/apt-cacher, 0755) Doing mkdir(/var/cache/apt-cacher/private, 0755) Doing mkdir(/var/cache/apt-cacher/import, 0755) Doing mkdir(/var/cache/apt-cacher/packages, 0755) Doing mkdir(/var/cache/apt-cacher/headers, 0755) Doing mkdir(/var/cache/apt-cacher/temp, 0755) Скрипт отработал успешно и создал необходимые системные директории. В очередной раз пробуем запустить прокси-сервер apt-cacher: root@darkstar:~# /etc/rc.d/init.d/apt-cacher start Starting Apt-Cacher: apt-cacher. Кешируюший прокси-сервер для deb пакетов apt-cacher, после доработки напильником :-), успешно запустился на slackware. Теперь любой deb пакет будет скачиваться только один раз. При повторной установке на другом компьютере пакет будет браться из кеша, что увелит скорость скачивания и съэкономит трафик.
|
Категория «Религия»
Взлеты Топ 5
Падения Топ 5
Популярные за сутки
|
Загрузка...
взяты из открытых общедоступных источников и являются собственностью их авторов.