Алексей Федорчук
Эта заметка начинает серию, посвящённую графическим инструментам управления пакетами в дистрибутивах семейства Ubuntu на примере одного из его представителей — Xubuntu. Однако думается, что всё здесь сказанное имеет силу и для собственно Ubuntu, и для всех его сородичей и потомков (типа Mint’а) — за исключением вариантов, использующих KDE в качестве десктопа по умолчанию.
Так уж сложилось, что с самого начала своего линуксопользования и до недавнего времени я, в какой бы системе ни работал, использовал исключительно средства пакетного менеджмента, работающие из командной строки. Всякого рода YAST’ы и их аналоги из Mandrake/Mandriva, вроде rpmdrake, прошли мимо меня. В бытность пользователем deb-based дистрибутивов я вроде бы освоился с aptitude в интерактивном режиме (и даже сочинил нечто вроде статьи про неё), однако предпочтение всё равно отдавал режиму командному, о чём также отчитался. А когда возвращался к Ubuntu’идам после перерыва — оказывалось, что все приёмы работы с aptitude оказывались напрочь забытыми. И я обращался к старому доброму apt’у сотоварищи — по непонятной причине, его команды западали в память гораздо лучше.
Будучи пользователем Kubuntu, я было попробовал приобщиться графического менеджера пакетов, штатного для этого дистрибутива — Adept’а, но в те времена (2005-2006 годы) он не показывал чудес стабильности, и я это дело забросил.
Изменить моё отношение к графическим менеджерам пакетов заставил Zenwalk. Поначалу и в нём я пользовался исключительно netpkg в режиме командной строки. Пока однажды не обнаружил, что Xnetpkg — казалось бы, просто графическая надстройка над текстовой утилитой, — почти во всех случаях удобнее, а кое в чём (например, в отношении поиска пакетов, в том числе обновлённых), как ни странно, и функциональнее.
Поэтому, окончательно утвердив на своём десктопе Xubuntu, после вполне неудачного эксперимента с конструированием посредством apt-get, я решил обратиться к штатному пакетному менеджеру этого дистрибутива — synaptic’у. Поскольку он был унаследован от основного дистрибутива семейства — собственно Ubuntu, у него был репутация закалённого и отточенного орудия для управления пакетами; забегая вперёд, замечу, что репутация эта оказалась вполне заслуженной.
Итак, synaptic. Это — графический фронт-энд для утилит семейства apt (Advanced Packaging Tool), обычно используемыми для работы с пакетами deb-формата, но частично могущими быть прикрученными и к пакетам rpm. Зародился synaptic, однако, не в лоне Ubuntu, и даже не в Debian: первые его версии были созданы в бразильском дистрибутиве Conectiva — том самом, разработчики которого впервые прикрутили apt-get для управления rpm-пакетами (под именем apt-rpm). Создателем synaptic’а был, насколько мне удалось выяснить, Альфредо Кодзима (Alfredo Kojima), а позднее им занимался Густаво Нимейер (Gustavo Niemeyer), оба бывшие тогда, на рубеже тысячелетий, сотрудниками фирмы Conectiva. И именно и исключительно фронт-эндом к apt-rpm и выступал synaptic в начальную пору своей жизни.
После покупки Connectiva фирмой Mandrakesof (в январе 2005 года) связка apt-rpm и synaptic была благополучно похерена в недрах объединённой Mandriva — в пользу собственных инструментов, urpmi и её надстройки rpmdrake. Однако сама идея оказалась очень продуктивной — и ещё в 2001 году и apt-rpm, и synaptic были инкорпорированы в первый дистрибутив, выпущенный только что образовавшейся фирмой Altlinux (в девичестве IPLabs Linux Team) — Linux Mandrake RE Spring 2001. С которого, собственно, и началось коренное отщепление будущих дистрибутивов Altlinux от прародительского Mandrake.
В том же 2001 году Michael Vogt (не зная его национальной принадлежности, транскрибировать фамилию не берусь) «дебианизировал» synaptic, приспособив его для работы с собственно deb-пакетами. Хотя Фогт и по сей день является основным майнтайнером upstream-версии пакета, среди пользователей Debian’а, насколько мне известно, он широкого распространения не получил — предпочтение здесь отдавалось сначала собственно apt-утилитам, а затем и поныне — aptitude.
Звёздный час synaptic’а наступил с появлением в октябре 2004 года первой версии Ubuntu. Будучи основанным на библиотеке Gtk, он сразу и гармонично вписался в GNOME-окружение этого дистрибутива, а в дальнейшем, в июне 200 года, был включён в состав его отпрыска — Xubuntu. На примере коего и будет рассмотрен в настоящей заметке. Хотя есть сильное подозрение, что всё сказанное относится и к собственно Ubuntu.
Как уже говорилось, synaptic — это интегрирующая надстройка над утилитами семейства apt, и предоставляет все функции, обеспечиваемые командами apt-get и apt-cache, а именно:
- поиск пакетов в репозиториях с определением их статуса;
- их установку и обновление с автоматическим разрешением зависимостей;
- удаление пакетов, в том числе и включая их зависимости;
- обновление базы данных пакетов из репозитория;
- тотальное обновление системы.
Кроме того, synaptic включает средства настройки — в частности, доступа к репозиториям, которые при использовании «чистого» apt’а выполняются обычно ручной правкой файла /etc/apt/sources.list.
Запуск synaptic’а выполняется через главное меню панели приложений (Система -> Менеджер пакетов synaptic) или через контекстное меню рабочего слота по щелчку правой кнопкой мыши (Приложения -> Система -> Менеджер пакетов synaptic).
Очевидно, что установка и удаление пакетов потребует прав администратора, запрос на получение каковых (посредством механизма sudo, то есть с вводом пользовательского пароля) и последует после вызова synaptic’а через меню. Если отказаться от ввода пароля, то synaptic запущен не будет.
Тем не менее, его можно запустить и от лица обычного пользователя — например, из командной строки терминала:
$ synaptic
В этом случае появится такое предупреждение:
Из которого явствует, что запущенный в пользовательском режиме synaptic можно использовать для поиска пакетов и получения информации о них.Тем не менее, нормальный режим работы synaptic’а — административный. И после ввода пароля пользователя (надо отметить, что по умолчанию во время появления панели для его ввода экран пригасает, а все управляющие элементы интерфейса блокируются) появляется окно примерно такого вида:
Как явствует из скриншота, в окне synaptic’а мы имеем следующие основные элементы интерфейса:
- строку меню;
- панель инструментальных кнопок;
- два главных фрейма — список разделов репозитория и список пакетов выбранного раздела (по умолчанию показываются все пакеты);
- фрейм с кнопками выбора критериев для вывода пакетов;
- фрейм свойств конкретного пакета.
Последний фрейм пуст, если в правом главном фрейме никакого выбора не было сделано, как на предыдущем скриншоте.
Если же такой произвести — в правом нижнем фрейме мы увидим краткую характеристику пакета (на английском) и информацию о его поддержке (на русском): поддерживается ли данный пакет непосредственно разработчиками Caninical или сообществом пользователей Ubuntu:
Если при этом нажать на кнопку Получить снимок экрана — то появится скриншот соответствующего пакета (буде таковой существует и имеет смысл):
Теперь пробежимся по критериям вывода пакетов. С группировкой пакетов по разделам всё более-менее ясно, тем более, что названия разделов почти все даны в русском переводе, а те немногие, что оставлены в оригинале (например, World Wide Web), и без перевода понятны.Следующий критерий отбора — по статусу пакетов. После нажатия соответствующей кнопки в левом главном фрейме выводятся следующие категории:
- все;
- не установленные;
- установленные;
- установленные (могут быть автоматически удалены).
С первыми тремя категориями ясно без комментариев. А вот четвёртая — самая интересная: это так называемые «осиротелые» (orphaned) компоненты, которые были установлены как зависимости пакетов, в дальнейшем удалённых, и потому ныне в системе не используемые:
При выводе пакетов по происхождению можно видеть такие категории, как:
- main — полностью свободные пакеты, официально поддерживаемые разработчиками Ubuntu;
- restricted — пакеты, также официально поддерживаемые дистрибутивом, но не вполне свободные;
- universe — полностью свободные программы, официально дистрибутивом не поддерживаемые и развивающиеся силами независимых разработчиков;
- multiverse — пакеты, аналогично universe официально не поддерживаемые и не вполне свободно распространяемые.
Под не вполне свободными пакетами понимаются программы, распространение которых может быть полностью или частично ограничиваться патентами и законами некоторых осталых стран — к счастью, Россия не принадлежит к их числу, и потому этот вопрос нас не волнует. Замечу только, что в категорию restricted, например, попадают проприетарные драйвера для видеокарт Nvidia и ATI/AMD (см. предыдущий скриншот), а в категорию multiverse — всякого рода мультимединые кодеки и фирменный флэш-плейер от Adobe.Что касается кнопок Специальные фильтры и Результаты поиска, то о них мы поговорим позднее.
А пока обратимся к спискам файлов, выводимых в правом главном фрейме. Если поглядеть на него внимательно, то слева можно увидеть две колонки иконок, причём вторая может либо изображать микро-логотип Ubuntu, либо быть пустой. Факт наличия микро-логотипа указывает, что данный пакет поддерживается официально разработчиками дистрибутива (сиречь фирмой Canonical, в некотором роде). А отсутствие пиктограммы во второй колонке говорит о том, что пакет либо поддерживается сообществом (точнее, некими конкретными его представителями), либо, в рамках дистрибутива, не поддерживается вообще.
Пиктограммы же первой колонки отражают статус пакет: установленный (зелёный квадратик), не установленный (квадратик не залитый), и так далее. Полную расшифровку значений пиктограмм можно получить через систему встроенной помощи: меню Справка -> Описание значков:
По щелчку правой кнопкой мыши на строке любого пакета вызывается контекстное меню:
Их этого снапшота можно видеть, что для установленного пакета активизированы пункты:
- отметить для повторной установки — то есть реинсталляции;
- отметить для удаления — удаление данного пакета, без конфигурационных файлов;
- отметить для полного удаления — удаление данного пакета вместе с его конфигами, но не затрагивая зависимостей;
- свойства — его мы рассмотрим чуть позже.
Для пакета не установленного доступны пункты:
- отметить для установки — понятно без комментариев;
- свойства — то же самое, что и для установленного пакета;
- отметить для установки рекомендуемые (recommended) и предлагаемые (suggest) пакеты — оба эти пункта зависят от общих настроек synaptic’а, и мы к ним ещё вернёмся.
Пункт Свойства контекстного меню вызывает панель со следующими закладками:
- Общее;
- Зависимости;
- Установленные файлы;
- Версии;
- Описание.
Во вкладке Общее выводятся такие сведения, как имя пакета, его статус, приоритет, принадлежность к разделу, номера версий — установленной (при соответствующем статусе) и доступной из репозитория:
Вкладка Зависимости, как легко догадаться, выводит имена пакетов, от которых зависит данный, и номера их версий — в грамотно собранном пакете указывается минимально возможная и выше.
Во вкладке Установленные файлы выводится список всех компонентов данного пакета с их полными путями:
Очевидно, что её содержание отображается только для установленных пакетов.
Во вкладке Версии, разумеется, указывается номер версии данного пакета и партийная кличка версии дистрибутива, для которого он собран (в примере подразумевается Лихой Кролень):
Наконец, во вкладке Описание приводится то же самое, что содержится в правом нижнем фрейме окна synaptic’а — и также с возможностью отображения скриншота программы, буде таковой имеется:
Если для данной программы скриншот отсутствует или не имеет смысла (как для пакета из настоящего примера) — об этом нас информируют явным образом:
Подчеркну, что все действия через контекстное меню не влекут за собой немедленной установки, обновления или удаления пакетов: на каждое из них будет в дальнейшем запрошено подтверждение.
Теперь двинемся вверх по основным элементам интерфейса главного окна synapеic’а. Как уже говорилось, выше двух главных фреймов обнаруживается инструментальная панель, а на ней кнопки:
- Обновить — это ни что иное, как перечитывание базы данных репозиториев пакетов, тех, которые были определены в настройках (о чем будет говориться далее):
- Отметить для обновления — апгрейд всех пакетов, версии которых изменились после выполнения предыдущего действия; список таких пакетов будет выведен на отдельной панели:
- Применить — предложение выполнить над пакетами, отмеченными для установки, обновления или удаления, соответствующие действия, ещё раз предваряемое выводом списка пакетов, подлежащих экзекуции:
- кнопка Подробнее на этой панели позволит увидеть, с каких версий до каких будет произведён апгрейд:
- Свойства — вызывает ту же самую панель, что и пункт Свойства контекстного меню.
О поиске стоит поговорить отдельно. Поле Быстрый поиск предназначено для обычного наращиваемого поиска в списке правого главного фрейма в соответствие с разделами, выбранными во фрейме левом. То есть, если в последнем выбрать раздел Все, а в поле ввести gnu, мы получим список всех пакетов, начинающихся с этих символов:
Если же мы укажем точное (или предполагаемое) имя пакета (например, gnumeric), то получим список всех пакетов, непосредственно с ним связанных:
Обращаю внимание на последнюю строку в выводе результатов поиска на скриншоте: ни в имени этого пакета, ни в его кратком описании слова gnumeric мы не увидим. Ибо быстрый поиск осуществляется также и в полных описаниях — тех самых, которые выводятся в нижнем правом фрейме (или в закладке Общие панели Свойства).А вот кнопка Найти как раз и позволяет варьировать область поиска и его критерии:
Как видно из скриншота, по умолчанию поиск проводится в именах пакетов и их описаниях. Однако обасть поиска можно ограничить только именами. Кроме того, поиск можно выполнять по имени майнтайнера пакета, номеру версии, зависимым или предоставляемым (suggest) пакетам:
Наконец, самый верхний интерфейсный элемент окна — строка главного меню. Однако на как раз на меню мы сейчас останавливаться не будем: смысл его пунктов в общих чертах понятен из названий, а о деталях мы поговорим, когда приступим к практическому использованию synaptic’а. Каковое составит предмет следующей заметки.
Отлично написано.
Я, кстати, тоже сначала пользовался aptitude (и чем дальше, тем больше в режиме ком. строки), но сначала использовал синаптик для поиска, потом для генерации списка закачек, а потом и для всего. :)
Кстати, в нём ещё довольно удобно сделана история установок.
Мне как то с самого начала моего покрения deb систем: ubuntu 7.10->debian etch->ubuntu 8.04-8.10->debian lenny гуй был не нужен, я себе в bashrc прописал алиасы нужные и без проблем всё быстро делаю
2 StraNNicK
> в нём ещё довольно удобно сделана история установок
___
Ага, я про неё в следующей заметке хочу написать