Установка и сопровождение программного обеспечения в системах на базе Debian


Глава из книги “Linux. Сборник рецептов“
Автор: Карла Шрёдер
Источник: Linux. Сборник рецептов


3.1. Введение

Дистрибутив Debian известен своей исключительной стабильностью и надежностью, а также замечательной системой управления пакетами/разрешения зависимостей apt. Установка новых приложений осуществляется очень просто:# apt-get программа


Выборка и установка библиотек, от которых зависит работа приложения, производятся автоматически. Apt — изощренная, интеллектуальная программа, а официальный архив программного обеспечения Debian поддерживает жесткие стандарты качества пакетов. Официальный программный архив Debian содержит более 12 000 программ; это больше, чем у любой другой платформы.

Dpkg —аналог RPM для Debian, обладающий дополнительными возможностями; он также выполняет базовую настройку конфигурации. Например, при установке Postfix dpkg запрашивает кое-какую информацию о системе, устанавливает стартовые и конфигурационные файлы и инициализирует программу.

Debian существует в трех разных версиях: стабильной, тестовой и нестабильной (также существует четвертая версия для искателей приключений — экспериментальная). Они обозначаются терминами Woody, Sarge и Sid. Версия Woody чрезвычайно консервативна. Пакеты допускаются в версию Woody только после обширной проверки зависимостей и исправления всех дефектов безопасности. Версии Sarge и Sid содержат новые пакеты, не прошедшие столь подробного тестирования. «Заплатки» безопасности быстро выпускаются для Woody и весьма нерегулярно — для Sarge и Sid.

Какую версию использовать? Наиболее очевидный выбор — стабильная версия (Woody), надежная, как скала. Тем не менее за надежность приходится расплачиваться: программы в Woody на месяцы, а иногда и на годы отстают от даты официального выпуска. Woody идеально подходит для серверов. Для настольных систем и рабочих станций более актуальны тестовая версия (Sarge) и нестабильная версия (Sid). И несмотря на устрашающие названия («тестовая», «нестабильная»), они работают вполне нормально.

Кодовые обозначения выглядят симпатично, но не стоит использовать их в конфигурационных файлах. Нестабильной версии всегда будет соответствовать обозначение Sid, но Woody и Sarge не всегда будут связываться со стабильной и тестовой версиями — когда-нибудь текущая тестовая версия Sarge будет повышена до статуса стабильной, а текущая версия Woody уйдет на покой. При грамотном сопровождении система Debian постоянно обновляется без переустановки, поэтому не стоит нарушать ее работу использованием кодовых обозначений, которые со временем изменятся.

Далее перечислены кодовые названия версий. Все они позаимствованы из фильма «История игрушек»:
Buzz — Базз Световой Год, космонавт (1.1);
Rex — тираннозавр Рекс (1.2);
Bo — Бо Пип (1.3.x);
Hamm — Хэм, свинья-копилка (2.0);
Slink — собака Слинки (2.1);
Potato — мистер Картофельная Голова (2.2).

А теперь версии 3.x:
Woody — ковбой (стабильная версия);
Sarge — командир армии зеленых солдатиков (тестовая версия);
Sid — испорченный мальчишка, ломающий игрушки (нестабильная версия).
3.2. Поиск программ для Debian
Проблема

Вам понадобились программы для системы Debian. В Сети можно найти многие гигабайты программного обеспечения — но где найти программы, упакованные для Debian? И как выбрать архив?
Решение

Пакеты Debian устанавливаются из официальных архивов пакетов Debian, неофициальных архивов и с дисков CD-ROM. Источники указываются в файле /etc/apt/sources.list, после чего система управления пакетами Debian используется для установки пакетов из источников.

Списки адресов сайтов для загрузки программ:
официальное зеркало Debian — http://www.debian.org/mirror/;
неофициальные архивы APT — http://www.apt-get.org.

Список поставщиков дисков CD-ROM по всему миру:
http://www.debian.org/CD/vendors/;

Для поиска отдельных пакетов можно воспользоваться страницей поиска Debian:
http://www.debian.org/distrib/packages/.

Следующим шагом должно стать редактирование файла /etc/apt/sources.list и занесение в него выбранных источников.
Комментарий

