Руководство по Ubuntu для новичков

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


Репозитории

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

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

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

Для управления репозиториями предназначена программа «Источники приложений», находящаяся в меню Система→Администрирование:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Итак, узнать про Medibuntu можно на официальном сайте: http://www.medibuntu.org/

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

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

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

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

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

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

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

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

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

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