Recibo errores de biblioteca compartida cada vez que parezco instalar software manualmente. Al ejecutarlo echo $LD_LIBRARY_PATH
aparece como ... nada . Intenté agregar /usr/local/lib
a un .conf
archivo /etc/ld.so.conf.d
pero parece que nunca se ejecuta.
Esto tampoco funciona (comillas u otros):
LD_LIBRARY_PATH="/usr/local/lib"
export LD_LIBRARY_PATH
sudo ldconfig -v
El valor se establecerá temporalmente, pero no retendrá el valor si salgo de una ventana de terminal. Reiniciar tampoco hace nada.
sudo
environment-variables
shared-library
Ira disidente
fuente
fuente
~/.bashrc
Respuestas:
Agregue lo siguiente a su
.bashrc
:Esto te permitirá reiniciar tu computadora y aún así tener esa ruta asignada.
fuente
/etc/ld.so.conf.d
?En Red Hat Enterprise Linux (RHEL) 6,
/etc/ld.so.conf
contieneinclude ld.so.conf.d/*.conf
. Sin esta línea, los elementos/etc/ld.so.conf.d/*.conf
nunca se analizarían.Para ver qué bibliotecas / directorios
ldconfig
está analizandofuente
/etc/ld.so.conf
antes porque tenía curiosidad por lo que contenía. Tenía lainclude
línea.ldconfig -v
puede darte una idea de por qué no se incluye la biblioteca. Puede ejecutarldconfig -p
para imprimir las bibliotecas y directorios que están en el archivo de caché actual.Finalmente resolví esto con un alias:
Asegúrese de utilizar comillas simples, de modo que las variables se expandan en el momento de la invocación, no en el momento en que se define el alias.
Esta:
(Se puede ver lo que las cosas se ponen establece en la:
sudo bash -c "echo $HOME"
)Estoy trabajando con controladores personalizados y siempre tengo que sudo mis programas de prueba para acceder al controlador. No quiero instalar versiones de prueba de bibliotecas en el área del sistema, así que uso LD_LIBRARY_PATH para configurar un directorio de prueba específico según sea necesario. No puedo establecer un LD_LIBRARY_PATH fijo, necesito poder cambiarlo y mantener la configuración actual. Preservar PATH y HOME me da acceso a mi entorno de trabajo: scripts y estructura de directorios.
Este alias evita tener que otorgar permisos generales en sudoers ... y aparentemente no hay solución para LD_LIBRARY_PATH independientemente de la configuración de sudoers de todos modos. No funciona sudo dentro de los scripts, pero pueden codificarse según sea necesario.
fuente