Ubuntu настройка доступа к репозиториям

Разобравшись с устройством пакетных репозиториев Ubuntu, самое время заняться настройкой доступа к оным. Правда, в первом приближении это делается во время установки, однако при этом подключается лишь часть доступных репозиториев - тому, что расположен на установочном компакте или на DVD-диске (в зависимости от того, с какого носителя производилась установка), а также к компонентам main и restricted одного из официальных зеркал главного репозитория Ubuntu.

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

Репозитории пакетов, используемые в дистрибутивах семейства Ubuntu, описываются в специальном конфигурационном файле - /etc/apt/sources.list. После пользовательской установки по умолчанию начало его выглядит следующим образом (дано на примере Kubuntu Feisty Herd 1, комментарии опускаются):
deb cdrom:[Kubuntu 7.04 _Feisty Fawn_ - Alpha amd64 (20061205.1)]/ feisty main restricted

deb http://ru.archive.ubuntu.com/ubuntu/ feisty main restricted
deb-src http://ru.archive.ubuntu.com/ubuntu/ feisty main restricted

deb http://ru.archive.ubuntu.com/ubuntu/ feisty-updates main restricted
deb-src http://ru.archive.ubuntu.com/ubuntu/ feisty-updates main restricted
Первая строка описывает репозиторий установочного компакта. Формат ее таков:

* deb - тип пакетов (в данном случае - бинарники);
* cdrom: - источник пакетов;
* [Kubuntu etc.] - метка CD-диска;
* feisty - имя собственное дистрибутива;
* main и restricted - компоненты дистрибутива.

Следующая пара строк описывает сетевые репозитории основных пакетов. Их формат сходен с описанием репозитория на компакте за исключением того, что в первой позиции второй строки из этой пары тип пакетов определяется, как исходники (deb-src). Кроме того, во второй позиции каждой строки вместо метки диска стоит URL архива. В наших условиях это будет http://ru.archive.ubuntu.com/ubuntu, где ru означает российское его зеркало. Этот префикс добавляется автоматически, в соответствие с выбранной при инсталляции страной.

Следующая пара строк описывает репозитории для обновлений официально поддерживаемых пакетов - то есть для категорий main и restricted. Они во всем аналогичны двум предыдущим, отличаясь лишь тем, что вместо имени собственного дистрибутива стоит соответствующая категория - feisty-updates.

В конце файла /etc/apt/sources.list можно видеть такие строки:
deb http://security.ubuntu.com/ubuntu feisty-security main restricted
deb-src http://security.ubuntu.com/ubuntu feisty-security main restricted
Они описывают репозитории так называемых обновлений безопасности официально поддерживаемых пакетов и потому включают вместо имени дистрибутива название соответствующей категории (feisty-security). Несколько отличен и URL - все обновления безопасности, вне зависимости от страны пребывания, черпаются из одного архива: http://security.ubuntu.com/ubuntu/

Таким образом, сразу после установки мы имеем доступ только к официально поддерживаемым разработчиками Ubuntu пакетам, их исходникам, обновлениям и обновлениям безопасности. Так что наша первоочередная задача - получить доступ ко всему пакетному богачеству дистрибутива.

Делается это просто - благо соответствующие строки описания дополнительных архивов в /etc/apt/sources.list присутствуют в закомментированном виде. Так что остается только последовательно снять ремарки со строк:
deb http://ru.archive.ubuntu.com/ubuntu/ feisty universe
deb-src http://ru.archive.ubuntu.com/ubuntu/ feisty universe
описывающих бинарники и исходники компонента universe (то есть свободных, но официально не поддерживаемых пакетов) и со строк
deb http://ru.archive.ubuntu.com/ubuntu/ feisty-backports main restricted universe multiverse
deb-src http://ru.archive.ubuntu.com/ubuntu/ feisty-backports main restricted universe multiverse
содержащих аналогичное описание для всех компонентов категории feisty-backports (недавно включенных в репозиторий и недостаточно оттестированных программ).

Обращаю внимание на то, что в строках для собственно дистрибутива (feisty) мы не видим компонента multiverse, что, видимо, обусловлено лицензионными соображениями. Поскольку нас, граждан России, эти соображения не волнуют, исправляем сей недостаток, вписав следующую строку
deb http://ru.archive.ubuntu.com/ubuntu/ feisty multiverse
deb-src http://ru.archive.ubuntu.com/ubuntu/ feisty multiverse
После выполнения описанных, общих для всех пользователей действий настройка доступа к репозиториям закончена во втором приближении: сделанного достаточно, чтобы доустанавливать пакеты, не включенные в комплект установочного диска, а также получать все штатные обновления. Можно переходить к окончательной, уже индивидуальной доводке.

Так, я для начала закрываю комментарием строку, описывающую установочный компакт-диск: устанавливать с него, как правило, нечего ("Все уже украдено до нас" - "Операция Ы" :) ), а требование вставить CD в привод при каждом апгрейде пакетов очень раздражает (и apt-get, и aptitude в поисках обновлений сканируют все строки файла /etc/apt/source.list).

