Organize construções locais

1

Uma coisa comum para pessoas que trabalham em máquinas sem ter direitos de root é construir localmente suas próprias ferramentas favoritas.

O fluxo de trabalho é um pouco parecido com isto:

tar xvzf fav_tool.tar.xvzf
cd fav_tool
./configure --prefix=$HOME
make install

Isso tende a ficar um pouco confuso. Você obtém pastas como bin/, etc/, include, lib/ e source/ na sua pasta pessoal. Você precisa gerenciar dependências e $PATH . Existe uma maneira inteligente de fazer isso? Existe uma ferramenta para rastrear seus pacotes localmente?

    
por Joachim 26.08.2015 / 10:10

1 resposta

2

It tends to get a little messy. You get folders like bin/, etc/, include, lib/ and source/ in your home folder.

Por escolha, sim. Se isso parece desordenado, você pode usar

./configure --prefix=$HOME/mytools

Em vez disso. Você precisará então adicionar isso ao seu $ PATH , ou, se $HOME/bin já fizer parte dele, você poderá mover tudo que está lá para $HOME/mytools/bin e

rm ~/bin
ln -s ~/mytools/bin ~/bin

Se suas ferramentas colocarem as coisas em ~/mytools/lib , você também desejará definir LD_LIBRARY_PATH apropriadamente em algum lugar.

Se você usa qualquer arquivo de inicialização que você normalmente usa para configurar variáveis env, isso só precisa ser feito uma vez e leva cerca de um minuto para ser feito.

You have to manage dependencies

Se por "gerenciar" você quer dizer resolver com o propósito de instalação, essa é uma das principais finalidades de ./configure . Se isso não for feito corretamente, é improvável que uma ferramenta de terceiros faça isso muito melhor. pode , mas também pode ser pior .

Se você quer dizer algo mais, não há mais nada envolvido no conceito de "dependência". Se você quer dizer que quer algo que resolva isso, faça o download da dependência e instale-a para você, é para isso que os gerenciadores de pacotes são normais - mas lembre-se que você decidiu que não queria binários pré-compilados . Você está construindo a partir da fonte.

É muito lamentável que os gerentes de pacotes do linux sejam em sua maioria hostis ou inúteis para usuários não privilegiados, mas isso é uma questão separada (e uma questão separada, para a qual existem várias respostas dependendo da distribuição).

Is there tool to keep track of your packages locally?

Sim, os próprios pacotes de fontes. Quando você cria, descompacta em ~/mytools/src . Você pode deixar o diretório de compilação lá ou apenas o tarball. Quando você quiser desinstalar algo, basta acessar o diretório relevante (descompactá-lo novamente, se necessário) e make uninstall .

O diretório src nunca é usado pelo sistema para nada. Ele contém apenas o que você coloca nele, e assim, desde que você não exclua seus downloads, você terá uma boa lista de softwares construídos com fontes locais instaladas, com as fontes realmente usadas para construir tudo.

    
por 26.08.2015 / 12:14