Em primeiro lugar, quebrar o espaço do fornecedor (aqui, o diretório /usr/bin
) é uma má idéia, já que outros pacotes de fornecedores podem depender do make
4.1 disponível ou atualizações do fornecedor em make
podem entrar em conflito ou quebrar das alterações manuais feitas no espaço do fornecedor ou talvez desfazer suas alterações. Uma opção melhor é instalar sua versão de make
em outro lugar, por exemplo, /usr/local/bin
- embora em sistemas * BSD essa área seja usada por pacotes, verifique a documentação do seu fornecedor sobre onde as coisas devem ir e escolha outro lugar ao fazer um depósito de software próprio, por exemplo /opt
ou qualquer nome inventado é adequado ao seu ambiente. Concedido, isso significa que você é responsável por atualizações (em particular, atualizações de segurança) para o software nesse depósito de software, uma desvantagem que pode variar de insignificante a horrível, dependendo do software e do site.
Quanto à etapa de compilação, ela seria executada (com um caminho de depósito de software personalizado de /usr/local
) nas seguintes linhas:
tar xjf make-3.81.tar.bz2
cd make-3.81
./configure --prefix=/usr/local && make && make install
Qualquer aplicativo que precise da versão antiga de make
precisaria definir a variável de ambiente PATH
para listar /usr/local/bin
antes dos diretórios /usr/bin
(ou agora em alguns Linux, também /bin
). / p>
env PATH=/usr/local/bin:$PATH yoursoftwarethatneedsmake3.81 ...
Ou manualmente no shell rc ou no servidor da Web ou na configuração do whatnot. Isso pode ser problemático se um aplicativo precisar da versão antiga de make
, mas precisar de algo diferente de /usr/bin
mascarado por outro software em /usr/local/bin
; Para evitar isso, make
pode ser instalado em um diretório com versão:
./configure --prefix=/opt/'uname -m'/make-3.81
E, em seguida, os aplicativos precisariam (assumindo o amd64 no Linux) /opt/x86_64/make-3.81/bin
listados primeiro em PATH
. Ou, se você executar apenas uma arquitetura, poderá simplificar o caminho para apenas /opt/make-3.81
ou ir mais complicado com /opt/centos7/x86_64/make-3.81
para oferecer suporte a vários sistemas operacionais em uma única árvore. Como o software adicional é instalado de tal forma, algo como o Stow pode ajudar a gerenciar essas instalações com versão, sem tornar PATH
tediosamente longo . Com cuidado, atenção e recursos suficientes, um depósito de software construído de acordo com essas linhas pode evoluir para algo como Apollo , embora a forma ideal de depósito de software (se houver!) Para um site específico varie dependendo do tamanho do site, de quanto software de controle não comercial precisa ser instalado, etc.