Впрочем, иногда возникает необходимость, напротив, подключить дополнительный CD- или DVD-диск. Если это "правильный" дистрибутивный диск, то сделать это можно автоматически, командой
apt-cdrom add
Диск при этом должен находиться в приводе в несмонтированном состоянии - монтирование и размонтирование его также будет выполнено на автомате. Возможно и подключение собственных репозиториев пакетов, расположенных на CD/DVD, на локальной файловой системе или доступных по сети. Однако это со временем будет темой отдельного разговора.

Далее, если коннект с региональным репозиторием оказывается неудовлетворительным (а в случае с http://ru.archive.ubuntu.com/ubuntu подчас так оно и бывает), никто не запрещает добавить зеркала официального репозитория из иных стран. По моим наблюдениям, самым быстрым оказывается норвежское зеркало, за ним идут бельгийское и нидерландское заркала. Так что каждую строку с описанием отдельных репозиториев можно продублировать, заменив в URL ru на no, be или nl соответственно.

Впрочем, вопрос скорости доступа к репозиториям является сложным и в каждом конкретном случае заслуживает экспериментального исследования. Сделать это можно, например, с помощью утилиты ping, последовательно задавая в качестве ее аргумента URL или IP-адрес интересующих нас зеркал. Кроме того, для выбора самого быстрого зеркала можно попытаться использовать унаследованные от Debian утилиты netselect и netselect-apt. Правда, у меня с ними ничего не получилось...

Кроме репозиториев официальных, имеются и репозитории, так сказать, полуофициальные. Так, для пользователей Kubuntu очень важен репозиторий http://kubuntu.org/packages/ - именно в нем, усилиями Джонатана Риддела, в первую очередь появляются сборки самых свежих версий KDE и таких его приложений, как KOffice и AmaroK. Кроме того, только оттуда можно получить пакеты для тестовых версий KDE; в частности, в данный момент там имеется ранняя альфа-версия KDE 4.

Для подключения этого репозитория необходимо для начала получить gpg-ключ (нечто вроде гарантии идентичности). Он скачивается со странички Джонатана:
$ wget http://people.ubuntu.com/~jriddell/kubuntu-packages-jriddell-key.gpg
Затем выполняется собственно процедура идентификации:
$ sudo apt-key add kubuntu-packages-jriddell-key.gpg
В оригинальных Dapper и Edgy, содержащих KDE 3.5.4, обновить его до текущей версии можно, подключив такие архивы:
deb http://kubuntu.org/packages/kde355/ dapper
или

deb http://kubuntu.org/packages/kde355/ edgy
соответственно.

Аналогично следует поступать и с другими "не вполне штатными" обновлениями, например, аудиоплейера amaroK. Следить за такими обновлениями проще всего по сайту проекта http://www.kubuntu.org. И, при их появлении, по приводимым там ссылкам всегда можно получить исчерпывающую информацию о том, как подключать дополнительные репозитории.

Впрочем, может оказаться, что проще обновить не отдельные компоненты, а дистрибутив в целом. Сделать это легко (теоретически): достаточно во всех строках файла /etc/apt/sources.list заменить имя более старого из них (например, dapper) на обновленный (скажем, edgy). Правда, результат обновления может оказаться (и, по моему опыту, почти всегда оказывается) не идентичным тому, что мы получили бы при переустановке системы "с нуля". Да и выигрыш во времени проблематичен (а уж в трафике - очевиден проигрыш). Однако сама по себе такая возможность имеется - и это не может не радовать.

Говорят, что, кроме официальных и "полуофициальных" репозиториев, существуют еще и репозитории совсем неофициальные. Однако у меня необходимости обращаться к ним до сих пор не было, так что я мало чего могу сказать по этому поводу.

Часто на форумах возникает вопрос - а можно ли в Ubuntu использовать репозитории ее сородичей, таких, как Debian и прочие его дериваты? Теоретически - можно, но практически делать этого я бы не стал. Конечно, все deb-based дистрибутивы сохраняют до сих пор бинарную совместимость друг с другом (давно утраченную, скажем, rpm-based дистрибутивами). Но по версионности пакетов ни один из дистрибутивов Ubuntu точно не соответствует ни одной из веток родительского Debian, и потому вероятность путаницы зависимостей очень велика. Так что, если уж существует непреодолимая потребность в каком-либо пакете из Debian, надежней его просто скачать и установить вручную, через dpkg -i. Обращая особое внимание на выдаваемые сообщения о нарушении зависимостей...

И в заключение напомню: после любых модификаций файла /etc/apt/source.list необходимо обновить локальный кэш пакетов, выполнив одну из команд:
$ sudo apt-get update
или

$ sudo aptitude update
чтобы сделанные изменения вступили в силу. Алексей Федорчук

Комментарии

  1. Еще один замечательный пост.
    Я вообще, не имея дома подключения к интернету, в Kubuntu 6.10 добавил через apt-cdrom add 3 DVD Debian Etch. Все работает на ура!

    ОтветитьУдалить

Отправить комментарий

Написать комментарий

Популярные сообщения