wiki:руководство_по_ubuntu_desktop_14_04:репозитории

Это старая версия документа.


Репозитории

Теперь я чуть-чуть поподробней расскажу про то, что же такое на самом деле репозитории и как ими пользоваться. Репозитории - это архивы программ для Ubuntu, то есть deb-пакетов. Каждый репозиторий содержит список пакетов, в нём хранящихся, с указанием версий, зависимостей и прочей необходимой информации. Система, подключая репозиторий, скачивает это список (часто называемый, как вы уже знаете, индексом) и сохраняет в специальном месте. В дальнейшем, когда вы, к примеру, просите систему установить какую-нибудь программу, она просматривает все сохранённые списки и ищет, откуда можно загрузить самую актуальную версию программы и все её зависимости. Периодически система автоматически просматривает все прописанные в ней репозитории и скачивает новые индексы.

Механизм весьма простой. Он имеет несколько основных преимуществ: во-первых, вы можете добавить сколько угодно репозиториев, т.е. источников программного обеспечения, система автоматически всё просмотрит и учтёт, вам же надо будет просто указать, какую программу вы хотите поставить и всё, дальше система всё сделает за вас. Во-вторых, система автоматически обновляет индексы, благодаря этому при выходе новой версии установленной у вас программы система сообщит вам об этом и предложит скачать и установить её. Ну и в-третьих, кроме удобства в использовании, механизм репозиториев позволяет вам обезопасить себя от различного вредоносного программного обеспечения. Если вы добавляете в систему только репозитории, которым доверяете, и не устанавливаете deb пакеты напрямую, скачивая их с сомнительных сайтов, а пользуетесь только внутренней системой установки программ Ubuntu, то вы гарантированно не получите никакой вредоносной программы, поскольку все пакеты будут получены из доверяемых источников.

Управление репозиториями

Для управления репозиториями предназначена программа «Источники приложений», находящаяся в меню Система→Администрирование. Для запуска этого приложения вам естественно понадобятся административные привилегии1). Кстати, в это же приложение можно попасть из Synaptic, выбрав пункт «Репозитории» меню «Настройки», а так же из Центра приложений, выбрав пункт «Источники приложений…» меню «Правка».

Первая вкладка, «Программное обеспечение Ubuntu», позволяет управлять основными системными репозиториями2). Тут всё должно быть расставлено как на скриншоте:

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

Следующая вкладка, «Другое ПО», позволяет подключать к системе дополнительные репозитории:

Она-то и является, пожалуй, самой интересной для пользователя. Итак, для подключения к системе дополнительного источника приложений просто нажмите кнопку «Добавить» и в открывшемся окне введите нужную APT-строку3), которую можно узнать на странице описания репозитория:

Все внесённые за время работы в программе изменения в источники приложений можно легко отменить, нажав на кнопку «Восстановить» внизу окна:

Если же вы что-то поменяли и так и хотите всё оставить, то просто закройте программу. При этом система сообщит вам о том, что в связи с изменениями в списке репозиториев индексные файлы устарели и их необходимо заново загрузить:

Если у вас есть соединение с интернетом, то лучше всегда соглашайтесь. Без индексных файлов система не будет корректно работать с репозиториями, а значит вы не будете получать информацию об обновлениях и не сможете устанавливать новые приложения. После нажатия на кнопку «Обновить» запустится процесс обновления индексов:

Ну а после его завершения вы сможете воспользоваться вашим любимым инструментом управления пакетами для установки новых приложений из только что добавленного репозитория. Вообще не забывайте про индексные файлы. Всегда, когда вы вносите какие-то изменения в списки подключённых репозиториев, сразу же обновляйте индексы. Иначе пакетная система Ubuntu просто не увидит ваших правок и будет считать, что всё осталось так, как было4).

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

Безопасность репозиториев и управление ключами

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

