Personalize o ebuild no Gentoo dentro da árvore do portage

7

Como posso personalizar um ebuild no Gentoo sem manter um pacote personalizado na própria sobreposição?

O caso é que eu preciso marcar binários compilados com paxctl . Mas existem cerca de 100 desses pacotes e não quero assistir às atualizações sozinho na sobreposição local.

As ebuilds do Portage não são compiladas sem essa marcação. Agora eu tenho que mudar seus flags de compilação no diretório /etc/portage/package.env . A marcação PAX é uma solução melhor, mas não sei como fazer isso no Gentoo dentro da árvore do portage.

    
por trupanka 31.08.2013 / 14:55

2 respostas

4

Usando o portage, você pode fazer isso com package.env . O lugar certo para procurar a documentação é link . Basicamente, a maneira de usá-lo é a seguinte. Primeiro você cria (assumindo a configuração padrão sem custom ROOT ) um arquivo em /etc/portage/env . Por exemplo, você pode criar um arquivo /etc/portage/env/paxmark

#paxmark

#Set this to what you need it to be
PAXFLAGS="-p"

post_src_install() {
  find "${INSTALL}" -type x -print0 |xargs -0 -n 1 paxctl $PAXFLAGS
}

Em seguida, para todos os pacotes que você deseja aplicar, adicione uma entrada a /etc/portage/package.env :

#package.env example for paxmark
sys-apps/gcc paxmark

Isso aplicará o script paxmark ao pacote que ele especificou. Alternativamente, você também pode criar um script /etc/portage/bashrc para substituições globais (tenha muito cuidado com isso).

Um aviso geral, como você pode adicionar ganchos pré e pós a todas as fases, isso pode ser perigoso. Tenha cuidado com o que você faz, já que todos os seus pacotes que usam o gancho agora não são mais robustos do que o seu script de gancho. (O exemplo acima para a marcação pax deve ser bom).

    
por 24.04.2014 / 16:57
1

Se você mudar para Paludis , que é um gerenciador de pacotes alternativo para o Gentoo (isto é, um substituto para emerge ), você pode provavelmente configurar um gancho para fazer isso.

    
por 01.09.2013 / 08:43

Tags