Я пытаюсь добавить папку библиотеки к своей системе 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
также?
Согласно этому сообщению я мог переместить свои общие библиотеки в эти папки:
и заставьте его работать, но я хотел бы знать то, что является проблемой с предыдущим подходом.
Я использую Ubuntu 16.04 между прочим.
Существует соглашение об именах для библиотек совместно используемых объектов:
«Настоящий» файл библиотеки должен иметь имя 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
швы для проверки этого соглашения. Смотрите также это ( ссылка ).