При наличии нескольких источников apt-get всегда использует самую новую версию пакета. Список начинается с наиболее предпочтительных источников, поскольку apt-get обрабатывает список от начала к концу.

Редактирование файла sources.list — абсолютно законный, простой способ управления установкой программ. Занесите в файл все записи, которые вы когда-либо планируете использовать, и закомментируйте строки, не задействованные в конкретной установке.

В список sources.list рекомендуется включить официальные зеркала Debian, чтобы снять нагрузку с серверов Debian.org. Полный список официальных зеркал находится по адресу http://www.debian.org/mirror/.ПРЕДУПРЕЖДЕНИЕ

Заплатки безопасности распространяются только с адреса http://www.debian.org/security/ и не копируются на зеркалах.

См. также

sources.list(5); официальный список зеркал Debian (http://www.debian.org/mirror/); страница поиска пакетов Debian (http://www.debian.org/distrib/packages).
3.3. Установка пакетов Debian с диска CD-ROM
Проблема

Требуется установить пакеты с компакт-диска. Процесс, описанный в предыдущем разделе, предполагает, что программы загружаются из архива. Как включить ссылку на CD-ROM в файл sources.list?
Решение

Измените файл /etc/apt/sources.list командой apt-cdrom; это единственный способ включения архивов на CD-ROM в sources.list. Диск должен находиться в дисководе, но монтировать его не обязательно. Затем введите команду:# apt-cdrom add
Using CD-ROM mount point /cdrom/
Unmounting CD-ROM
Please insert a Disc in the drive and press enter
Mounting CD-ROM
Identifying.. [0eabc03d10414e59dfa1622326e20da7-2]
Scanning Disc for index files.. Found 1 package indexes and 0 source indexes.
This Disc is called:
'Libranet GNU/Linux 2.8.1 CD2'
Reading Package Indexes...Done
Wrote 1271 records.
Writing new source list
Source List entries for this Disc are:
deb cdrom:[Libranet GNU/Linux 2.8.1 CD2]/ archive/
Repeat this process for the rest of the CDs in your set.


Используйте ключ -d, чтобы добавить данные компакт-диска из другого дисковода:# apt-cdrom -d /cdrom1 add


Идентификация диска:$ apt-cdrom ident
Using CD-ROM mount point /cdrom/
Mounting CD-ROM
Identifying.. [0eabc03d10414e59dfa1622326e20da7-2]
Stored Label: 'Libranet GNU/Linux 2.8.1 CD2'
$

Комментарий

apt-get всегда выбирает из всех доступных источников новейшие версии устанавливаемых пакетов. Мир Linux быстро развивается, поэтому самая свежая информация всегда находится в Интернете. Чтобы выполнить принудительную установку программы с компакт-диска, закомментируйте все остальные строки в файле sources.list.ПРИМЕЧАНИЕ

Не забывайте выполнять команду apt-get update при каждом изменении файла sources.list.

См. также

apt-cdrom(8), apt-get(8); Debian on CD, архивы ISO (http://www.debian.org/CD/http-ftp/).
3.4. Установка пакетов в системе на базе Debian
Проблема

Все архивы программного обеспечения, компакт-диски и т. д. не принесут никакой пользы, если вы не умеете устанавливать программы. Итак, вы хотите знать, как установить новый пакет в Debian.
Решение

Воспользуйтесь командой apt-get install:# apt-get install tuxkart


Установка пакета с перезаписью файлов:# apt-get install --reinstall tuxkart


Чтобы установить сразу несколько программ, перечислите их, разделяя пробелами:# apt-get install tuxkart gltron frozen-bubble
tuxracer nethack galaga


Загрузка программ без установки или распаковки:# apt-get -d install tuxkart


Чтобы протестировать команду перед выполнением, присоедините к строке ключ --dry-run:# apt-get install tuxkart gltron frozen-bubble tuxracer nethack galaga --dry-run

Комментарий

Для определения имен пакетов используйте страницу поиска Debian по адресу http://www.debian.org/distrib/packages/. Имена пакетов Debian часто отличаются от своих аналогов из RPM. Например, программа CyrusSASL оформляется в пакет sasl-2.x.rpm, а в Debian она разбивается на несколько пакетов с именами libsasl-*.

Не забудьте выполнить команду apt-get update после изменения /etc/apt/sources.list и периодически запускайте ее, чтобы получать обновленную информацию из архивов пакетов.

apt-get загружает и устанавливает (а при необходимости и удаляет) все пакеты, необходимые для разрешения всех зависимостей.
См. также

apt-get(8); локальная документация (/usr/share/doc/Debian/apt-howto).
3.5. Удаление пакетов из системы Debian
Проблема

Требуется удалить пакет или несколько пакетов из системы Debian.
Решение

Воспользуйтесь командой apt-get remove:# apt-get remove tuxpaint
Reading Package Lists... Done
Building Dependency Tree... Done
The following packages will be REMOVED:
tuxkart
0 upgraded, 0 newly installed, 1 to remove and 79 not updated.
Need to get 0B of archives.
After unpacking 188 kB disk space will be freed.
Do you want to continue? [Y/n] y
(Reading database ... 141283 files and directories currently installed.)
Removing tuxkart...
#


Предварительное тестирование команды remove:# apt-get remove tuxpaint --dry-run


Удаление всех следов существования пакета, включая конфигурационные файлы:# apt-get --purge remove tuxpaint


Чтобы удалить сразу несколько программ, перечислите их, разделяя пробелами:# apt-get remove tuxkart gltron frozen-bubble tuxracer nethack galaga

См. также

Apt-get(8); локальная документация (/usr/share/doc/Debian/apt-howto).
3.6. Установка программ в Debian по исходным текстам
Проблема

Требуется откомпилировать программу в системе (вместо установки двоичных файлов Debian). Возможно, вы хотите отредактировать код программы или запустить пакет из тестовой или нестабильной версии в стабильной (перекомпиляция обеспечивает построение правильных зависимостей).
Решение

Воспользуйтесь командой apt-get source и содействием dpkg.

Для начала загрузите заголовки и библиотеки, от которых зависит устанавливаемая программа, в каталог, в котором будет строиться пакет:# cd /usr/src
# apt-get build-dep tuxkart


Загрузка и сборка пакета:# apt-get -b source tuxkart


Установка пакета:# dpkg -i tuxkart.deb

Комментарий

Построение пакетов .deb по исходным текстам чаще всего выполняется с целью использования пакетов из тестовой или нестабильной версии в стабильной. Перекомпиляция настраивает зависимости для стабильной версии.

Если потребуется установить программу, отсутствующую в архивах Debian, постройте .deb при помощи CheckInstall — утилиты, создающей пакеты RPM, .deb и Slackware (см. раздел 4.5).
См. также

apt-get(8), dpkg-source(1); локальная документация (/usr/share/doc/Debian/apt-howto); раздел 4.5.
3.7. Обновление пакетов в Debian
Проблема

Требуется обновить пакет в системе Debian, потому что новая версия обладает расширенными возможностями или в ней исправлены ошибки.
Решение

Воспользуйтесь командой apt-get install:# apt-get install gltron
Reading Package Lists... Done
Building Dependency Tree... Done
The following packages will be upgraded:
gltron
1 upgraded, 0 newly installed, 0 to remove and 78 not upgraded.
Need to get 89.5kB of archives.
After unpacking 266kB of additional disk space will be used.
Get:1 ftp://ftp.debian.org sid/main gltron 3.53 [89.5kB]
Fetched 89.5kB in 5s (16.8kB/s)
Preconfiguring packages...
(Reading database... 141286 files and directories currently installed.)
Preparing to replace adduser 3.52 (using .../archives/adduser_3.53_all.deb)...
Unpacking replacement gltron...
Setting up adduser (3.53)...
#


Обновление нескольких пакетов:# apt-get install tuxkart gltron frozen-bubble tuxracer nethack galaga

Комментарий

Команды обновления отдельных пакетов не существует. Команда apt-get install всегда устанавливает последнюю версию пакета.
См. также

apt-get(8); локальная документация (/usr/share/doc/Debian/apt-howto).
3.8. Обновление системы Debian
Проблема

Требуется обновить все пакеты в системе и заменить их новейшими версиями.
Решение

Убедитесь в том, что файл /etc/apt/sourcs.list содержит ссылки на нужные источники, а затем выполните команду apt-get upgrade.

Всегда начинайте с обновления списков пакетов:# apt-get update


Следующая команда обновляет все установленные пакеты, но не удаляет пакеты для разрешения зависимостей:# apt-get -u upgrade


Обновление всех установленных пакетов с удалением или установкой пакетов по мере необходимости для разрешения всех зависимостей:# apt-get -u dist-upgrade


Флаг -u позволяет заранее просмотреть список всех изменений. Обновление может занять несколько часов, в зависимости от скорости подключения к Интернету и количества загружаемых пакетов.
Комментарий

Чтобы флаг -u применялся по умолчанию, отредактируйте (или создайте) файл /etc/apt/apt.conf:// Всегда перечислять обновляемые пакеты
// и запрашивать подтверждение у пользователя
APT::Get::Show-Upgraded "true";


Перед каждым выполнением команды apt_get dist_upgrade сначала выполните команду apt-get upgrade, чтобы снизить вероятность ошибок при выполнении dist-upgrade.
См. также

apt-get(8); локальная документация (/usr/share/doc/Debian/apt-howto).
3.9. Установка обновленной версии Debian
Проблема

Требуется перейти на более новую версию Debian (например, с Woody на Sarge).
Решение

Прежде всего отредактируйте файл /etc/apt/sources.list, чтобы в нем содержались только записи Sarge. Затем выполните следующие команды:# apt-get update
# apt-get -u upgrade
# apt-get -u dist-upgrade


Флаг -u позволяет сначала просмотреть список изменений. В зависимости от скорости подключения к Интернету и количества необходимых пакетов процедура может занять несколько часов.
Комментарий

В какой-то момент Sarge повышается до статуса стабильной версии, а Woody «уходит на покой». Когда это произойдет, обновите свою систему так, как описано в настоящем разделе.
См. также

apt-get(8); локальная документация (/usr/share/doc/Debian/apt-howto).
3.10. Создание смешанной системы Debian
Проблема

Требуется установить базовую систему в стабильной версии, а также некоторые программы из тестовой версии. Другими словами, вы хотите иметь абсолютно надежную базовую систему, но в некоторых программах вам необходимы дополнительные возможности, присутствующие только в более новых версиях.
Решение

Отредактируйте файл /etc/apt/sources.list так, чтобы в нем содержались ссылки на источники как для стабильной, так и тестовой версий (за информацией о файле sources.list обращайтесь к разделу 3.2. Затем отредактируйте /etc/apt/apt.conf и задайте версию по умолчанию (в нашем примере это стабильная версия). Затем при установке или обновлении пакетов нужная версия выбирается при помощи флага -t.

Отредактированный (или созданный) файл /etc/apt/apt.conf должен выглядеть примерно так:// Версия системы по умолчанию.
// Допустимые значения: woody, sarge, sid
// (или stable, testing, unstable)
APT::Default-Release "stable";


Далее производится обновление списков пакетов:# apt-get update


Сейчас по умолчанию используется стабильная версия, поэтому указывать ее при установке пакетов не обязательно. Следующая команда устанавливает Tuxkart из стабильной версии:# apt-get install tuxkart


Для установки пакета из тестовой версии (Sarge) воспользуйтесь ключом -t:# apt-get -t testing install tuxkart


Чтобы гарантированно получить конкретную версию, укажите номер пакета:# apt-get install tuxkart=0.2.0-3

Комментарий

Сопровождение смешанной системы требует осторожности, особенно если в качестве базовой версии используется Woody. По мере «старения» Woody могут возникнуть проблемы двоичной совместимости с Sarge/Sid. Различия между ключевыми системными файлами (такими как libc и gcc) могут стать настолько серьезными, что пакеты Sarge/Sid не будут устанавливаться в Woody. Если это произойдет, попробуйте построить пакеты по исходным текстам (см. раздел 3.6).
См. также

apt.conf(5), sources.list(5); страница поиска пакетов Debian (http://www.debian.org/distrib/packages).
3.11. Поиск программ, установленных в системе Debian
Проблема

Требуется узнать, какие пакеты установлены в системе, к какому пакету относятся те или иные файлы и что находится в отдельных пакетах.
Решение

Воспользуйтесь средствами обработки запросов dpkg.

Следующая команда выводит список всех установленных пакетов и направляет его в файл:$ dpkg -l | tee dpkglist


Поиск всех пакетов, удовлетворяющих критерию поиска, и вывод информации об их состоянии:$ dpkg -l '*gnome*'
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed
|/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad)
||/ Name Version Description
+++-==============================================================
pn gnome <none> (no description available)
un gnome-about <none> (no description available)
ii gnome-applets 2.4.2-1 Various applets for GNOME 2 panel
rc gnome-bin 1.4.2-18 Miscellaneous binaries used by GNOME


Поиск установленных пакетов, удовлетворяющих критерию поиска:$ dpkg -l | grep gnome


Вывод списка файлов, входящих в пакет:$ dpkg -L gnome-applets
.
/usr/share
/usr/share/lintian
/usr/share/lintian/overrides
/usr/share/lintian/overrides/gnome-applets
...


Следующая команда определяет, к какому пакету относится файл:$ dpkg -S boing.wav
tuxkart-data: /usr/share/games/tuxkart/wavs/boing.wav


Вывод полной информации о пакете:$ dpkg -s kpoker
Package: kpoker
Status: install ok installed
Priority: optional
Section: games
Installed-Size: 428
Maintainer: Daniel Schepler <schepler@debian.org>
Source: kdegames
Version: 4:3.1.5-1
....

Комментарий

Таблица, выводимая командой dpkg -l, выглядит довольно загадочно, поэтому я приведу расшифровку.$ dpkg -l gnome*
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed
|/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad)
||/ Name Version Description
+++-==============================================================
pn gnome <none> (no description available)
un gnome-about <none> (no description available)
ii gnome-applets 2.4.2-1 Various applets for GNOME 2 panel
rc gnome-bin 1.4.2-18 Miscellaneous binaries used by GNOME


В строке pn gnome поднимитесь от буквы p наверх по «стрелке». Она приведет вас к строке Desired=Unknown/Install/Remove/Purge/Hold с расшифровками первого символа (Purge в данном случае).

От следующего столбца, n, стрелка ведет к строке Status. По ней можно определить, что символ n означает Not/Installed.

В третьем столбце отображается код ошибки. В нашем случае он пуст (и хорошо). Как указано в конце строки, любые символы верхнего регистра в столбцах Status и Err ни к чему хорошему не приведут.

Получаем: пакет gnome когда-то был установлен в системе, но потом он был удален.

Код un означает, что пакет никогда не устанавливался.

Код ii означает, что пакет установлен.

Код rc означает, что пакет был установлен, а затем удален, но после него остались конфигурационные файлы. Состав этих файлов определяется легко:$ dpkg -L gnome-bin
/etc/logcheck/ignore.d.server/gnome-bin
/etc/logcheck/ignore.d.workstation/gnome-bin

См. также

dpkg(8).
3.12. Операции с кэшем пакетов Debian
Проблема

Требуется обеспечить актуальность кэша пакетов и списков пакетов, чтобы программа apt работала правильно, без возникновения ложных проблем с зависимостями.
Решение

Воспользуйтесь программами apt и dpkg.

Не забывайте выполнять команду apt-get update после модификации файла /etc/apt/sources.list, а также регулярно выполняйте ее, чтобы список пакетов оставался актуальным.

Следующая команда выводит список загруженных, но не установленных пакетов:$ dpkg --yet-to-unpack


Проверка нарушенных зависимостей:$ apt-get check


Удаление кэшированных пакетов, которые стали ненужными:$ apt-cache autoclean


Удаление всех кэшированных пакетов:$ apt-cache clean


Вывод списка частично установленных пакетов:$ dpkg --audit


Если вызов dpkg --audit возвращает какие-либо результаты, как в следующем случае:$ dpkg --audit
vpw (no information available)


для начала убедитесь в том, что возвращаемый пакет существует:$ dpkg -l vpw
Package 'vpw' is not installed and no info is available


Если пакет существует, либо завершите установку, либо удалите ее. Если пакет не установлен, поищите соответствующую запись в /var/lib/dpkg/available и /var/lib/dpkg/status и удалите ее.
Комментарий

Кэш пакетов запросто может занимать десятки, если не сотни мегабайт. Загляните в /var/cache/apt/archives и проверьте сами. Чтобы сэкономить место на диске, создайте локальный кэш пакетов в своей сети (см. раздел 3.14).
См. также

dpkg(8), apt_cache(8), apt-get(8); локальная документация (/usr/share/doc/Debian/apt-howto); The Debian Reference Manual (http://qref.sourceforge.net/).
3.13. Разрешение конфликтов зависимостей в Debian
Проблема

Программа не устанавливается из-за проблем с зависимостями, или команда apt-get dist-upgrade оставляет пакеты, которые нужно удалить.
Решение

Существует несколько команд, которые могут пригодиться для решения этой задачи; в этом разделе они перечисляются в том порядке, в котором их стоит попробовать.

Допустим, проблемы возникли с пакетом libpam-modules, который не желает обновляться:# apt-get install libpam-modules
...
The following packages have unmet dependencies:
libpam-modules: Depends: libdb3 (>=3.2.9-19.1) but 3.2.9-19 is to be installed
E: Broken packages


Если вы работаете в смешанной системе, для начала попробуйте указать версию:# apt-get install -t stable libpam-modules


Если это не помогает или система не является смешанной, попробуйте воспользоваться системой разрешения конфликтов Debian:# apt-get -f install


Затем выполните команду:# dpkg --configure -a


И снова повторите команду:# apt-get -f install


Если будет получен следующий ответ, значит, попытка завершилась неудачей:Reading Package Lists... Done
Building Dependency Tree... Done
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.



Теперь проверьте, что произойдет при удалении существующего пакета libpam-modules:# apt-get remove --dry-run libpam-modules
Reading Package Lists... Done
Building Dependency Tree... Done
The following packages will be REMOVED:
adduser adminmenu apache at base-config courier-imap courier-imap-ssl courier-pop courier-pop-ssl cron cupsys cupsys-driver-gimpprint dict-elements dict-foldoc dict-gcide dict-jargon dict-vera dict-wn dictd gdm2...
....
WARNING: The following essential packages will be removed
This should NOT be done unless you know exactly what you are doing!
login libpam-modules (due to login)



В данном случае исправление конфликтов зависимостей потребует едва ли не полной перестройки системы. Чаще проблемы ограничиваются несколькими пакетами. В этом случае начинайте удалять наименее важные из них, пока конфликты зависимостей не будут разрешены, а затем переустановите все пакеты, которые вам нужны.

Если apt-get -u dist-upgrage отображает какие-либо задержанные (held) пакеты, от них лучше избавиться. Пакеты удерживаются из-за конфликтов зависимостей, которые не удается разрешить apt. Попробуйте воспользоваться следующей командой для поиска и исправления конфликтов:# apt-get -o Debug::pkgProblemResolver=yes dist-upgrade


Если исправить конфликты не удается, команда завершается с сообщением0 upgraded, 0 newly installed, 0 to remove and 6 not upgraded.


Удаляйте held-пакеты один за одним, каждый раз запуская dist-upgrade, пока не останется ни одного задержанного пакета. Затем установите заново все необходимые пакеты. Не забудьте использовать ключ --dry-run, чтобы заранее знать обо всех последствиях:# apt-get remove --dry-run libsdl-perl

Комментарий

В «монолитных» системах подобные конфликты версий встречаются редко. Пользователи смешанных систем сталкиваются с ними чаще. Чтобы предотвратить их, будьте чрезвычайно осмотрительны при выборе устанавливаемых программ — при первой установке Debian потратьте немного времени и выберите каждый необходимый пакет.
См. также

dpkg(8), apt-get(8); Debian User’s List с архивами (http://lists.debian.org/debian-user/).
3.14. Создание локального архива Debian
Проблема

Требуется создать в локальной сети хранилище пакетов для общего пользователя. Локальный архив особенно полезен в том случае, если пользователи сети совместно используют низкоскоростное подключение к Интернету. Вместо того чтобы загружать файлы из Интернет-архивов, рабочие станции Debian загружают их из локального архива.
Решение

Воспользуйтесь программой apt-proxy:# apt-get proxy


Apt-proxy запускается автоматически после установки.

Теперь отредактируйте секцию add_backend/debian/ файла /etc/apt-proxy/apt-proxy.conf так, чтобы она содержала ссылки на географически близкие зеркала (список зеркал с пакетами находится по адресу http://www.debian.org/mirror/list).

Затем отредактируйте файл /etc/apt/sources.list на клиентских компьютерах так, чтобы он содержал ссылку на сервер apt-proxy. По умолчанию используется порт 9999:deb http://ip-or-hostname:9999/main stable main contrib non-free
deb http://ip-or-hostname:9999/non-US stable/non-US main contrib non-free
deb http://ip-or-hostname:9999/security stable/updates main contrib non-free


Запустите apt-get update на клиентских машинах, и локальный архив начнет работать. Каждый раз, когда клиентский компьютер в локальной сети устанавливает программу, эта программа будет кэшироваться на сервере apt-proxy. Последующие запросы того же пакета будут обслуживаться из локального кэша.
Комментарий

Большинству параметров в файле /etc/apt-proxy/apt-proxy.conf, кроме источников пакетов, можно оставить значения по умолчанию. Исключение составляет частота «обновлений», определяющая периодичность загрузки списка пакетов. По умолчанию соответствующая секция выглядит так:# Максимальная частота обновлений (в минутах)
# Высокие значения снижают нагрузку.
BACKEND_FREQ=240


Я обычно устанавливаю значение этого параметра равным 1440; ежедневной проверки вполне достаточно. Действительно важные события происходят не так часто. Проверку следует производить хотя бы раз в день главным образом для своевременной установки обновлений безопасности.
См. также

apt-proxy(8), apt-proxy.conf(5); официальный список зеркал Debian (http://www.debian.org/mirror/); домашняя страница apt-proxy (http://apt-proxy.sourceforge.net/).
3.15. Выбор пакетных зеркал для apt-proxy.conf
Проблема

Пакетные зеркала, содержащиеся по умолчанию в файле apt-proxy.conf, разбросаны по всему земному шару. Как выбрать те из них, которые вы хотите использовать? В идеальном варианте хотелось бы использовать зеркальные сайты, находящиеся поближе к вашему компьютеру.
Решение

По умолчанию записи /etc/apt-proxy.apt-proxy.conf выглядят так:add_backend /debian/
$APT_PROXY_CACHE/debian/
http://ftp.us.debian.org/debian/
http://ftp.de.debian.org/debian/
http://ftp.uk.debian.org/debian/
+ftp.us.debian.org::debian/


На сайте http://www.debian.org/mirror/list приведен текущий список зеркал Debian. Например, вот некоторые германские зеркала в mirror/list:DE Germany
----------
ftp.de.debian.org /debian/ /debian/
ftp2.de.debian.org /debian/ /debian/
ftp.tu-clausthal.de /pub/linux/debian/ /pub/linux/debian/
debian.uni-essen.de /debian/ /debian/


Замените стандартные записи apt-proxy.conf своими, предваряя каждую запись префиксом http://:add_backend /debian/
$APT_PROXY_CACHE/debian/
http://ftp.de.debian.org/debian/
http://ftp2.de.debian.org/debian/
http://ftp.tu-clausthal.de/pub/linux/debian/


Файлы /etc/apt/sources.list на клиентских компьютерах изменять не нужно.
Комментарий

Команды ping и traceroute помогут определить, какие зеркала обладают минимальным временем отклика. Дело в том, что географическая близость еще не гарантирует быстрого отклика.

Указание трех источников обеспечивает необходимую избыточность. apt-proxy опрашивает их по порядку: если первый источник не отвечает, опрашивается второй и т. д.
См. также

apt-proxy(8), apt-proxy.conf(5), apt-proxy-import(8); официальный список зеркал Debian (http://www.debian.org/mirror/); домашняя страница apt-proxy (http://apt-proxy.sourceforge.net/).
3.16. Включение существующего кэша пакетов в apt-proxy.conf
Проблема

На сервере apt-proxy уже существует довольно большой кэш пакетов. Вы хотели бы, чтобы программа apt-proxy использовала его вместо того, чтобы загружать все пакеты заново.
Решение

Сначала запустите apt-get update по крайней мере на одном клиентском компьютере, чтобы инициализировать кэш. Затем на сервере выполните команду# apt-proxy-import -d /var/cache/apt/archives

См. также

apt-proxy(8), apt-proxy.conf(5), apt-proxy-import(8); официальный список зеркал Debian (http://www.debian.org/mirror/); домашняя страница apt-proxy (http://apt-proxy.sourceforge.net/).

Обновлено: 13.03.2015