Мой терминал (СВОБОДНЫЙ BSD) использует CShell defualt, под которым хорошо работает энергия. Но выполнять некоторый testscripts, я должен использовать оболочку удара, где некоторые мои огибающие переменные определяются. После того как я нахожусь в оболочке удара, если я запускаю энергию, она бросает эту ошибку
/libexec/ld-elf.so.1: Shared object "libgtk-12.so.2" not found, required by "vim"
vi хорошо работает все же. Кто-то может помочь мне решить это?
Вероятное объяснение состоит в том, что, в зависимости от которой оболочки Вы работаете, у Вас есть различные настройки переменной среды. Сравните вывод
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
).
Вы упоминаете терминал, но библиотека, на которую он жалуется, является библиотекой GUI. Вы заботитесь о GUI? в противном случае Вы можете не вызывать gui и не пытаться загрузить этот lib, но я далек от гуру энергии. Можно даже сбросить ДИСПЛЕЙ, и энергия должна будет работать в терминальном режиме.
Как других ответили, это - вероятно, Ваш LD_LIBRARY_PATH, или Вы используете другую энергию, чем Вы думаете. Посмотрите то, что установлено и в ударе и в csh., и различия
Также попробуйте ldd
команда, это покажет Вам, какие библиотеки Ваше приложение может загрузить. это на ударе не должно решать
Во многих системах vi и энергии являются двумя отдельными установками, энергия, более известная для общего редактирования и сокращенного, очень немногие версия зависимости, названная vi для чрезвычайного режима. Я уверен, что vi будет работать в также.