В начало → Portage Overlay → Создание 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 будет знать о вашем пакете.
Когда вы будете устанавливать пакет используя новый ebuild, скорее всего он будет masked, поэтому надо добавить имя пакета в /etc/portage/package.keywords
Создайте директорию /etc/portage/, если она еще не создана, и затем выполните команду:
echo "<category>/<package> ~x86" >>/etc/portage/package.keywords
Теперь этот пакет можно установить как и любой другой:
emerge -p package
emerge package
В начало → Portage Overlay → Создание digest-файлов |