Алексей Федорчук - Погружение в Salix
- Название:Погружение в Salix
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Алексей Федорчук - Погружение в Salix краткое содержание
Эта электронная книжка, aka e-book, посвящена дистрибутиву Salix – одному из «клонов» Slackware. Он интересен и сам по себе. Но также и тем, что среди всех потомков старейшего из выживших дистрибутивов он в наибольшей степени наследует особенности родительской системы. И потому знакомство с ним может рассматриваться (в том числе и) как самый быстрый и простой метод вхождения в мир Slackware. Ибо фраза «Если ты знаешь Slackware – ты знаешь Linux» до сих пор не потеряла своей актуальности.
Настоящая книжка не является руководством по Salix, Slackware или, тем более, по Linux'у вообще. Нет, это описание дистрибутив-специфических особенностей Salix'а – тех, которые показались мне интересными, и которые я задействовал в своей практической работе.
Основу книжки составили заметки о Salix на Блогосайте и цикл статей, размещённых на IBM developerWorks (содержание его здесь). Ныне они исправлены, дополнены и причёсаны, так что полного совпадения с материалами, ранее размещёнными на указанных ресурсах, нет.
Непосредственным стимулом к оформлению всех изложенных материалов послужило желание моего сына Виктора погрузиться в Salix самому и приобщить к нему сестру Ольгу. Так что им эта e-book'а и посвящается.
Погружение в Salix - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:

Рисунок 6-3. Дистрибутив-специфическая ветка репозитория Salix
Отправившись «глубже», в подкаталог salix, можно обнаружить серии пакетов, в том числе и специфические для дистрибутива, например, серию mate, а в ней – отдельные пакеты. Но здесь на каждый индивидуальный пакет приходится уже пять файлов. Например, для пакета caja (файловый менеджер – форк Nautilus из GNOME2) это будут:
caja-extensions-1.8.0-x86_64-1gv.dep caja-extensions-1.8.0-x86_64-1gv.md5 caja-extensions-1.8.0-x86_64-1gv.meta caja-extensions-1.8.0-x86_64-1gv.txt caja-extensions-1.8.0-x86_64-1gv.tx
Содержимое трёх из них (*.txz, *.txt и *.md5) мы уже знаем, а что же такое файлы *.dep и *.meta? Узнать это легко, если их просмотреть. Первый – это описание тех самых пресловутых зависимостей для пакета:
atk,bzip2,cairo,cxxlibs|gcc-g++,dconf...
А файл *.meta – результирующая метаинформация:
PACKAGE NAME: caja-extensions-1.8.0-x86_64-1gv.txzPACKAGE LOCATION: ./salix/mate PACKAGE SIZE (compressed): 78 K PACKAGE SIZE (uncompressed): 312 K PACKAGE REQUIRED: atk,bzip2,cairo,cxxlibs|gcc-g++,dconf,expat,fontconfig,freetype,gcc,gdk-pixbuf2,glib2,gtk+2,harfbuzz,icu4c,libX11,libXau,libXcomposite,
libXcursor,libXdamage,libXdmcp,libXext,libXfixes,libXi,libXinerama,libXrandr,libXrender,libXxf86vm,libdrm,libffi,libpng,libxcb,mate-desktop,mate-file-manager,mesa,pango,pixman,startup-notification,udev,xcb-util,zlib PACKAGE CONFLICTS: PACKAGE SUGGESTS: ...
Можно видеть, что она включает в себя не только «жёсткие» зависимости (PACKAGE REQUIRED), но может описывать и зависимости опциональные («мягкие» – PACKAGE SUGGESTS), а также конфликтующие пакеты, если те и другие имеются (в примере их нет). Именно благодаря этой метаинформации slapt-get может не только отслеживать зависимости пакетов при их установке, но и разрешать их автоматически.
И тут читатель вправе задать вопрос: если «специфическая» часть репозитория охватывает меньшинство пакетов Salix, а большинство их берётся с зеркала репозитория Slackware, то как зависимости контролируются для них? Ведь там в сериях пакетов мы не видели и намёка на описания зависимостей.
Для ответа на этот вопрос достаточно обратиться к каталогу /x86_64/slackware-14.1, родительскому по отношению к тому, что был приведён на рис. 2. И там обратить внимание на подкаталог dep.

