cppmm 17.11.2010 20:03
Gentoo Linux — Расширенные возможности Portage в Gentoo GNU/Linux
По ссылке статья, описывающая гибкость системы portage.Там довольно просто на примерах описывается, как изменять поведение ebuild'ов, не создавая своих оверлеев, как накладывать собственные патчи на исходники, опять же не собирая нового пакета.
Плюс некоторые интересные подсказки по тюнингу портажей сверх имеющихся возможностей.
Для любителей настроить систему под себя будет полезно.
P.S. Кстати, рекомендую сайт всем, кто использует Gentoo GNU/Linux. Автор - гентушник со стажем, плохого не посоветует.
bosha 17.11.2010 20:22 #
+ 1 -
На удивление подчеркнул для себя что-то новое. Спасибо.
Ура! Наконец-то объявился гентушник Ъ
В принципе я про это знал, и у psi+ выключал пару патчей, но есть вопрос:
в ebuild-howto4devel написано, что переменные типа ${DISTDIR} ридонли(?). пробовал, правда давно - не вышло, но до сих пор есть задачка: для всех -9999 определять другую диру. Ибо для обычных у меня внешняя nfs (которая на всяких гитах и свнах притормаживает)
Есть идеи?
В принципе я про это знал, и у psi+ выключал пару патчей, но есть вопрос:
в ebuild-howto4devel написано, что переменные типа ${DISTDIR} ридонли(?). пробовал, правда давно - не вышло, но до сих пор есть задачка: для всех -9999 определять другую диру. Ибо для обычных у меня внешняя nfs (которая на всяких гитах и свнах притормаживает)
Есть идеи?
Ну так по ссылке уже было решение как раз для твоего случая. :)
Тебе надо просто найти, где именно в portage определяется нужная тебе переменная, написать небольшой if-fi, который будет смотреть на версию ебилда(если 9999, то одна дира, если нет, то всё, как обычно) и прописать в /etc/portage/env/sys-apps/portage функцию pre_src_compile, добавляющую твой if в портажи(или офромить это всё дело своим патчем к portage - это даже лучше, наверное). Самое сложное здесь, найти, где же именно определяется нужная тебе переменная. Я так бегло глянул, похоже это функция unpack() в ebuild.sh. Потом останется пересобрать портажи и можно пользоваться.
В последних версиях программы «portage» переменную из «/etc/make.conf» «PORTAGE_BINPKG_TAR_OPTS» почему-то сделали «только для чтения» в процессе установки пакета. Мне такое положение вещей совершенно не подходит, поэтому я просто изменяю исходные тексты пакета «portage» прямо в процессе установки, чтобы не бросать пакет в локальный оверлей и потом следить за выходом новых версий, что крайне неудобно. Для этого я просто создаю файл «/etc/portage/env/sys-apps/portage» следующего содержания<...>
Тебе надо просто найти, где именно в portage определяется нужная тебе переменная, написать небольшой if-fi, который будет смотреть на версию ебилда(если 9999, то одна дира, если нет, то всё, как обычно) и прописать в /etc/portage/env/sys-apps/portage функцию pre_src_compile, добавляющую твой if в портажи(или офромить это всё дело своим патчем к portage - это даже лучше, наверное). Самое сложное здесь, найти, где же именно определяется нужная тебе переменная. Я так бегло глянул, похоже это функция unpack() в ebuild.sh. Потом останется пересобрать портажи и можно пользоваться.