Não sei ao certo se isso se aplica ao seu caso, mas uso enxerto .
Basicamente, me permite ter uma árvore de pacotes instalados em qualquer lugar que eu queira (por exemplo, $HOME/packages
) e instalar links simbólicos em seus arquivos na hierarquia desejada (por exemplo, em $HOME/local
ou /usr/local
se eu tiver raiz Acesso). Na verdade, ele ajuda a manter vários pacotes compilados personalizados (compilados exatamente como você fez, mas com --prefix= /path/to/packages/foo-1.2.3
para que eles acabem em um lugar comum) - e você pode até ter várias versões do mesmo pacote. Você não cria a bagunça habitual, porque pode escolher qual versão ativar a qualquer momento:
$ cd $HOME/packages
$ ls
mpv-git
texinfo-4.13
texinfo-git
$ graft -i texinfo-4.13
$ # symlinks now installed in my $HOME/local/bin, $HOME/local/lib, etc
$ # and since $HOME/local/bin is in my PATH, I now have texinfo-4.13
$
$ graft -d texinfo-4.13
$ # removed texinfo 4.13 symlinks - let's install bleeding edge version
$
$ graft -i texinfo-git
Isso também pode ser usado para manter a bagunça que acontecerá com o seu /usr/local
mesmo se você for root.
A ideia de usar links simbólicos para o gerenciamento de pacotes foi modernizada novamente em algumas distribuições Linux - mas acho que graft
pode acomodar a maioria dos casos de uso. É uma pena que apenas algumas pessoas saibam sobre isso ...