O GNU desclassificado não funciona

1

Desde o downgrade do GNU make de 4.1 para 3.81, o make não está funcionando. Este é o método usado para o downgrade:

  • Em /usr/bin renomeado make to make-4.1
  • Download feito 3.81 de gnu.org
  • % demake-3.81.tar.bz2 extraído em /usr/bin
  • Renomeado make-3.81 para make .

Agora, quando eu corro, é como se ele não existisse. Como fazer o GNU make 3.81 funcionar?

    
por LostSoul 05.07.2016 / 22:52

1 resposta

1

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.

    
por 06.07.2016 / 01:26

Tags