next up previous contents
следующий: 6 Система X Window выше: Русский Debian 3.0 FAQ предыдущий: 4 Настройка приложений   Оглавление

Вопросы

5 Управление пакетами

5.1 Что такое stable, testing, unstable ветки Debian ?

Это направления работы над Debian .

Раньше была ротация кодовых имен: например, Woody сперва был unstable, затем testing и теперь stable. Теперь эта ротация имеет место только в стабильном и тестируемом дистрибутивах. Принято решение нестабильный дистрибутив всегда называть Sid.

5.2 Что становится с предыдущими стабильными дистрибутивами?

Debian поддерживает предыдущий и текущий стабильный дистрибутивы. Более старые дистрибутивы попадают в архив. Над ними не осуществляется работа по исправлению ошибок.

5.3 Что такое experimental?

Это часть архива Debian , не входящая в официальный дистрибутив. В experimental находятся кандидаты на вхождение в Sid, которые не проходят по критериям качества или имеют серьезные конфликты зависимостей с другими пакетами.

5.4 Что такое non-free и contrib?

Debian это проект по созданию дистрибутива GNU/Linux, состоящего из свободного программного обеспечения. Требования к лицензии, по которым тот или иной продукт может считаться свободным, описаны в документе Debian Free Software Guides (DFSG).

Программное обеспечение, которое не является свободным, не может входить в официальную поставку Debian , и не является частью дистрибутива.

Тем не менее, проект Debian с целью избежания конфликта интересов с пользователями (которые не всегда ценят свою свободу), предоставляет свои ресурсы: файл-серверы, зеркала, система отслеживания ошибок, списки рассылки некоторым пакетам с несвободным ПО. Данные пакеты размещаются в части дистрибутива, имеющей название non-free. При сборке дистрибутива на CD принято non-free выделять в отдельный диск или не включать в дистрибутив вовсе.

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

5.5 Что такое система pools?

Раньше архив дистрибутива представлял из себя дерево каталогов, где пакеты были отсортированы по назначанию. Затем было принято решение для нестабильного и тестируемого дистрибутива использовать структуру типа pool/main/буква или libбуква/пакет.deb . Эта система оказалась очень удобной и гибкой. Поэтому теперь Debian будет иметь структуру этого класса для всех дистрибутивов.

5.6 Как добавить http или ftp зеркало Debian ?

Существуют два способа указания пути к архиву пакетов Debian .

В случае если вам нужно указать путь к архиву пакетов Debian , построенному в виде стандартной структуры (например, официальное зеркало), надо в файл /etc/apt/sources.list добавить строку вида:

deb protocol://host branch sections

deb-src protocol://host branch sections

где:

пример:

deb http://debian.psu.ru stable main contrib non-free

deb-src http://debian.psu.ru stable main contrib non-free

Если же вам нужно указать путь к каталогу с пакетами (например программа, не являющаяся частью Debian ), то следует внести в файл /etc/apt/sources.list следующие строки:

deb protocol://host/path path-to-archive/ deb-src protocol://host/path path-to-archive/

где:

пример:

deb ftp://people.debian.org/~schoepf/kde3/woody ./

deb-src ftp://people.debian.org/~schoepf/kde3/woody ./

Строка deb-src не обязательна, и нужна только в случае, если вы собираетесь самостоятельно перекомпилировать какой либо пакет.

Более подробную информацию вы можете найти в документации на apt и в списках рассылки Debian , посвященных созданию ``вспомогательных'' депозитариев Debian .

5.7 Я добавил новую строку в /etc/apt/sources.list но пакеты не ставятся!

Вы наверное забыли после этого выполнить команду apt-get update. Если эта команда выдает сообщения об ошибках, читайте документацию на apt(8), и проверяйте.

5.8 Как добавить компакт-диск с депозитарием?

Если компакт диск создан стандартными средствами и имеет стандартную структуру каталогов Debian (например, любой из дисков созданных debian-cd или jigdo), достаточно ввести команду

apt-cdrom add

и ``познакомить'' apt с новым диском.

5.9 Как получить образы компакт-дисков Debian ?