Поэтому при добавлении репозитория всегда так же импортируйте в систему его ключ. Ключ репозитория - это простой текстовый файл специального вида, обычно найти его можно на странице описания репозитория. Для добавления ключа в систему воспользуйтесь вкладкой «Аутентификация», на ней есть кнопка «Импортировать файл ключа…», она-то вам и нужна:

Однако скачивать файл ключа с сайта с описанием репозитория и потом его вручную добавлять в систему очень неудобно, поэтому есть более простой механизм, предполагающий ввод всего одной команды в терминале5). Команды бывают самыми различными, однако самый простой и технически верный способ выглядит так:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 12345678

Эта команда запросит ключ 12345678 с сервера ключей6) Ubuntu и добавит его в систему. Собственно, имя ключа всегда выглядит как 8 буквенно-цифровых символов, поэтому если вам дано только оно, то для импортирования ключа вы вполне можете использовать эту команду, изменив 12345678 на нужное значение.

Но сразу хочу вас обрадовать, всё описанное выше - это самый универсальный способ, и во многих случаях репозитории можно добавить значительно проще. Об одном очень важном частном случае легкого добавления новых источников приложений в систему я расскажу следующей статье. А пока что давайте я на конкретном примере продемонстрирую некоторые тонкости вышеописанного.

Добавление репозитория Medibuntu

Есть такой очень популярный репозиторий для Ubuntu, который называется Medibuntu. Он содержит различные мультимедия-компоненты, которые по каким-либо причинам не могут быть включены в официальные репозитории. Например, в нём есть бесплатные, но тем не менее защищённые достаточно строгими лицензиями, Google Earth и Adobe Reader7).

Итак, узнать про Medibuntu можно на официальном сайте: http://www.medibuntu.org/. На нём есть ссылка Repository Howto, пройдя по которой вы попадёте на страницу с описанием способа добавления репозитория и установки некоторых полезных пакетов. Одна из первых же секций озаглавлена «Adding the Repository» и в ней приводится одна гигантская команда, которая, по заверениям, должна добавить репозиторий и его подпись в систему:

Естественно, именно это она и делает8). Вот так. Вы спросите, какое же всё это имеет отношение к описанному выше? На самом деле самое непосредственное, хотя это с первого взгляда и не видно. Я привёл этот пример лишь затем, чтобы показать вам, что способов добавления репозитория в систему бесчисленное множество9). Поэтому если на сайте репозитория приведена инструкция по добавлению его в систему, то просто следуйте ей, а если же даны только APT-строка и ключ, то можете воспользоваться описанной мной в предыдущем разделе последовательностью действий.

Напоследок хочется обратить ваше внимание на вкладку «Обновления» приложения управления источниками программного обеспечения:

На ней содержатся различные настройки автоматического отслеживания и установки обновлений. Всё, что я хочу сказать про это вкладку, так это то, что не стоит включать proposed и backports обновления, если вы не понимаете, что это такое и для чего они нужны10).

Репозитории на компакт-дисках

Всё, про что я рассказывал выше, касалось в первую очередь интернет-репозиториев и установки приложений из них. Однако было бы странно, если бы единственной возможностью получить новое программное обеспечение было бы скачивание его из интернета через стандартные утилиты11).

Поэтому существует способ создания репозитория не в интернете, а на локальных источниках данных, например, на CD и DVD дисках12). Фактически, что такое репозиторий? Это сборник пакетов с индексом, имеющий некоторый адрес. Поэтому если вы соберёте нужные пакеты где-то на вашем компьютере, создадите индекс и в качестве пути будете использовать путь до основной папки с вашими пакетами, то это тоже будет репозиторий. И самое замечательное в этом то, что Ubuntu сможет работать с вашим репозиторием с помощью штатных средств управления пакетами. Это немного упрощённая схема, но, надеюсь, общая концепция понятна.

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

Пожалуй, на этом знакомство с механизмом подключения дополнительных источников программного обеспечения можно закончить. Теперь же я немного расскажу про самое популярное место размещения сторонних репозиториев и, соответственно, программ для Ubuntu:

