Devo substituir o binário do meu sistema PHP em / usr / bin por um auto-compilado? [fechadas]

2

Eu tinha o PHP versão 5.4 instalado na minha máquina Mac 10.9 e queria atualizar para 5.6.

Eu fiz o download dos arquivos de origem e executei ./configure , make e make install . Eu olhei e parece ter compilado e instalado com sucesso, mas ele se instalou em /usr/local/bin . A versão antiga do PHP está instalada em /usr/bin .

Quando executo php , o /usr/bin local é usado, pois /usr/bin vem antes de /usr/local/bin no $PATH . Eu gostaria de usar a nova versão.

Devo apenas substituir a versão antiga do PHP em /usr/bin pela versão em /usr/local/bin ? Ou eu deveria deletá-los de /usr/bin ?

É um pouco complicado porque a instalação 5.6 também instalou algumas outras coisas, como uma nova versão de perl e pecl e alguns outros binários auxiliares (incluindo php-config e phpize ). Alguns deles (os dois últimos) já estavam presentes na pasta /usr/bin , mas perl e pecl não estavam. Devo mover todas as coisas novas para /usr/bin ?

Por último, por que o mais novo instalado em /usr/local/bin , mas o antigo, não o fez? A distinção é importante? A equipe do PHP decidiu movê-lo por algum motivo? Ou foi apenas em /usr/bin porque veio com o meu sistema, enquanto a atualização baixada é colocada em /usr/local/bin ?

E a localização de php.ini depende disso?

    
por AmadeusDrZaius 17.01.2015 / 23:47

1 resposta

3

Geralmente, a /usr hierarchy é usada para materiais provenientes do fornecedor do SO / administrador do site, enquanto /usr/local é usado para coisas instaladas localmente (por exemplo, em uma rede, /usr pode ser uma montagem NFS compartilhado por vários computadores, enquanto /usr/local é um sistema de arquivos local). É por isso que os scripts de configuração geralmente são instalados em /usr/local por padrão - para não quebrar os pacotes do sistema. É também o motivo, por que PATH deve ter /usr/local/{bin,sbin} antes de /usr/{bin,sbin} .

Para alterá-lo, tudo que você precisa fazer (para um sistema de compilação bem comportado) está em execução:

./configure --prefix=/path/to/install/to

Esse muito depende do que foi a origem da versão mais antiga do PHP. Apenas sobrescrevê-lo não é uma boa idéia, pois pode deixar alguns arquivos da versão mais antiga por aí (é por isso que usar gerenciadores de pacotes é uma boa ideia TM ). Assim, a menos que você tenha uma maneira limpa de desinstalar a versão anterior, /usr/local pode ser um pouco melhor. Outra opção seria (des) usar uma hierarquia separada em /opt - por ex. instalando em /opt/php5.6 .

    
por 18.01.2015 / 02:54