В началоPortage Overlay → Создание digest-файлов
Gentoo-doc HOME Пред.: Месторасположение ebuildВ началоУровень выше: Portage Overlay

4. Создание digest-файлов

digest-файлы — это файлы, которые содержат md5 суммы файлов, необходимых для установки пакетов. После того, как Portage скачает необходимые файлы, будет сделана проверка на соответствие файлов их md5-суммам (это дает возможность убедиться в целостности файлов). Для того, чтобы Portage мог устанавливать пакеты, необходим digest-файл. Digest-файл можно создать с помощью команды ebuild /usr/local/portage/category/program/program.ebuild digest Вручную редактировать созданные этой командой файлы не следует. При этом надо учитывать требования к имени ebuild-а. При переименовании ebuild-а в произвольное имя, команда

ebuild /usr/local/portage/category/program/program.ebuild digest выдаст ошибку:

!!! /usr/local/portage does not seem to have a valid PORTDIR structure.

Чтобы этого не произошло необходимо переименовывать ebuild в то же самое имя, но с приставкой номера релиза.

Пример:

В портежах имеется ebuild:

/usr/portage/media-sound/ncmpc/ncmpc-0.11.1-r1.ebuild

И архив исходных кодов:

/usr/portage/distfiles/ncmpc-0.11.1.tar.gz для этого ebuild-а.

Вы хотите наложить свой патч и добавить ebuild вашего пропатченного пакета в систему. Для этого вы должны скопировать исходный ebuld в ваш новый, но добавить к нему приставку '-rN', где N — номер релиза. Если такая преставка уже есть — изменить её номер:

cp /usr/portage/media-sound/ncmpc/ncmpc-0.11.1-r1.ebuild /usr/local/portage/media-sound/ncmpc/ncmpc-0.11.1-r2.ebuild

После этого пропатчите исходные коды пакета, на который ссылается исходный

ebuild /usr/portage/distfiles/ncmpc-0.11.1.tar.gz

и сохраните его в /usr/portage/distfiles/ncmpc-0.11.1-r2.tar.gz

Далее, нам нужно будет поправить наш новый ebuild:

vi /usr/local/portage/media-sound/ncmpc/ncmpc-0.11.1-r2.ebuild

И изменить строку:

SRC_URI="http://mercury.chem.pitt.edu/~shank/${P}.tar.gz mirror://sourceforge/musicpd/${P}.tar.gz"

На строку:

SRC_URI="http://mercury.chem.pitt.edu/~shank/${P}-r2.tar.gz mirror://sourceforge/musicpd/${P}-r2.tar.gz"

Т.е. добавив наш префикс '-r2', чтобы система знала, какой именно файл с исходными кодами ей необходимо прописать. В данном случае скачать с сайта этот пакет конечно же не удастся, но нам этого и не требуется — нам необходимо установить нами поправленный пакет.

После этого даём команду

ebuild /usr/local/portage/media-sound/ncmpc/ncmpc-0.11.1-r2.ebuild digest,

после чего emerge будет знать о вашем пакете.

4.1. Установка нового ebuild

Когда вы будете устанавливать пакет используя новый ebuild, скорее всего он будет masked, поэтому надо добавить имя пакета в /etc/portage/package.keywords

Создайте директорию /etc/portage/, если она еще не создана, и затем выполните команду:

echo "<category>/<package> ~x86" >>/etc/portage/package.keywords

Теперь этот пакет можно установить как и любой другой:

emerge -p package

emerge package

4.2. Дополнительно

Unofficial ebuilds содержит список с коротким описанием сайтов где можно найти неофициальные пакеты Многие, написанные юзерами ebuild'ы, которые еще не попали в официальное дерево, находятся в Bugzill'е Gentoo. Найти нужные ebuild'ы можно с помощью поиска

Пред.: Месторасположение ebuildВ началоУровень выше: Portage Overlay
В началоPortage Overlay → Создание digest-файлов