Como recursivamente aplico o PKGREPOSITORY ao chamar make recursive-package no FreeBSD?

3

Estou tentando criar um pacote do Apache e suas dependências:

sudo make package-recursive \
__MAKE_CONF=~/make.apache22.conf \
PKGREPSOITORY=/usr/home/gvkv

Tudo funciona bem; O Apache e suas dependências compilam e instalam e apache22.tbz está em gvkv . O problema é que os pacotes de dependência são construídos em seus respectivos diretórios ports/<package> ! Existem cerca de quinze deles e embora seja fácil recuperá-los com find e perl one-liner, certamente deve haver uma maneira de dizer make para rodar em um ambiente tal que os pacotes de dependência acabem em gvkv .

    
por gvkv 18.08.2010 / 01:44

2 respostas

1

Parte da diversão de usar o FreeBSD é lidar com o subsistema de portas. É bom em muitos aspectos - fácil instalação e atualização dentro do ecossistema do FreeBSD, mas pobre em outros - a configuração de variáveis via arquivos de configuração make ou ambiente não funciona como esperado ou até mesmo como anunciado.

No entanto, SirDice veio para o resgate com um pequeno truque:

mount -t nullfs /directory/for/pkgs /usr/ports/packages

que é muito legal porque ignora o uso de variáveis de ambiente e você pode definir o diretório de destino para onde quiser. Muito útil se você (como eu) usar um 'build-jail' para fazer pacotes que estão instalados em sistemas diferentes ou outras cadeias.

O diretório /usr/ports/packages é onde PACKAGES aponta para (se existir) que é supostamente capaz de apontar para algum outro lugar, mas não funcionou para mim. A página man estipula a configuração PKGREPOSITORY , que só funciona se você estiver criando um único pacote.

    
por 20.08.2010 / 21:48
1

Eu li que o PKGREPOSITORY é dependente de PACOTES.

Você pode definir PACOTES em /etc/make.conf . Por exemplo:

DISTDIR= /opt/portbuild/distfiles
PACKAGES=/opt/portbuild/packages
    
por 20.08.2010 / 23:03