Установка пакетов для опытных пользователей Введение В современных системах на базе Linux существует огромное число общих ресурсов: разделяемых библиотек, содержащих стандартные функции, исполняемые файлы, сценарии и стандартные утилиты и т.д. Этими общими ресурсами пользуются сразу несколько программ. Удаление или изменение версии одного из составляющих систему компонентов может повлечь неработоспособность других, связанных с ним компонентов, или может привести к выводу из строя всей системы. В контексте системного администрирования проблемы такого рода называют нарушением целостности системы. Задача администратора — обеспечить наличие в системе согласованных версий всех необходимых программных компонентов (обеспечение целостности системы). Для установки, удаления и обновления программ, а также поддержания целостности системы в Linux в первую очередь стали использоваться программы менеджеры пакетов (например, такие, как rpm). С точки зрения менеджера пакетов программное обеспечение представляет собой набор компонентов — программных пакетов. Пакеты содержат в себе набор исполняемых программ и вспомогательных файлов, необходимых для корректной работы программного обеспечения. Менеджеры пакетов облегчают установку программ: они позволяют проверить наличие необходимого для работы устанавливаемой программы компонента подходящей версии непосредственно в момент установки. Менеджеры пакетов производят необходимые процедуры для регистрации программы во всех операционных средах пользователя: сразу после установки программа становится доступна пользователю из командной строки и появляется, если это было предусмотрено, в меню приложений всех графических оболочек. Часто компоненты, используемые различными программами, выделяют в отдельные пакеты и помечают, что для работы ПО, предоставляемого пакетом A, необходимо установить пакет B. В таком случае говорят, что пакет A зависит от пакета B или между пакетами A и B существует зависимость. Отслеживание зависимостей между такими пакетами представляет собой важную задачу для любого дистрибутива. Некоторые компоненты пакетов могут быть взаимозаменяемыми, т.е. может обнаружиться несколько пакетов, предлагающих затребованный ресурс. Ещё более сложной является задача контроля целостности и непротиворечивости установленного в системе ПО. Представим, что некие программы A и B требуют наличия в системе компонентов C версии 1.0. Обновление версии пакета A, требующее обновления компонентов C до новой версии (например, до версии 2.0, использующей новый интерфейс доступа), влечёт за собой обязательное обновление и программы B. На практике менеджеры пакетов оказались неспособны эффективно устранить нарушения целостности системы и предотвратить все коллизии при установке или удалении программ. Особенно остро этот недостаток сказался на обновлении систем из централизованного репозитория, в котором пакеты непрерывно обновляются, дробятся на более мелкие и т.п. Именно этот недостаток стимулировал создание систем управления программными пакетами и поддержания целостности ОС. Для автоматизации и контроля описанных выше процессов стала применяться Усовершенствованная система управления программными пакетами APT (от англ. Advanced Packaging Tool). Автоматизация и контроль достигаются путём создания одного или нескольких внешних репозиториев. В них хранятся доступные для установки пакеты программ. В распоряжении APT находятся две базы данных: одна описывает установленные в системе пакеты, вторая — внешний репозиторий. APT отслеживает целостность установленной системы и, в случае обнаружения противоречий в зависимостях пакетов, разрешает конфликты, находит пути их корректного устранения, руководствуясь сведениями из внешних репозиториев. Система APT состоит из нескольких утилит. Чаще всего используется утилита управления пакетами apt-get. Она автоматически определяет зависимости между пакетами и строго следит за её соблюдением при выполнении любой из следующих операций: установка, удаление или обновление пакетов. Источники программ (репозитории) Отличие репозиториев, с которыми работает APT, от простого набора пакетов — наличие метаинформации. В ней содержится индекс находящихся в репозитории пакетов и сведения о них. Поэтому, чтобы получить всю информацию о репозитории, APT достаточно получить его индексы. APT может пользоваться любым количеством репозиториев одновременно, формируя единую информационную базу обо всех содержащихся в них пакетах. При установке пакетов APT обращает внимание только на название пакета, его версию и зависимости. Для APT не имеет значения расположение пакета в том или ином репозитории. Для одновременного подключения нескольких репозиториев необходимо отслеживать их совместимость друг с другом, т.е. их пакетная база должна отражать один определённый этап разработки. Совместное использование репозиториев, относящихся к разным дистрибутивам, или смешивание стабильного репозитория с нестабильной веткой разработки (Sisyphus) может привести к различными неожиданностям и трудностям при обновлении пакетов. APT осуществляет взаимодействие с репозиториями при помощи различных протоколов доступа. Наиболее популярные — HTTP и FTP. Для того чтобы APT мог использовать тот или иной репозиторий, информацию о нём необходимо поместить в файл /etc/apt/sources.list, либо в любой файл .list (например, mysources.list) в каталоге /etc/apt/sources.list.d/. Описания репозиториев заносятся в эти файлы в следующем виде: Здесь: rpm или rpm-src — тип репозитория (скомпилированные программы или исходные тексты); [подпись] — необязательная строка-указатель на электронную подпись разработчиков. Наличие этого поля подразумевает, что каждый пакет из данного репозитория должен быть подписан соответствующей электронной подписью. Подписи описываются в файле /etc/apt/vendor.list; метод — способ доступа к репозиторию: ftp, http, file, rsh, ssh, cdrom, copy; путь — путь к репозиторию в терминах выбранного метода; база — относительный путь к базе данных репозитория; название — название репозитория. Для добавления в sources.list репозитория на компакт-диске в APT предусмотрена специальная утилита — apt-cdrom. Чтобы добавить запись о репозитории на компакт-диске, достаточно вставить диск в привод и выполнить команду apt-cdrom . После этого в sources.list появится запись о подключённом диске примерно такого вида: После того как отредактирован список репозиториев в sources.list, необходимо обновить локальную базу данных APT о доступных пакетах. Это делается командой apt-get . Если в sources.list присутствует репозиторий, содержимое которого может изменяться (например, постоянно разрабатываемый репозиторий или репозиторий обновлений по безопасности), то прежде чем работать с APT, необходимо синхронизировать локальную базу данных с удалённым сервером командой apt-get . Локальная база данных создаётся заново при каждом изменении в репозитории: добавлении, удалении или переименовании пакета. При установке определённого пакета APT производит поиск самой новой версии этого пакета во всех известных ему репозиториях вне зависимости от способа доступа к ним. Так, если в репозитории, доступном в сети Интернет, обнаружена более новая в сравнении с компакт-диском версия программы, то APT начнёт загружать соответствующий пакет из сети Интернет. Поэтому, если подключение к сети Интернет отсутствует или ограничено низкой пропускной способностью канала или высокой стоимостью, то следует закомментировать строчки (добавить в начало строки символ #) в /etc/apt/sources.list, относящиеся к ресурсам в сети Интернет. Репозитории ALT Linux Все дистрибутивы ALT Linux выпускаются на основе репозитория Sisyphus команды ALT Linux Team (). Sisyphus не является самостоятельным дистрибутивом. Sisyphus — репозиторий, отражающий текущее состояние разработки, поэтому он может содержать нестабильные версии пакетов. На базе этого проекта выпускаются отдельные протестированные «срезы» — дистрибутивы. В отличие от Sisyphus, ежедневно обновляемого разработчиками, такие срезы являются «замороженными» — разработка в них не ведётся, а сами срезы сохраняются в целях обеспечения целостности среды дистрибутива. Непосредственно после установки дистрибутива ALT Linux в /etc/apt/sources.list, а также в файлах /etc/apt/sources.list.d/*.list обычно указывается несколько репозиториев: репозиторий с установочного диска дистрибутива; интернет-репозиторий, совместимый с установленным дистрибутивом. Добавление репозиториев с использованием терминала
apt-repo Вы можете воспользоваться скриптом apt-repo. Для этого вам потребуется запустить терминал и вводить команды в него. Необходимы права администратора для выполнения большинства команд. Глянуть список активных репозиториев можно командой apt-repo list. Для добавления репозитория в список активных репозиториев используйте apt-repo . Для удаления или выключения репозитория используйте apt-repo . Для обновления информации о репозиториях выполните apt-repo . Для более подробной справки используйте man или apt-repo .
Добавление репозиториев вручную Вы можете отредактировать в любом текстовом редакторе файлы из папки /etc/apt/sources.list.d/. Необходимы права администратора для изменения этих файлов. В файле alt.list может содержаться такая информация: По сути, каждая строчка соответствует некому репозиторию. В примере из текста выше видно, что перед 3 строчками нету решётки. Именно эти строчки и будут выбранными репозиториями. Если вы не хотите пользоваться этими репозиториями, просто допишите решётку перед ними. Если вы хотите использовать другие репозитории, то вы можете дописать их вниз этого или любого другого файла. После добавления репозиториев обновите информацию о них: Запустите терминал и выполните команду apt-get или apt-repo . Необходимы права администратора для выполнения этих команд. О добавлении или удалении репозиториев с использованием графических приложений вы можете почитать в .
Поиск пакетов Если вы не знаете точного названия пакета, то для его поиска можно воспользоваться утилитой apt-cache. Данная утилита позволяет искать пакет не только по имени, но и по его описанию. Команда apt-cache позволяет найти все пакеты, в именах или описании которых присутствует указанная подстрока. Например: $ apt-cache search dictionary stardict-wn - GCIDE - The Collaborative International Dictionary of English firefox-ru - Russian (RU) Language Pack for Firefox gnome-dictionary-applet - GNOME panel applet for gnome-dictionary gnome-utils - Utilities for the GNOME 2.0 desktop libgdict - GNOME Dictionary Library. stardict-mueller7 - V.K. Mueller English-Russian Dictionary, 7 Edition: stardict format stardict-slovnyk_be-en - Dictionary: Slovnyk Belarusian-English stardict-slovnyk_be-ru - Dictionary: Slovnyk Belarusian-Russian stardict-slovnyk_be-uk - Dictionary: Slovnyk Belarusian-Ukrainian stardict-slovnyk_cs-ru - Dictionary: Slovnyk Czech-Russian stardict-slovnyk_en-be - Dictionary: Slovnyk English-Belarusian stardict-slovnyk_en-ru - Dictionary: Slovnyk English-Russian stardict-slovnyk_en-uk - Dictionary: Slovnyk English-Ukrainian stardict-slovnyk_es-ru - Dictionary: Slovnyk Spanish-Russian stardict-slovnyk_ru-be - Dictionary: Slovnyk Russian-Belarusian stardict-slovnyk_ru-cs - Dictionary: Slovnyk Russian-Czech stardict-slovnyk_ru-en - Dictionary: Slovnyk Russian-English stardict-slovnyk_ru-es - Dictionary: Slovnyk Russian-Spanish stardict-slovnyk_ru-uk - Dictionary: Slovnyk Russian-Ukrainian stardict-slovnyk_uk-be - Dictionary: Slovnyk Ukrainian-Belarusian stardict-slovnyk_uk-en - Dictionary: Slovnyk Ukrainian-English stardict-slovnyk_uk-ru - Dictionary: Slovnyk Ukrainian-Russian words - A dictionary of English words for the /usr/share/dict directory Для того чтобы подробнее узнать информацию о найденном пакете и получить его подробное описание, воспользуйтесь командой apt-cache : $ apt-cache show stardict-mueller7 Package: stardict-mueller7 Section: Text tools Installed Size: 3095255 Maintainer: Anton V. Boyarshinov <boyarsh@altlinux.ru> Version: 1.0-alt7 Pre-Depends: rpmlib(PayloadIsLzma) Depends: stardict (>= 2.4.2) Provides: stardict-mueller7 (= 1.0-alt7) Architecture: noarch Size: 3135276 MD5Sum: ea95c67ca323350b454fbc26533c3548 Filename: stardict-mueller7-1.0-alt7.noarch.rpm Description: V.K. Mueller English-Russian Dictionary, 7 Edition: stardict format Electronic version of V.K. Mueller English-Russian Dictionary, 7 Edition in stardict format. You can use it with stardict client. При поиске с помощью apt-cache можно использовать русскую подстроку. В этом случае будут найдены пакеты, имеющие описание на русском языке. К сожалению, описание на русском языке в настоящее время есть не у всех пакетов, но наиболее актуальные описания переведены. Установка или обновление пакета Установка пакета с помощью APT выполняется командой # apt-get . Для установки пакетов требуются привилегии администратора. apt-get позволяет устанавливать в систему пакеты, требующие для работы наличие других, пока ещё не установленных пакетов. В этом случае он определяет, какие пакеты необходимо установить. apt-get устанавливает их, пользуясь всеми доступными репозиториями. Установка пакета stardict-mueller7 командой apt-get приведёт к следующему диалогу с APT: # apt-get install stardict-mueller7 Чтение списков пакетов... Завершено Построение дерева зависимостей... Завершено Следующие НОВЫЕ пакеты будут установлены: stardict-mueller7 0 будет обновлено, 1 новых установлено, 0 пакетов будет удалено и 0 не будет обновлено. Необходимо получить 0B/3135kB архивов. После распаковки потребуется дополнительно 3095kB дискового пространства. Совершаем изменения... Preparing... ####################### [100%] 1: stardict-mueller7 ####################### [100%] Running /usr/lib/rpm/posttrans-filetriggers Завершено. Команда apt-get используется также и для обновления уже установленного пакета или группы пакетов. В этом случае apt-get дополнительно проверяет, есть ли обновлённая, в сравнении с установленной в системе, версия пакета в репозитории. При помощи APT можно установить и отдельный rpm- пакет, не входящий в состав репозиториев (например, полученный из сети Интернет). Для этого достаточно выполнить команду apt-get . При этом APT проведёт стандартную процедуру проверки зависимостей и конфликтов с уже установленными пакетами. Иногда в результате операций с пакетами без использования APT целостность системы нарушается, и apt-get отказывается выполнять операции установки, удаления или обновления. В этом случае необходимо повторить операцию, задав опцию , заставляющую apt-get исправить нарушенные зависимости, удалить или заменить конфликтующие пакеты. В этом случае необходимо внимательно следить за сообщениями, выводимыми apt-get. Любые действия в этом режиме обязательно требуют подтверждения со стороны пользователя. Удаление установленного пакета Для удаления пакета используется команда apt-get . Для того чтобы не нарушать целостность системы, будут удалены и все пакеты, зависящие от удаляемого. В случае удаления пакета, который относится к базовым компонентам системы, apt-get потребует дополнительное подтверждение с целью предотвращения возможной случайной ошибки. Для удаления пакетов требуются привилегии администратора. При попытке с помощью apt-get удалить базовый компонент системы, вы увидите следующий запрос на подтверждение операции: # apt-get remove filesystem Чтение списков пакетов... Завершено Построение дерева зависимостей... Завершено Следующие пакеты будут УДАЛЕНЫ: ... ВНИМАНИЕ: Будут удалены важные для работы системы пакеты Обычно этого делать не следует. Вы должны точно понимать возможные последствия! ... 0 будет обновлено, 0 новых установлено, 2648 пакетов будет удалено и 0 не будет обновлено. Необходимо получить 0B архивов. После распаковки будет освобождено 8994MB дискового пространства. Вы делаете нечто потенциально опасное! Введите фразу 'Yes, do as I say!' чтобы продолжить. Каждую ситуацию, в которой APT выдаёт такой запрос, необходимо рассматривать отдельно. Вероятность того, что после выполнения этой команды система окажется неработоспособной, очень велика. Обновление всех установленных пакетов Для обновления всех установленных пакетов используется команда apt-get .Она позволяет обновить только те установленные пакеты, для которых в репозиториях, перечисленных в /etc/apt/sources.list, имеются новые версии. В случае обновления всего дистрибутива APT проведёт сравнение системы с репозиторием и удалит устаревшие пакеты, установит новые версии присутствующих в системе пакетов, отследит ситуации с переименованиями пакетов или изменения зависимостей между старыми и новыми версиями программ. Всё, что потребуется поставить (или удалить) дополнительно к уже имеющемуся в системе, будет указано в отчёте apt-get, которым APT предварит само обновление.