3

Вчера я скачал приложение под названием mvPod, которое пришло в виде тарбола.

У меня сложилось впечатление, что если у меня есть какие-либо программы, не установленные менеджером пакетов, они принадлежат /usr/local а не /usr . Но если я помещаю исполняемый файл в /usr/local/bin , а файлы jar в /usr/local/lib , я получаю ошибки времени выполнения из-за невозможности загрузки классов Java. Поэтому я прибегнул к тому, чтобы положить вещи в /usr/bin и /usr/lib и все заработало нормально

Это что-то, что может быть исправлено только путем компиляции по-другому, или я пропускаю шаг установки?

Я использую Ubuntu Karmic.

2 ответа2

5

Проблема с ручной установкой в /usr а не в /usr/local заключается в том, что

  • вы не узнаете сразу, как что-то было установлено, что затрудняет решение проблем позже
  • какой-то пакет может затереть часть вашей установки или наоборот (только часть намного хуже, поверьте мне)

Причина, по которой установка /usr/local не работала, почти наверняка связана с тем или иным путем поиска. Они могут быть настроены для каждой программы, выполняющей поиск или сохраненной в переменных среды, или часто используют оба метода. Для всех типов программ вы должны быть уверены, что переменные среды PATH , LD_LIBRARY_PATH и MAN_PATH обновлены. Java может включать CLASS_PATH или что-то подобное. Возможно, вы получите более конкретный ответ здесь, или, в крайнем случае, всегда есть документация.


Другое дело: некоторые unixs ожидают локальной установки в /opt а не в /usr/local . Это всегда стоит проверить местную конвенцию об этом.

1

Вы можете использовать опцию --prefix с configure, make или обоими.

./configure --prefix =/usr

или же

make prefix =/usr install

Это установит в /usr вместо по умолчанию /usr/local .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .