Como faço para que minha instalação do PHP Source use as bibliotecas dentro de /usr/local/programname/lib ou /usr/local/lib?

Como faço para que minha instalação do PHP Source use as bibliotecas dentro de /usr/local/programname/lib ou /usr/local/lib?

Como faço para que minha instalação do PHP Source use as bibliotecas dentro de /usr/local/programname/libou /usr/local/lib?

Eu tentei definir LD_LIBRARY_PATH para cada um dos nomes de programas como LD_LIBRARY_PATH="/usr/local/programname1/lib:/usr/local/programname2/lib:/usr/local/programname3/lib".

E eu desconectei. Até executei source /etc/environment(coloquei a variável LD_LIBRARY_PATH em /etc/environment), até reiniciei o sistema.

Mas ainda assim, quando executo ./configure --with-openssl --with-curl, ele me diz que libssl não existe.

Não quero usar o pacote libssl-devand libcurl-devfornecido pelo apt, porque preciso das versões mais recentes para teste.

E observei que: Se eu instalar o diretório lib do programa em /usr/local/libvez de /usr/local/programname/lib, ele funcionará sem definir nenhuma variável de ambiente.

Mas, na minha opinião, /usr/local/programname/libé mais claro, então quero usar esse tipo de caminho.

Como posso fazer com que o PHP use as bibliotecas internas /usr/local/programname/libem vez de /usr/local/lib? Com isso quero dizer que quero dar mais prioridade /usr/local/programname/libdo que outros libdiretórios.

programnamerefere-se ao nome de cada um dos programas instalados dentro do /usr/local.

Até tentei usar /etc/ld.so.conf.d/programname.conf(escrevi /usr/local/programnamedentro dele), e executei ldconfig. Mas ainda sem sorte.

A propósito, estou usando o Ubuntu 20.10

Editar:

"Não lute contra as convenções do sistema"- Não posso simplesmente seguir em frente assim. Tenho que tentar fazer isso, ou ficarei preso e dependente domeio velhopacotes que o apt me dá (mesmo que me dê os mais novos, não posso por exemplo: usar http/3 e testar e muito mais..). E nenhum teste será possível. Faço isso para tornar meus programas à prova de futuro e até mesmo para me divertir experimentando-os. Testando com programas novos. Instalar /usr/localnão é bom, porque eu testo com várias versões das bibliotecas. Como eu testei com OpenSSL 1.1.1i e OpenSSL 3.0.0, e outras versões também. Portanto, instalar em /usr/local não me beneficiará nisso, mas instalar em /usr/local/openssl-1.1.1ie /usr/local/openssl-3.0.0será mais limpo e me poupará mais tempo. Não posso simplesmente continuar correndo make installe make uninstallsempre. Não apenas OpenSSL, até mesmo cURL e outros pacotes.

Responder1

A convenção padrão do sistema é usada em tantos lugares que você cria uma grande sobrecarga ao usar diretórios diferentes.

A maneira mais fácil é usar contêineres Docker para testes. Dessa forma, você pode usar locais padrão do sistema dentro do contêiner.

Responder2

Eu adicionei PKG_CONFIG_PATH="/usr/local/programname/lib/pkgconfig"set LD_LIBRARY_PATHto /usr/local/programname/libe funciona agora. Minha configuração do PHP agora usa a versão que instalei dentro do /usr/local/programname.

Depois de tanta pesquisa, foi isso que descobri. Mas, até que eu continue verificando, não posso confirmar se funcionará para todos que desejam fazer dessa forma.

informação relacionada