Можно скачать ISO9660 образы дисков на любом из зеркал, которое вы найдете на сайте Debian, но готовы ли вы к тому, что после скачивания образа в 650 мегабайт, его md5 сумма будет неправильной? :)

Существуют два более приятных способа заполучить образы дисков Debian :

В России CD и DVD с копией официальных дисков Debian можно купить в Linuxshop и LinuxCenter, а также во многих других местах, о которых я хотел бы написать здесь, если найдутся желающие :)

Если же вы решили скачать образы Debian , настоятельно рекомендую воспользоваться программой jigdo. Она есть как под практически любой *NIX, так и под Windows. Ее принцип работы заключается в том, что вы должны скачать ``заготовку'' диска в ~50 мегабайт, и указать зеркало с которого скачать файлы дистрибутива. jigdo самостоятельно скачает файлы, сложит их определенном месте для дальнейшего использования, а затем соберет из них диск идентичный тому, с которого делалась заготовка, что и подтвердит затем, проверив md5 сумму.

Используя jigdo и имея поблизости хорошее зеркало Debian вы сможете иметь всегда диски со свежим testing или диски с той или иной альтернативной комплектацией.

5.10 Как обновить программное обеспечение?

Если вы правильно указали источники пакетов в /etc/sources.list и выполнили команду apt-get update , достаточно выполнить команду apt-get dist-upgrade.

5.11 Как поставить пакет?

Выполните команду

apt-get install имя_пакета

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

В случае, если вы имеете просто файл пакета, и уверены, что все зависимости удовлетворены, можно установить пакет командой

dpkg -i имя_пакета.deb

5.12 Как удалить пакет?

Выполните команду

apt-get remove имя_пакета

если вы хотите оставить файлы настроек, или

apt-get remove -purge имя_пакета

если вы хотите удалить пакет так, будто он у вас и не был установлен.

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

root@moria:~# apt-get remove tetex* Reading Package Lists... Done Building Dependency Tree... Done Note, selecting tetex-extra instead of tetex-nonfree Note, selecting libkpathsea3 instead of tetex-lib The following packages will be REMOVED: dvi2dvi dvi2ps latex2rtf libkpathsea3 tetex-base tetex-bin tetex-extra texmacs 0 packages upgraded, 0 newly installed, 8 to remove and 0 not upgraded. Need to get 0B of archives. After unpacking 98.2MB will be freed. Do you want to continue? [Y/n]

5.13 Как мне сделать собственный .deb пакет?

Я рассмотрю здесь простой способ, основанный на ручной сборке пакета, без использования специфических утилит типа deb-make и других.

Для начала, вы должны иметь, то что вам нужно установить с помощью собираемого вами пакета. Путь это будет какая-либо утилита, расширяющие возможности системы. (С тем же успехом - это могут быть дополнительные файлы шрифтов или еще что-нибудь). Пусть эта утилита называется probe. Положим, что к этой утилите вы написали страничку руководства man с названием probe.1 и кроме того положим, что есть какой-либо файл, где разобран пример работы с данной утилитой с именем example. Путь файл с примером и страничка руководства называются сопровождающими файлами.

Важно, чтобы вы представляли, где должна быть размещена эта утилита и сопровождающие ее файлы. Обычно исполняемые файлы размещают в /usr/bin. Странички руководства man размещают в /usr/man/man.1, а всякие примеры в /usr/lib/имя_утилиты. Пусть так будет и в нашем случае.

