Como faço minha instalação do PHP Source usar as bibliotecas dentro de /usr/local/programname/lib
ou /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 saí. Até rodei 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-dev
and libcurl-dev
fornecido pelo apt, pois preciso das versões mais recentes, para teste.
E observei que: Se eu instalar o diretório lib do programa em /usr/local/lib
vez 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/lib
em vez de /usr/local/lib
? Com isso quero dizer que, quero dar mais prioridade do /usr/local/programname/lib
que outros lib
diretórios.
programname
refere-se ao nome de cada um dos programas instalados dentro do /usr/local
.
Eu até tentei usar /etc/ld.so.conf.d/programname.conf
(escrevi /usr/local/programname
dentro dele), e rodei ldconfig
. Mas ainda sem sorte.
Aliás, estou usando o Ubuntu 20.10
Editar:
" Não lute contra as convenções do sistema " - não posso seguir em frente assim. Eu tenho que tentar fazer isso, ou vou ficar preso, e ficar dependente dos pacotes meio antigos que o apt me dá (mesmo que me dê os mais novos, eu não posso por exemplo: usar http/3 e testá-lo e mais..). E, nenhum teste será possível. Faço isso para tornar meus programas à prova de futuro e até para me divertir experimentando-os. Testando com programas novos. A instalação /usr/local
não parece boa, porque 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.1i
e/usr/local/openssl-3.0.0
ficará mais limpo e me poupará mais tempo. Eu não posso simplesmente continuar correndo make install
e make uninstall
sempre. Não apenas OpenSSL, até cURL e outros pacotes.
A convenção padrão do sistema é usada em tantos lugares que você está criando uma grande sobrecarga usando diretórios diferentes.
A maneira mais fácil é usar contêineres do Docker para seus testes. Dessa forma, você pode usar os locais padrão do sistema dentro do contêiner.
Eu adicionei
PKG_CONFIG_PATH="/usr/local/programname/lib/pkgconfig"
comLD_LIBRARY_PATH
set to/usr/local/programname/lib
, e agora funciona. Meu PHP conf agora usa a versão que instalei dentro do/usr/local/programname
.Depois de tanta pesquisa, foi isso que eu fiz. Mas, até que eu continue verificando, não posso confirmar que funcionará para todos que desejam fazê-lo dessa maneira.