1)
Надеюсь, понятно почему. Было бы странно, если бы для установки программ надо было бы быть администратором, а для изменения параметров процесса установки - нет.
2)
Обратите так же внимание на то, что тут можно указать основной сервер репозиториев. Российский сервер контролируется яндексом, и если у вас вдруг есть с ним проблемы, то можете выбрать другой.
3)
APT-строка для репозитория это некоторое компактное его описание определённого формата. Например:
deb http://packages.medibuntu.org/ lucid free non-free #Medibuntu
Для того, чтобы понять её, надо немного разбираться в классификации источников приложений. Репозитории бывают двух типов: репозитории с пакетами программ и репозитории с исходным кодом. Первые обозначаются deb, а вторые - deb-src. Далее, у каждого репозитория есть адрес, обычно, это стандартный http или ftp интернет-адрес или же идентификатор компакт-диска. Теперь пожалуй самое важное: каждый репозиторий рассчитан на конкретную версию Ubuntu, и добавлять в систему репозитории от других версий крайне не рекомендуется! Так же репозитории разделяются по типу содержимого. Бывают репозитории, содержащие поддерживаемое Canonical программное обеспечение, репозитории, содержащие ПО, поддерживаемое сообществом, репозитории, содержащие закрытые драйвера и репозитории, содержащие защищённые патентами компоненты. И наконец репозитории разделяются по типам доступных в них обновлений.
Суммируя всю эту информацию про приведённую выше строчку можно сказать, что она описывает репозиторий с пакетами программ с адресом http://packages.medibuntu.org/ для дистрибутива Ubuntu 10.04 «Lucid Lynx», содержащий как свободные, так и несвободные компоненты. Всё, что написано в строчке после символа # является комментарием и игнорируется программами управления.
4)
Справедливости ради надо сказать, что периодически система обновляет индексы сама, если вы конечно не отключите такую возможность. Так что даже если вы не запустите процесс обновления вручную. в какой-то момент Ubuntu сама всё перекачает. По умолчанию она это делает раз в день.
5)
Собственно, обычно именно этот вариант и предлагают использовать на сайтах с репозиториями, мало того, обычно ссылки на ключ вовсе не дают.
6)
Сервер ключей - это централизованное защищённое хранилище ключей аутентификации, с которого можно запросить ключ по его имени.
7)
Сразу хочу вам сказать, что устанавливать Adobe Reader крайне не рекомендуется, в Linux есть свои просмоторщики pdf и они работают куда как лучше программы от Adobe.
8)
Если вам интересно как она это делает, то вам придётся поподробней изучить механизмы формирования и использования консольных команд.
9)
Но все они всё равно в любом случае заключаются в выполнение двух вещей: добавления APT-строки к списку источников и импортирования ключа репозитория.
10)
Собственно, все необходимая информация дана прям на вкладке обновлений в виде краткой характеристики каждого пункта. Почему не стоит включать эти обновления? Потому что в них зачастую попадают пакеты, не до конца протестированные на работоспособность в текущей версии Ubuntu.
11)
Конечно, можно раздобыть deb-пакеты и установить их вручную, однако в этом случае вы рискуете наткнуться на неразрешимые зависимости и вам придётся доставать откуда-то недостающие пакеты, возможно, и не единожды.
12)
Такие репозитории отображаются на первой вкладке приложения управления источниками программного обеспечения. Кстати, там уже доступен один репозиторий на CD диске. Это тот диск, с которого вы ставили систему. Однако на нём, к сожалению, содержится очень мало пакетов. И отключён он, кстати, не зря. Дело в том, что репозитории на CD имеют больший приоритет, чем репозитории в интернете. Поэтому если вы включите CD репозиторий и вам понадобится установить пакет, который есть на CD, то система попросит у вас вставить диск в компьютер, а не скачает нужный пакет из сети. Поэтому если у вас доступен интернет, то включать CD репозитории не стоит.