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

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


Репозитории

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

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

Теперь по поводу типов репозиториев. Чаще всего используются сетевые репозитории, находящиеся в интернете. Хотя возможно сделать репозиторий, например, на DVD диске, что достаточно актуально при отсутствии интернета. Он естественно не будет обновляться разработчиками, однако его можно будет подключить к любому компьютеру и установить с него нужные программы. В общем репозиторий - это любой архив пакетов с индексом. Актуальная на какой-то момент версия сетевых репозиториев, записанная на диски, называется срезом репозитория. Но об этом чуть позже. Пока же я расскажу как работать управлять репозиториями в Ubuntu.

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

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

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

Начнём с того, что репозитории бывают двух типов: репозитории с пакетами программ и репозиотории с исходным кодом. Первые обозначаются deb, а вторые - deb-src. Далее, у каждого репозитория есть адрес, обычно, это стандартный http или ftp интернет-адрес или же идентификатор компакт-диска. Теперь пожалуй самое важное: каждый репозиторий рассчитан на конкретную версию Ubuntu, добавлять в систему репозитории от других версий крайне не рекомендуется. Ну и наконец репозитории разделяются по типу содержимого. Бывают репозитории, содержащие поддерживаемое Canonical программное обеспечение, репозитории, содержащие ПО, поддерживаемое сообществом, репозитории, содержащие закрытые драйвера и репозитории, содержащие защищённые патентами компоненты. Кроме того репозитории ещё разделяются по типам обновлений, которые в них могут появится, но это уже совсем выходит за рамки повествования, про обновления я правда ещё немного скажу в конце этой статьи.

Вся приведенная выше информация для конкретного репозитория суммируется в одной строчке, называемой APT-строкой для этого репозитория. Например:

deb http://packages.medibuntu.org/ karmic free non-free #Medibuntu

Итак, как видно, это репозиторий с пакетами программ с адресом http://packages.medibuntu.org/ для дистрибутива Ubuntu 9.10 «Karmic Koala», содержащий как свободные, так и несвободные компоненты. Всё, что написано в строчке после символа # является комментарием.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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