Библиотеки Matlab QT предотвращают запуск программ

Уже предложенный

tar zcf home-backup.tar.gz --exclude home-backup.tar.gz.

подойдет, но мне не очень нравятся tar-файлы, содержащие множество файлов вместо одного каталога. Если вы хотите сделать то же самое, но как один каталог:

cd /home
tar -czf yourhome/yourhome.tgz --exclude yourhome.tgz yourhome/

В обоих случаях вы получите сообщение об ошибке:

tar: yourhome: file changed as we read it

что может быть проблемой, если вы хотите сделать резервную копию из сценария и проверить код выхода, и в любом случае, если вы проигнорируете это, это может скрыть другую проблему. Вы можете устранить это, создав пустой tgz перед началом резервного копирования :

.
touch yourhome.tgz
0
16.06.2021, 21:23
1 ответ

Вы почти никогда не должны устанавливать LD_LIBRARY_PATH, по крайней мере, не в вашем.bashrc, чтобы он применялся все время.

Можно установить его при запуске определенной программы или для тестирования с новыми/другими библиотеками, например.

LD _БИБЛИОТЕКА _PATH="$LD _БИБЛИОТЕКА _ПУТЬ :$MATLAB _LIB" /path/to/matlab

Это устанавливает его только для этого вызова программы. Если вам нужно делать это каждый раз, когда вы запускаете matlab, используйте функцию, псевдоним или оболочку сценария оболочки. например.:

alias matlab='LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$MATLAB_LIB" matlab'

Проблема заключается в том, что динамический компоновщик среды выполнения linux, ld.so, ищет в LD _LIBRARY _PATH библиотеки до каталогов по умолчанию, перечисленных в/etc/ld.so.conf/etc/ld.so.conf.d/), которые означает, что библиотеки в LD _LIBRARY _PATH переопределяют стандартные системные библиотеки.

Иногда это полезно, например. при тестировании разрабатываемых версий библиотек, но в противном случае имеет тенденцию портить вашу систему.

В вашем случае, Matlab, вероятно, связан со старой (или просто другой )версией библиотек Qt (и libpython, судя по всему ), и нуждается в этих конкретных версиях. Любая другая программа, установленная в вашей системе, была скомпилирована с версиями системной библиотеки и сломается, когда вы скажете ld.soиспользовать версии Matlab. Итак, не делайте этого.

Быстрый поиск в Google дал следующие страницы с более подробным описанием проблемы:

Кстати, если вы что-то компилируете, используйте опции -Lс вашим компоновщиком и/или установите LDFLAGS, а не LD_LIBRARY_PATH.

1
28.07.2021, 11:24

Теги

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