Разобравшись с
устройством пакетных репозиториев 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
Подключение же репозиториев зависит от пакета и его версии. Так, для доступа к архиву KDE 4 (сборка его существует только для Edgy) в /etc/apt/source.list достаточно внести такую строку:
http://kubuntu.org/packages/kde4-3.80.2/
В оригинальных 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
чтобы сделанные изменения вступили в силу.