Рисунок 6-4. Основные каталоги ветки Slackware
Зайдя в него, можно обнаружить множество файлов с маской *.dep – по суммарному количеству пакетов в ветке Slackware. В них-то и описаны зависимости для пакетов, заимствованных из прародительского репозитория, ни о каких зависимостях и не подозревающего. Например, в файле zsh.dep можно увидеть следующее:
gdbm,ncurses
Наличие подкаталога с файлами зависимостей – второе (наряду с составом пакетов) отличие ветки Slackware в репозитории Salix отличие последнего от официального репозитория «головного» дистрибутива.
Ну а вынесены эти файлы в отдельный подкаталог из соображений, можно сказать, этических: дабы сохранить структуру ветки, заимствованной из Slackware, в неприкосновенности. То есть подкаталог /x86_64/slackware-14.1/deps – своего рода мега-патч для репозитория, обеспечивающий контроль зависимостей в хранилище пакетов, изначально на это не рассчитанном.
Заодно можно ответить и на другой вопрос: почему slapt-get не получил широкого распространения в самой Slackware и, за некоторыми исключениями, в её клонах? Первая часть ответа очевидна: в официальном репозитории исходного дистрибутива никаких описаний зависимостей не содержится. И в этом случае slapt-get теряет большинство своих преимуществ – более эффективной системой управления пакетами оказывается slackpkg. Для разработчиков же любых клонов Slackware включить slapt-get в штатный комплект своего дистрибутива недостаточно: надо также создать репозиторий с поддержкой зависимостей, а главное – поддерживать его в актуальном состоянии. Что, понятно, является нелёгкой и не очень увлекательной работой, к которой мало кто из энтузиастов оказался готов. Насколько я знаю, единственный, кроме Salix, дистрибутив, где такая работа ведётся – это Vector Linux. Но он и создавался изначально как система, предназначенная, в том числе, и для коммерческого распространения.
Настройка slapt-get
Теперь, зная, как устроены репозитории Salix, можно вернуться к утилите slapt-get – точнее, к её настройке. Потому что большая часть последней – как раз и есть обеспечение доступа к репозиториям.
Все настройки slapt-get хранятся в файле /etc/slapt-get/slapt-getrc. Это простой текстовый файл, который можно условно разделить на три неравные секции.
Первая секция самая маленькая, и состоит из одной строки, определяющей каталог для локального кеша репозиториев и мета хранения устанавливаемых пакетов. По умолчанию это
WORKINGDIR=/var/slapt-get
И менять её без веских оснований не следует (я таких оснований не вижу). А вот посмотреть на её содержимое не вредно:
$ ls /var/slapt-getpackage_data patches/ salix/ slackware64/
Самое главное здесь – файл package_data: это «интегрированная» локальная копия файлов PACKAGES.TXT всех подключённых репозиториев, создаваемая командой
$ sudo slapt-get —update
Тот самый файл, без которой slapt-get отказывается выполнять какие-либо иные действия.
Назначение подкаталогов очевидно: в них хранятся скачанные при установке пакеты из соответствующих ветвей репозитория, с разбивкой на серии. О чём следует помнить, если возникнет необходимость переноса пакетов на машину, не имеющую подключения к сети.
Вторая секция также содержит единственную строку, хотя и несколько более длинную:
^rootuser-settings,^zzz-settings.*,-i?86-
Это – те самые исключения, то есть маски имён пакетов, не затрагиваемых обновлениями по команде
$ sudo slapt-get --upgrade
А также – автоматическими обновлениями, о которых будет говориться в части седьмой. Удалять из этой строки ничего не следует. При необходимости обновить, например, ядро системы это можно сделать, явным образом добавив опцию --ignore-excludes к команде установки пакета, например:
$ sudo slapt-get --install --ignore-excludes kernel-huge
А вот необходимость пополнить список исключений может возникнуть – например, пакетам, имеющимися в штатном репозитории, но собственноручно пересобранными с какими-либо специфическими опциями.
Наконец, третья секция – это список доступных репозиториев. По умолчанию он выглядит так (если при первичной установке не было выбрано другое зеркало):
# The Slackware repositories, including dependency informationSOURCE=http://salix.hostingxtreme.com/x86_64/slackware-14.1/:OFFICIAL SOURCE=http://salix.hostingxtreme.com/x86_64/slackware- 14.1/extra/:OFFICIAL # The Salix repository SOURCE=http://salix.hostingxtreme.com/x86_64/14.1/:PREFERRED # Local repositories # SOURCE=file:///var/www/packages/:CUSTOM
И если, повторяю, при инсталляции не было выбрано зеркало, отличное от «умолчального», эту секцию править можно, а скорее всего, и нужно: сервер HoaringXtreme в наших условиях не поражает скоростью доступа к нему.
На странице Repository mirrorsсайта проекта приведён список всех зеркал мастер-репозитория Salix. Для тех, что доступны по протоколу HTTP, я с помощью утилиты ping проверил время отклика – результаты сведены в таблице.
Читать дальшеИнтервал:
Закладка: