Портативный Бач Систем

I am working in в server (I am not the admin) where I must run jobs in .pbs format so I хан disconnect my computer while в job is running.

The problem is that I cannot run in .pbs format the same commands гm able to run in .sh format, it says:

error while loading shared libraries: libftgl.so.2: cannot open shared object file: No such file or directory

This library is located in /usr/lib264.

I tried to export this library but в I мае have подарил it wrong.

How to do it exactly?

.sh and .pbs files

1
задан 23 December 2015 в 11:13

1 ответ

Проблема - это ld (компоновщик GNU), не может найти библиотеку, потому что библиотека не находится ни один в ld доверяемый путь, ни путь библиотеки были сделаны доступными для ld другими средствами.

Таким образом, необходимо сделать путь библиотеки доступным для ld.

Так как у Вас нет полномочий администрирования, необходимо будет переопределить локальное ld настройки, которые могут быть сделаны путем добавления пути к LD_LIBRARY_PATH переменная среды:

printf "export LD_LIBRARY_PATH=\"$LD_LIBRARY_PATH:/usr/lib264\n\"" >>~/.bashrc

И путем определения источника ~/.bashrc применять изменения в рабочей оболочке:

. ~/.bashrc

"Правильный" способ сделать библиотеки содержавшимися в /usr/lib264 доступный в масштабе всей системы должен был бы добавить a .conf файл, содержащий путь библиотеки в /etc/ld.so.conf.d/ и обновить ld кэш.

Это требует полномочий администрирования, таким образом, это не относится к Вашему случаю; однако я оставляю это для других людей, спотыкающихся через этот ответ.

Во-первых, нужно добавить a .conf файл, содержащий путь библиотеки в /etc/ld.so.conf.d/:

printf "/usr/lib264\n" | sudo tee -a /etc/ld.so.conf.d/other_libraries.conf

Затем нужно работать ldconfig обновить ld кэш:

ldconfig

После этого путь библиотеки должен быть доступен ld в масштабе всей системы.

3
ответ дан 7 December 2019 в 12:42

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

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