5 Управление пакетами
следующий: 6 Система X Window выше: Русский Debian 3.0 FAQ предыдущий: 4 Настройка приложений   Оглавление
Вопросы
- 5.1 Что такое stable, testing, unstable ветки Debian ?
- 5.2 Что становится с предыдущими стабильными дистрибутивами?
- 5.3 Что такое experimental?
- 5.4 Что такое non-free и contrib?
- 5.5 Что такое система pools?
- 5.6 Как добавить http или ftp зеркало Debian ?
- 5.7 Я добавил новую строку в /etc/apt/sources.list но пакеты не ставятся!
- 5.8 Как добавить компакт-диск с репозитарием?
- 5.9 Как получить образы компакт-дисков Debian ?
- 5.10 Как обновить программное обеспечение?
- 5.11 Как поставить пакет?
- 5.12 Как удалить пакет?
- 5.13 Как мне сделать собственный .deb пакет?
- 5.14 Мне нужна программа foo, а она не входит в стабильный дистрибутив bar/не является частью архива Debian . Что мне делать?
5 Управление пакетами
5.1 Что такое stable, testing, unstable ветки Debian ?
Это направления работы над Debian .
- stable (стабильный) дистрибутив -- официально выпущенный дистрибутив,
в него обычно изменения не вносятся. Найденные ошибки размещаются
в отдельном репозитарии, и периодически вносятся в сам дистрибутив,
формируя новый выпуск. Принципиальная идея стабильного дистрибутива
-- все его установки похожи друг на друга. Именно этот дистрибутив
можно обычно найти на CD и DVD. На данный момент стабильным дистрибутивом
является Debian GNU/Linux 3.0r0, кодовое имя Woody.
- testing (тестируемый) дистрибутив -- будущая версия дистрибутива.
Над ним идет постоянная работа по исправлению ошибок и по мере необходимости
обновляются версии программного обеспечения. В определенный момент
осуществляется ``заморозка'' дистрибутива -- начинается подготовка
к выпуску нового дистрибутива, в процессе которой идет только исправление
ошибок; версии программного обеспечения изменяются только в случае
крайней необходимости. Как только число критических ошибок становится
равным нулю, а число обычных ошибок не превышает определенного количества,
дистрибутив считается готовым к выпуску. На данный момент тестируемым
дистрибутивом является Sarge. В отличие от предыдущих тестируемых
версий Debian , он доступен на CD и DVD.
- unstable (нестабильный) дистрибутив -- ``опытное поле'' Debian . В нем идет постоянное обновлений версий программного обеспечения (до сотни пакетов в день!), на ошибки особенно не смотрят, кроме ошибок связанных с безопастностью. Пользоваться им рекомендуется только тем, кто может выделить под него отдельный компьютер :). Кодовое имя этого дистрибутива Sid.
Раньше была ротация кодовых имен: например, 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
где:
- protocol - протокол (file, http, ftp)
- host/path - hostname зеркала и путь до иерархии Debian
- branch - ветка (stable, testing, unstable)
- sections - список разделов дистрибутива разделенный пробелами (обычно main contrib non-free)
deb http://server.phys.psu.ru stable main contrib non-free
deb-src http://server.phys.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/
где:
- protocol - протокол (file, http, ftp)
- host/path - hostname зеркала и путь до иерархии Debian
- path-to-archive - путь к каталогу с файлом Packages.gz, обратите внимание на то, что ``/'' обязателен
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 :
- купить копию официальных дисков
- воспользоваться программой jigdo
Если же вы решили скачать образы 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/имя_утилиты. Пусть так будет и в нашем случае.
Итак, выполняем следующие шаги:
- Создаем временный каталог с именем DEB
- Создаем в этом каталоге подкаталоги, в которые нужно поместить утилиту
и сопровождающие файлы
Создаем в этом каталоге подкаталоги, в которые нужно поместить утилиту и сопровождающие файлы. При этом каталоги создаются так, как будто DEB является корневым каталогом. Таким образом, в нашем случае, файлы должны быть размещены следующим образом:
DEB/usr/bin/probe
DEB/usr/man/man1/probe.1
DEB/usr/lib/probe/example
- Создаем в каталоге DEB служебный каталог с именем debian
- В этом каталоге создаем обязательный файл control и по вашему
желанию также могут быть добавлены файлы preinst, postinst,
prerm, postrm и conffiles.
Вот для чего они нужны:
control Служебная conffiles Список конфигурационных файлов preinst Скрипт, выполняемый перед началом установки пакета postinst Скрипт, выполняемый после установки пакета prerm Скрипт, выполняемый перед удалением пакета postrm Скрипт, выполняемый после удаления пакета Нелишним будет напомнить, что скрипты должны иметь права на выполнение, иначе ничего выполняется у вас не будет.
Я рассмотрю здесь простой способ, основанный на ручной сборке пакета, без использования специфических утилит типа deb-make и других.
- Теперь заполняем файл control служебной информацией.
Эту информацию впоследствии будет использовать менеджер пакетов dpkg и программа dselect. Информацию можно занести в любом текстовом редакторе. Для нашего случая я привожу уже готовый файл:
Package: probe Version: 1.0 Architecture: i386 Maintainer: Ivan Ivanov <ivan@perm.ru> Description: My probe utility This is my utility
Обратите внимание: перед фразой This is my utility пробел. Он указывает, что данная фраза является продолжением описания.
Если его не поставить, то при сборке пакета вы получите сообщение об ошибке.
- Создайте и заполните остальные файлы, указанные в таблице, если ВАШЕМУ пакету это нужно (в данном случае они не нужны).
- Для генерации .deb пакета наберите команду
dpkg -b имя_каталога имя_пакета.deb
В нашем случае эта команда будет выглядеть так:
dpkg -b DEB probe-1.0.deb
Если вы правильно выполнили все описанные выше инструкции, то вы получите файл probe-1.0.deb, который вы можете теперь установить через команду
dpkg -i probe-1.0.deb.
5.14 Мне нужна программа foo, а она не входит в стабильный дистрибутив bar/не является частью архива Debian . Что мне делать?
В первом случае вам стоит заглянуть в архивы соответствующего списка рассылки Debian на lists.debian.org или подписаться на этот список рассылки и спросить. Скорее всего кто-то собрал эту программу для вашей версии Debian , и сообщил в этот список об этом.Если эта программа не входит в Debian , обратитесь к списку рассылки и сайту ее разработчиков. Также существует сайт www.apt-get.org, на котором размещены ссылки на неофициальные репозитарии Debian .
Если же программу еще никто не собрал (или не разместил в собранном виде в Internet), попробуйте сами! Если у вас получится - разместите готовые пакеты, исходные тексты и патчи в виде репозитария Debian , и сообщите с соответствующий список рассылки об этом.
В случае, если программа является не входит в Debian , ее лицензия не противоречит DFSG, и у вас есть желание, возможность и время поддерживать ее для всех платформ, поддерживаемых Debian , попробуйте стать2 Debian Developer - войдите в сообщество разработчиков Debian !
следующий: 6 Система X Window выше: Русский Debian 3.0 FAQ предыдущий: 4 Настройка приложений   Оглавление root 2003-01-05