Я создал символическую ссылку из файла в «/ opt / bladir / bla» на «bla». Итак, «бла» теперь находится в «/ usr / bin / bla». Но если я хочу вызвать «бла» на терминале, то нет такого файла или ошибка каталога. Я посмотрел на «/ usr / bin / bla» и файл правильно связывается с «/opt/bladir/bla".
В чем может быть ошибка?
П.С. Вот моя терминальная «запись»: sudo ln -s /opt/bladir/bla bla
Спасибо!
€: Проблема решена. Согласно Списку возможностей, 12.04 должна иметь поддержку Multiarch ... 'следует'. Я получил ia32-libs от synaptic, и теперь программа работает нормально. Как это выглядит, мои символические ссылки были правильными.
Спасибо за все ответы!
РЕДАКТИРОВАТЬ: решение ниже не работает. Очевидно, что символическая ссылка не работает, потому что file -L
не может открыть символическую ссылку / usr / bin / bla. В этом случае сделайте следующее:
sudo ln -sf /opt/bladir/bla /usr/bin/bla
используйте полные пути (-f - принудительно перезаписывать предыдущую символическую ссылку, если она есть).
Хм. Я думаю, что программа "bla" может искать вещи, которые установлены в / opt / bladir, и не может их найти. Например, это может быть оболочка сценария оболочки вокруг исполняемого файла Java с путем относительно текущего каталога: но текущий каталог - / usr / bin /, а не / opt / bladir /.
Если следующие работы
file -L /usr/bin/bla
... тогда определенно не проблема с вашей символической ссылкой.
Проверьте, является ли «bla» сценарий оболочки, который вы можете изменить, загляните внутрь - возможно, вы найдете проблему. Возможно, лучше добавить / opt / bladir в вашу PATH.
Часто этот тип сообщения об ошибке отображается, если у вас не включен бит выполнения. Проверьте, дано ли основному файлу и ссылке разрешение на выполнение.
Я подозреваю, что ваш /opt
может быть смонтирован из отдельного раздела, и он не смонтирован с опцией exec