xgterm не может определить местоположение установленной библиотеки

Я устанавливаю IRAF на новой машине, и когда я пытаюсь запуститься xgterm, Я получаю сообщение об ошибке:

xgterm: error while loading shared libraries: libXmu.so.6: cannot open shared object file: No such file or directory

Однако пакет, который содержит эту библиотеку, libXmu6, и установлен и актуален.

Любая справка ценилась бы.

1
задан 2 April 2014 в 02:14

2 ответа

Существует две вещи, которые можно попробовать: (i) устанавливают -dev пакет библиотеки - например, sudo apt-get install libxmu-dev или (ii) если Вы используете установку на 32 бита IRAF в машине на 64 бита, устанавливаете библиотеку на 32 бита, например, sudo apt-get install libxmu6:i386

2
ответ дан 11 November 2019 в 09:40

Если установка dev пакета не работает, Вам, вероятно, придется экспортировать его в переменную LD_LIBRARY_PATH.

Можно найти его с find / -iname libXmu.so.6 -print 2>/dev/null, в моем случае это было в /usr/lib/x86_64-linux-gnu/libXmu.so.6

export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/libXmu.so.6/lib:${LD_LIBRARY_PATH}

NB, если $LD_LIBRARY_PATH переменная пуста в запуске, который необходимо опустить lib... вперед.

Это не изменило ситуацию для меня, и на этом совете я работал sudo apt-get install ia32-libs на который работавший, в известной степени, теперь изменяя мое сообщение об ошибке

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

(т.е. номер 4 не 6)

Это может быть установлено с sudo apt-get install libxm4, результирующее местоположение, найденное с find / -iname libXm.so.4 -print 2>/dev/null, и добавил к $LD_LIBRARY_PATH с (например, для моего результата)

export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/libXm.so.4/lib:${LD_LIBRARY_PATH}

Значение мой LD_LIBRARY_PATH был /usr/lib/x86_64-linux-gnu/libXm.so.4/lib:/usr/lib/x86_64-linux-gnu/libXmu.so.6

Это не изменило сообщение об ошибке, просящее libXm.so.4 как бы то ни было. Для этой библиотеки (то, которое я вижу, там с, располагаются...), я установил OpenMotif (не уверенный, если это необходимо),

sudo apt-get install libmotif-dev

И в конечном счете изображенный требование пакета на 32 бита будет работать с libXmu.so.6 библиотеками после установки ia32-libs, но поскольку libXm.so.4 нужно явное объявление 32-разрядного состояния при помощи ссылок в/usr/lib/i386-linx-gnu папка. Это было ясно, когда я работал:

/usr/lib/i386-linux-gnu $ ls ../*/libXm*

(показывающий особенно только ../i386-linux-gnu/libXmu.so.6), таким образом, я создал одну такую ссылку с:

sudo ln -s /usr/lib/x86_64-linux-gnu/libXm.so.4.0.4 /usr/lib/i386-linux-gnu/libXm.so.4

Мне затем удалось совершенствоваться к следующему сообщению об ошибке (woohoo!), как упомянуто на других страницах справки:

error while loading shared libraries: libXm.so.4: wrong ELF class: ELFCLASS64

... который был нечетен, так как это - то, куда я только что поместил ссылку... Эта страница предложила обходное решение, но я не мог установить libx3motif.deb как amd64 повреждает зависимость (и я не собирался пойти, удаляя решающие компоненты как этот ради этого).

Этот ответ выделяет потребность иметь 32-разрядный пакет ранее в $LD_LIBRARY_PATH чем на 64 бита.

export LD_LIBRARY_PATH=/usr/lib/i386-linux-gnu/libXm.so.4/lib:/usr/lib/x86_64-linux-gnu/libXmu.so.6.2.0/lib:/usr/lib/x86_64-linux-gnu/libXmu.so.6

Это ничего не изменило. Я пытался копировать файл в i386 папка и перенаправление ссылки

sudo cp /usr/lib/x86_64-linux-gnu/libXm.so.4.0.4 /usr/lib/i386-linux-gnu/libXm.so.4.0.4
sudo ln -fs /usr/lib/i386-linux-gnu/libXm.so.4.0.4 /usr/lib/i386-linux-gnu/libXm.so.4

( -f отметьте перенастройку сил, т.е. Вы не имеете к rm и ремейк)

Я боролся с этим на некоторое время дольше (не совсем уверенный, чем последняя капля была) до нахождения успеха с этим в моем .bashrc:

export LD_LIBRARY_PATH=/usr/lib/i386-linux-gnu/libXm.so.4/lib:/usr/lib/x86_64-linux-gnu/libXmu.so.6.2.0/lib:/usr/lib/x86_64-linux-gnu/libXmu.so.6

Так, это - доказательство, что Вам не нужны установленные пакеты на 32 бита, только для указания на символьные ссылки в папке lib на 32 бита к пакетам на 64 бита... Извините за TMI, но просто могло бы быть полезно для любого всунутое будущее

0
ответ дан 11 November 2019 в 09:40

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

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