энергия, не запускающаяся в оболочке удара

Мой терминал (СВОБОДНЫЙ BSD) использует CShell defualt, под которым хорошо работает энергия. Но выполнять некоторый testscripts, я должен использовать оболочку удара, где некоторые мои огибающие переменные определяются. После того как я нахожусь в оболочке удара, если я запускаю энергию, она бросает эту ошибку

/libexec/ld-elf.so.1: Shared object "libgtk-12.so.2" not found, required by "vim"

vi хорошо работает все же. Кто-то может помочь мне решить это?

1
задан 06.09.2010, 13:01

2 ответа

Вероятное объяснение состоит в том, что, в зависимости от которой оболочки Вы работаете, у Вас есть различные настройки переменной среды. Сравните вывод

echo $PATH
echo $LD_LIBRARY_PATH

под ударом и под csh. Возможно, $LD_LIBRARY_PATH включает местоположение libgtk-12.so.2 когда Вы находитесь в csh, но не, когда Вы находитесь в ударе. Или возможно $PATH приводит к другому vim исполняемый файл в csh и в ударе (тот, который требует gtk в ударе и того, который не требует gtk в csh). Для проверки этого работать type vim под ударом и which vim под csh.

Править: на основе Ваших комментариев существует a vim в /volume/perl/bin/vim это не работает на Вас, но Вам также нужно что-то в /volume/perl/bin быть на первом месте в PATH, вероятно, perl. У Вас есть несколько решений:

  • Поместить /volume/perl/bin/vim сначала в $PATH, и помещенный alias vim=/usr/local/bin/vim в Вашем .bashrc и Ваш .cshrc.

  • Не помещать /volume/perl/bin/vim в $PATH вообще, но расположение для запущения скриптов жемчуга с /volume/perl/bin/vim вместо Вашего локального жемчуга.

  • Не помещать /volume/perl/bin/vim в $PATH вообще. Вместо этого помещенный ~/bin сначала в $PATH, и создайте символьные ссылки на то, от чего Вы нуждаетесь /volume/perl/bin в ~/bin, например, ln -s /volume/perl/bin/perl ~/bin.

  • Установка Try PERL5LIB и нет PATH, в случае, если то, в чем Вы нуждаетесь, не является более новой версией жемчуга, но некоторых дополнительных библиотек. Например. setenv PERL5LIB /volume/perl/lib/perl/5.10 (корректируйтесь к любым каталогам, необходимы; Вы видите каталоги по умолчанию для /volume/perl/bin/perl путем выполнения /volume/perl/bin/perl -le 'map print, @INC').

  • Обновите свой жемчуг так, чтобы Ваши сценарии работали с ними (возможно, в дополнение к предыдущему предложению).

  • Установите библиотеки это /volume/perl/bin/vim потребности.

  • Удалить vim от /volume/perl/bin.

Независимо от того, что Вы делаете, я не рекомендую иметь отличающийся PATH настройки в различных оболочках, это становится сбивающим с толку очень быстро (как Вы уже заметили). Набор PATH в .login (принятие csh Ваша оболочка входа в систему, иначе в .profile).

2
ответ дан 12.12.2019, 13:11

Вы упоминаете терминал, но библиотека, на которую он жалуется, является библиотекой GUI. Вы заботитесь о GUI? в противном случае Вы можете не вызывать gui и не пытаться загрузить этот lib, но я далек от гуру энергии. Можно даже сбросить ДИСПЛЕЙ, и энергия должна будет работать в терминальном режиме.

Как других ответили, это - вероятно, Ваш LD_LIBRARY_PATH, или Вы используете другую энергию, чем Вы думаете. Посмотрите то, что установлено и в ударе и в csh., и различия

Также попробуйте ldd команда, это покажет Вам, какие библиотеки Ваше приложение может загрузить. это на ударе не должно решать

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

0
ответ дан 12.12.2019, 13:11

Теги

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