Establezca LD_LIBRARY_PATH para las aplicaciones iniciadas desde el escritorio

8

Tengo Qt Creator instalado en Ubuntu 10.04 LTS. Cuando inicio Qt Creator desde el escritorio, puedo compilar la aplicación en la que estoy trabajando, pero no puedo ejecutarla ni depurarla. Después de luchar bastante, descubrí que LD_LIBRARY_PATH no está configurado para aplicaciones que se ejecutan desde el escritorio. Si inicio Qt Creator desde bash (donde LD_LIBRARY_PATH está configurado en .bashrc) todo se ejecuta y se depura perfectamente.

¿Cómo configuro LD_LIBRARY_PATH para que esté configurado para todas las aplicaciones en ejecución?

dwj
fuente

Respuestas:

6

Esto parece un error en la aplicación misma. Debe tener un script de contenedor que establezca correctamente las LD_LIBRARY_PATHvariables necesarias . Sin embargo, tenga cuidado al escribir una secuencia de comandos de este tipo, ya que no desea tener ninguna parte vacía de la LD_LIBRARY_PATHcadena entre los dos puntos que utiliza como separadores de ruta. Por ejemplo, esto podría resultar en una ruta incorrecta, si la variable estaba vacía inicialmente (lo que resulta en una cadena vacía principal antes de los dos puntos):

LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/some/path/for/app"

Entonces, al agregar una ruta, primero querrá probar la cadena vacía. Por ejemplo, usando el código de shell:

LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}/some/path/for/app
Kees Cook
fuente
2

Cree un nuevo archivo /etc/ld.so.conf que contenga:

# Begin /etc/ld.so.conf
/lib
/usr/lib
/usr/X11R6/lib
# whatever else #

Actualice el caché del cargador dinámico ejecutando:

ldconfig
Extensor
fuente
0

Además de .bashrc, también establece la variable de entorno en .profile. La sesión procesará y cargará este archivo, por lo que debería afectar a todo lo que se ejecute como usuario. Además: este archivo dice que Bash no lo lee si .bashrcexiste, pero parece que todavía se aplica (tal vez porque Bash hereda la sesión X desde donde se inició). Sin embargo, no está de más tener la variable en ambos archivos.

Jacob Peddicord
fuente
Intenté crear .profile también sin suerte.
dwj
Leí en alguna parte que hay una característica de "seguridad" de Ubuntu (¿Debian?) Que no le permite configurar LD_LIBRARY_PATH al inicio ya que se sobrescribe después de cargar .profile. Todavía hay soluciones alternativas.
AlfC
0

configúrelo en /etc/bash.bashrc cerca de la parte superior para realizar un cambio amplio en el sistema durante el arranque.

Roop
fuente