Итак, выполняем следующие шаги:

  1. Создаем временный каталог с именем DEB
  2. Создаем в этом каталоге подкаталоги, в которые нужно поместить утилиту и сопровождающие файлы

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

    DEB/usr/bin/probe

    DEB/usr/man/man1/probe.1

    DEB/usr/lib/probe/example

  3. Создаем в каталоге DEB служебный каталог с именем debian
  4. В этом каталоге создаем обязательный файл control и по вашему желанию также могут быть добавлены файлы preinst, postinst, prerm, postrm и conffiles.

    Вот для чего они нужны:

    control Служебная
    conffiles Список конфигурационных файлов
    preinst Скрипт, выполняемый перед началом установки пакета
    postinst Скрипт, выполняемый после установки пакета
    prerm Скрипт, выполняемый перед удалением пакета
    postrm Скрипт, выполняемый после удаления пакета

    Нелишним будет напомнить, что скрипты должны иметь права на выполнение, иначе ничего выполняется у вас не будет.

    Я рассмотрю здесь простой способ, основанный на ручной сборке пакета, без использования специфических утилит типа deb-make и других.

  5. Теперь заполняем файл control служебной информацией.

    Эту информацию впоследствии будет использовать менеджер пакетов dpkg и программа dselect. Информацию можно занести в любом текстовом редакторе. Для нашего случая я привожу уже готовый файл:

    Package: probe Version: 1.0 Architecture: i386 Maintainer: Ivan Ivanov <ivan@perm.ru> Description: My probe utility This is my utility

Теперь поясним, что к чему. Слова с двоеточиями являются служебными и выполняют закрепленные за ними функции. Здесь даны далеко не все возможные слова - остальные найдете на страничке руководства man с названием deb-control(5). За словом Package: должно идти имя пакета. В этом имени не должно быть заглавных букв или небуквенных символов типа ``!'', ``?'' и т.д. За словом Version: должен идти номер версии. За словом Architecture: архитектура машины для которой собирается пакет. Для платформы Intel это i386. За словом Maintainer: должно следовать имя автора пакета, с необязательным адресом электронной почты (в нашем случае ivan@perm.ru). За словом Description: должно следовать краткое, или полное описание пакета (можно использовать русские буквы, но тогда в dselect'е вы будете иметь проблемы). Краткое описание следует непосредственно за словом. Полное описание начинается со следующей строки.

Обратите внимание: перед фразой This is my utility пробел. Он указывает, что данная фраза является продолжением описания.

Если его не поставить, то при сборке пакета вы получите сообщение об ошибке.

  1. Создайте и заполните остальные файлы, указанные в таблице, если ВАШЕМУ пакету это нужно (в данном случае они не нужны).
  2. Для генерации .deb пакета наберите команду

    dpkg -b имя_каталога имя_пакета.deb

    В нашем случае эта команда будет выглядеть так:

    dpkg -b DEB probe-1.0.deb

    Если вы правильно выполнили все описанные выше инструкции, то вы получите файл probe-1.0.deb, который вы можете теперь установить через команду

    dpkg -i probe-1.0.deb.

Не правда ли, все это довольно просто? Вы можете пойти дальше, создав свое собственное дополнение к стандартному дистрибутиву в стиле Debian и подключать его через каталог local в программе dselect. Однако создание такого дополнения, с генерацией файла Packages будет посложнее. По этому я настоятельно рекомендую вам почитать страницы руководства man с названиями: dpkg(8), dpkg-deb(1), deb-control(5) и dpkg-scanpackages(8).

5.14 Мне нужна программа foo, а она не входит в стабильный дистрибутив bar/не является частью архива Debian . Что мне делать?

В первом случае вам стоит заглянуть в архивы соответствующего списка рассылки Debian на lists.debian.org или подписаться на этот список рассылки и спросить. Скорее всего кто-то собрал эту программу для вашей версии Debian , и сообщил в этот список об этом.

Если эта программа не входит в Debian , обратитесь к списку рассылки и сайту ее разработчиков.

Если же программу еще никто не собрал (или не разместил в собранном виде в Internet), попробуйте сами! Если у вас получится - разместите готовые пакеты, исходные тексты и патчи в виде депозитария Debian , и сообщите с соответствующий список рассылки об этом.

В случае, если программа является не входит в Debian , ее лицензия не противоречит DFSG, и у вас есть желание, возможность и время поддерживать ее для всех платформ, поддерживаемых Debian , попробуйте стать2 Debian Developer - войдите в сообщество разработчиков Debian !


next up previous contents
следующий: 6 Система X Window выше: Русский Debian 3.0 FAQ предыдущий: 4 Настройка приложений   Оглавление
Igor A. Tetuev 2002-11-02