APT - Утилита управления пакетами Debian

Как установить локально скомпилированные пакеты: equivs


Иногда, люди хотят использовать определенную версию программы, доступную только в исходных текстах, без пакета Debian. Но этому может помешать система пакетов. Предположим, вы хотите скомпилировать новую версию вашего почтового сервера. Все отлично, но многие пакеты в Debian зависят от MTA. Так как вы устанавливаете нечто, собранное вами вручную, то система пакетов об этом не будет знать.

Тут на сцену выходит весь в белом пакет equivs. Чтобы его использовать, установите пакет с тем же именем. Он создает пустой пакет, который содержит полный набор зависимостей, уведомляя таким образом систему пакетов, что все зависимочти удовлетворены.

Прежде, чем мы начнем, хорошо бы сообщить вам, что есть более безопасные способы компиляции программ, для которых уже есть пакеты Debian с различными опциями, и что в этом случае лучше не использовать equivs для замены зависимостей, если вы не уверены в том, что все делаете правильно. См. подробности в разделе Работа с пакетами исходных текстов, Глава 6.

Давайте вернемся к примеру с MTA, вы только что установили свежесобранный postfix и переходите к установке mutt. Сразу же вы обнаружите, что mutt нужен установленный MTA. Но ведь он у вас уже есть.

Зайдите в какой-нибудь каталог (/tmp, например) и запустите: # equivs-control name

Замените name на имя управляющего файла, который вы создаете. Будет создан следующий файл: Section: misc Priority: optional Standards-Version: 3.0.1

Package: <enter package name; defaults to equivs-dummy> Version: <enter version here; defaults to 1.0> Maintainer: <your name and email address; defaults to username> Pre-Depends: <packages> Depends: <packages> Recommends: <packages> Suggests: <package> Provides: <(virtual)package> Architecture: all Copyright: <copyright file; defaults to GPL2> Changelog: <changelog file; defaults to a generic changelog> Readme: <README.Debian file; defaults to a generic one> Extra-Files: <additional files for the doc directory, commaseperated> Description: <short description; defaults to some wise words> long description and info . second paragraph


Нам просто нужно поправить его, как нам нужно. Формат полей и их описаний понятен визуально, так что давайте сделаем требуемое: Section: misc Priority: optional Standards-Version: 3.0.1
Package: mta-local Provides: mail-transport-agent
Да, это все. mutt зависит от mail-transport-agent, это виртуальный пакет, обеспечиваемый всеми MTA, я мог бы использовать имя пакета mail-transport-agent, но я придерживаюсь принятой схемы именования, используя Provides.
Сейчас вам нужно только построить пакет: # equivs-build name
dh_testdir touch build-stamp dh_testdir dh_testroot dh_clean -k # Add here commands to install the package into debian/tmp. touch install-stamp dh_testdir dh_testroot dh_installdocs dh_installchangelogs dh_compress dh_fixperms dh_installdeb dh_gencontrol dh_md5sums dh_builddeb dpkg-deb: building package `name' in `../name_1.0_all.deb'.
The package has been created. Attention, the package has been created in the current directory,
И установите полученный .deb файл.
Очевидно, существует несколько применений для equivs. Одно из них, например, - создание пакета my-favorites, который зависит от программ, которые вы обычно устанавливаете. Просто включите свое воображение, но будьте осторожны.
Важно заметить, что примеры управляющих файлов есть в каталоге /usr/share/doc/equivs/examples. Посмотрите их.

Содержание раздела