Ошибка с общими библиотеками под управлением 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 найти подходящий путь.

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