Может казаться, не обновляет мой общий путь библиотек

Я пытаюсь добавить папку библиотеки к своей системе Ubuntu.

Папка библиотеки, с которой я пытаюсь обновить систему: /home/user/programs/elastix/lib.

Я попробовал следующие вещи: Я сначала проверил LD_LIBRARY_PATH переменная ervironmental:

$ echo $LD_LIBRARY_PATH

/usr/local/cuda-9.0/lib64

И это просто содержит 1 папку (?). Так или иначе я проверил ld.so.conf:

$ cat /etc/ld.so.conf

include /etc/ld.so.conf.d/*.conf

и просто включенный все файлы конфигурации в ld.so.conf.d папка.

-rw-rw-r-- 1 root root  38 Nov 24  2014 fakeroot-x86_64-linux-gnu.conf  
-rw-r--r-- 1 root root 108 Jan 15  2018 i386-linux-gnu.conf   lrwxrwxrwx 1 root root  41 May 15  2018 i386-linux-gnu_EGL.conf -> /etc/alternatives/i386-linux-gnu_egl_conf   lrwxrwxrwx 1 root root  40 May 15  2018 i386-linux-gnu_GL.conf ->  /etc/alternatives/i386-linux-gnu_gl_conf  
-rw-r--r-- 1 root root  44 Jan 27  2016 libc.conf  
-rw-r--r-- 1 root root  38 Nov 14 17:16 randomLibs.conf  
-rw-r--r-- 1 root root  26 May 17 10:44 tensorflow_lib.conf  
-rw-r--r-- 1 root root  68 Apr 15  2016 x86_64-linux-gnu.conf   lrwxrwxrwx 1 root root  43 May 15  2018 x86_64-linux-gnu_EGL.conf -> /etc/alternatives/x86_64-linux-gnu_egl_conf    lrwxrwxrwx 1 root root  42 Sep 14 17:16 x86_64-linux-gnu_GL.conf -> > /etc/alternatives/x86_64-linux-gnu_gl_conf  
-rw-r--r-- 1 root root  56 Jan 15  2018 zz_i386-biarch-compat.conf

Это содержит 11 файлов конфигурации. Это кажется довольно странным начиная с 1 ссылки для 11 (не пустой), файлы конфигурации не имеют смысла.

Я добавил вручную папку к ld.so.conf файл:

$ cat /etc/ld.so.conf

include /etc/ld.so.conf.d/*.conf  
/home/user/programs/elastix/lib

и выполненный

$ sudo ldconfig

обновить кэш. Это сообщение об ошибке происходит, и я предполагаю, что ничто не обновляется также.

/sbin/ldconfig.real: /usr/local/cuda-9.0/lib64/libcudnn.so.7 is not a symbolic link

$ echo $LD_LIBRARY_PATH
/usr/local/cuda-9.0/lib64

Единственным путем я могу сделать, это работать путем специфического добавления папки в консоли:

$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/user/programs/elastix/lib
$ echo $LD_LIBRARY_PATH
/usr/local/cuda-9.0/lib64:/home/user/programs/elastix/lib

Так, мой вопрос - то, что продолжается здесь? Почему мои общие библиотеки не обновляются с помощью ldconfig и почему я могу только видеть 1 папку в LD_LIBRARY_PATH также?

Согласно этому сообщению я мог переместить свои общие библиотеки в эти папки:

  • /lib/
  • /usr/lib/
  • /usr/local/lib/

и заставьте его работать, но я хотел бы знать то, что является проблемой с предыдущим подходом.

Я использую Ubuntu 16.04 между прочим.

0
задан 15 November 2018 в 01:20

1 ответ

Существует соглашение об именах для библиотек совместно используемых объектов:

«Настоящий» файл библиотеки должен иметь имя libcudnn.so.7.0. Из этого файла должны быть созданы две мягкие ссылки:

$ sudo mv /usr/local/cuda-9.0/lib64/libcudnn.so.7 /usr/local/cuda-9.0/lib64/libcudnn.so.7.0
$ sudo ln -s /usr/local/cuda-9.0/lib64/libcudnn.so.7.0 /usr/local/cuda-9.0/lib64/libcudnn.so.7
$ sudo ln -s /usr/local/cuda-9.0/lib64/libcudnn.so.7.0 /usr/local/cuda-9.0/lib64/libcudnn.so

Это позволяет вызывать компилятор с переключателем -lcudnn. Также ldconfig швы для проверки этого соглашения. Смотрите также это ( ссылка ).

1
ответ дан 27 October 2019 в 04:43

Другие вопросы по тегам:

Похожие вопросы: