Diga ao pkg-config para procurar arquivos * .pc também em / usr / local / lib / pkgconfig, em todo o sistema

8

No momento, pkg-configparece apenas dentro /usr/lib/pkgconfig. Posso ajustá-lo para um usuário exportando a PKG_CONFIG_PATHvariável de ambiente, mas mais uma vez esqueci de fazê-lo como root e perdi tempo pensando, por que meu plug-in não está instalado corretamente (o makefile usado pkg-config). Então, como defini-lo em todo o sistema, para sempre procurar os dois /usr/libe /usr/local/lib?

gruszczy
fonte

Respostas:

3

O local tradicional para definir uma variável de ambiente em todo o sistema é /etc/profile. Esse arquivo é lido por shells no estilo Bourne (incluindo bash, ksh, ash) quando você faz login em uma sessão em modo de texto, localmente (em um console de modo de texto) ou remotamente (sobre ssh). Se você efetuar login em um ambiente gráfico, /etc/profilepoderá ou não ser lido, dependendo do seu gerenciador de login, ambiente de área de trabalho e distribuição do sistema operacional.

Um método melhor, se disponível no seu sistema, é definir a variável de ambiente no /etc/environment. Este arquivo é lido pelo PAM , especificamente pelo pam_envmódulo . Essas variáveis ​​estão disponíveis em todas as sessões iniciadas por um método de login que usa o PAM e possui o pam_envmódulo referenciado em /etc/pam.confou /etc/pam.d/$method.

Gilles 'SO- parar de ser mau'
fonte
-2

Provavelmente, a maneira mais fácil, embora não 100% confiável, seria adicioná-la /etc/bashrc.

Não é confiável porque qualquer usuário individual pode definir como não processar /etc/bashrc.

Se você quiser seguir o caminho mais complexo, poderá criar um wrapper que o definirá. Primeiro você renomeia pkg-configpara pkg-config-real, em seguida, crie um novo script chamado pkg-configque definirá a variável.

(Como root, ou use sudo)

cd /usr/bin
mv pkg-config pkg-config-real

Em seguida, crie um novo arquivo em / usr / bin / pkg-config com o seguinte conteúdo:

#!/bin/bash
export PKG_CONFIG_PATH=/usr/lib:/usr/local/lib
pkg-config-real $*

Certifique-se de torná-lo executável.

chmod 755 pkg-config
bahamat
fonte
2
/etc/bashrcnão é o lugar certo, consulte Diferença entre .bashrc e .bash_profile . Você não deve recomendar modificar um arquivo /usr/bin; seria melhor criar /usr/local/bin/pkg-confige ligar a /usr/bin/pkg-configpartir daí. No seu script, você deve usar "$@", não $*; melhorias adicionais: #!/bin/she exec pkg-config-real.
Gilles 'SO- stop be evil'