Ошибка с общими библиотеками под управлением Salome-Meca
Недавно я установил последнюю версию программного обеспечения salome-meca, полученную здесь:
https://www.code-aster.org/spip.php?article303
После установки я пытаюсь запустить его, перейдя в папку ~/salome_meca/appli_V2019_univ
и выполнение ./salome
но я получил следующую ошибку:
pablo@pablo-H110M-A:~/salome_meca/appli_V2019_univ$ ./salome
runSalome running on pablo-H110M-A
Searching for a free port for naming service: 2813 - OK
Searching Naming Service + found in 0.1 seconds
SALOME_Session_Server: error while loading shared libraries: libQt5Help.so.5: cannot open shared object file: No such file or directory
Traceback (most recent call last):
File "/home/pablo/salome_meca/V2019_univ/modules/KERNEL_V9_3_0/bin/salome/orbmodule.py", line 172, in waitNSPID
os.kill(thePID,0)
ProcessLookupError: [Errno 3] No such process
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/pablo/salome_meca/appli_V2019_univ/bin/salome/runSalome.py", line 633, in useSalome
clt = startSalome(args, modules_list, modules_root_dir)
File "/home/pablo/salome_meca/appli_V2019_univ/bin/salome/runSalome.py", line 578, in startSalome
session=clt.waitNSPID("/Kernel/Session",mySessionServ.PID,SALOME.Session)
File "/home/pablo/salome_meca/V2019_univ/modules/KERNEL_V9_3_0/bin/salome/orbmodule.py", line 174, in waitNSPID
raise RuntimeError("Process %d for %s not found" % (thePID,theName))
RuntimeError: Process 18072 for /Kernel/Session not found
Searching /Kernel/Session in Naming Service
--- Error during Salome launch ---
Я думаю, что у меня проблема с библиотекой Qt5, но прежде чем что-то делать, я предпочитаю спросить, как ее решить.
1 ответ
Первоначальная ошибка произошла потому, что libQt5Help.so.5
не был найден. libqt5help5
Пакет предоставляет этот файл. Я надеялся, что установки этого пакета может быть достаточно для решения проблемы, и для некоторых читателей этого поста это может быть:
sudo apt install libqt5help5
Однако иногда конкретный пакет, который вы ищете, является одним из многих необходимых вам пакетов и часто устанавливается как зависимость от чего-то, что обеспечивает более общую функциональность. Бег apt rdepends package
иногда помогает выяснить это. Выход из apt rdepends libqt5help5
шоу python-pyqt5
а также python3-pyqt5
, Поскольку вы получаете сообщения об ошибках от Python, а это программное обеспечение, похоже, от 2019 года, я бы продолжил установку python3-pyqt5
вместо:
sudo apt install python3-pyqt5
Я ошибался в своем предыдущем убеждении, что Саломея-Мека использовала Python 2. Мои извинения!
Я не нашел конкретного совета в документации для Саломе-Мека. Так что это разумное место для начала. В моей системе мне удалось преодолеть сообщения об ошибках отсутствующих библиотек, используя:
sudo apt install qtcreator net-tools libqt5opengl5 libnlopt0
Установка qtcreator
это простой подход к получению библиотек Qt. Он устанавливает намного больше, чем, вероятно, необходимо - около гигабайта в моей системе - и если я найду лучший способ установить то, что нужно, я постараюсь обновить это с помощью этой информации.
После того, как я это сделал, все равно не началось. Я получил ошибки, подобные показанным здесь, в форме:
SALOME_Session_Server: /home/ek/salome_meca/V2019_univ/prerequisites/debianForSalome/lib/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /lib/x86_64-linux-gnu/libGLU.so.1)
SALOME_Session_Server: /home/ek/salome_meca/V2019_univ/prerequisites/debianForSalome/lib/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /lib/x86_64-linux-gnu/libQt5Xml.so.5)
SALOME_Session_Server: /home/ek/salome_meca/V2019_univ/prerequisites/debianForSalome/lib/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /lib/x86_64-linux-gnu/libQt5OpenGL.so.5)
...и так далее.
Я смог решить (или, в любом случае, обойти) эту проблему, заставив Salome-Meca использовать мою системную версию libstdc++.so.6
а не версия, которую он отправляет. Я сделал это с LD_PRELOAD
:
LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libstdc++.so.6 ./salome
Когда я запускаю Salome Meca таким образом, он запускается успешно:
Я подозреваю, что ваши ошибки, связанные с отсутствием правильных версий библиотеки, могут быть решены путем установки qtcreator
, с помощью LD_PRELOAD
указать свой libstdc++.so.6
, или оба. (Я не совсем уверен, что именно эти ошибки сказали, хотя, и я рекомендую вам обновить свой вопрос с ними, работает ли это.)
Обратите внимание, что если вы используете LD_PRELOAD
но вы не используете ПК или Mac с 64-битным процессором Intel или AMD, тогда путь, который вы пишете после =
будет отличаться от моего. Например, если вы используете 32-битную систему или систему ARM (любого размера слова), то ваша архитектура не является amd64. Вы можете искать libstdc++.so.6
найти подходящий путь.