Я пытаюсь собрать и установить клиент mutt на моем Slackware (14.2). Я следую стандартной configure && make && make install
процедуре. Вот мои вопросы по теме.
- Как проверить, все ли 3 шага (configure, make, make install) прошли правильно? Я прав, что я могу перенаправить std error в файл, например:
.configure 2> configure_errors.log
сделать 2> make_errors.log
и затем предположить, что если соответствующий файл пуст (нет ошибок), то соответствующий шаг выполнен успешно?
- Какие параметры по умолчанию у
configure
скрипта? Я могу найти список параметров с их значением, но не могу найти, какие из них являются параметрами по умолчанию? - Я хотел бы установить mutt в пользовательский каталог ($HOME/mutt), но эта
--prefix
опция, похоже, не работает. Когда я добавляю--prefix=$HOME/mutt
вconfigure
скрипт, он в конечном итоге устанавливает mutt только в каталог, из которого я запустил скрипт (то есть в каталог, куда он был распакован). Мой$HOME/mutt
каталог пуст.
решение1
1) Обычный способ сделать это (или, по крайней мере, как это делаю я), если вы не уверены, что все будет работать без ошибок, — это выполнить все шаги по отдельности и просто посмотреть сообщения терминала.
Итак, сделайте configure
, посмотрите, как он жалуется на отсутствие библиотек, установите пакеты для отсутствующих библиотек, сделайте configure
еще раз и т. д., пока не получится. Затем сделайте make
, исправьте ошибки в исходных файлах, если необходимо (надеюсь, что нет). Наконец, сделайте make install
, если необходимо, как root.
Перенаправление стандартных ошибок в файлы журналов кажется неоправданно сложным, обычно вы сразу видите проблему. И терминал можно прокрутить вверх. Я пока не сталкивался с проблемой, когда мне нужно было бы это сделать, хотя иногда я просматривал подробный журнал, который он сам по configure
себе выдает (потому что он содержит тестовые программы, которые он пытается скомпилировать), если я не мог точно понять, что было не так из сообщения об ошибке.
2) Я не думаю, что есть способ найти значения по умолчанию. Вы можете посмотреть на и т. д. configure.in
, Makefile.am
чтобы получить представление о том, что он делает, если конкретная опция не ясна. С какой опцией у вас возникли проблемы?
3) В общем случае, для самостоятельно скомпилированного программного обеспечения я рекомендую устанавливать их с /usr/local
помощью stow
, как описано, напримерздесь. Установка в подкаталоги $HOME
будет работать только в том случае, если вы не устанавливаете никаких библиотек или других вещей, которые уже будут найдены /usr/local
большинством частей системы, поскольку пути поиска для них существуют по умолчанию.
К сожалению, все программное обеспечение обрабатывает установку немного по-разному, даже с помощью autotools, поэтому я не знаю, почему оно не установилось в каталог --prefix
. Какие сообщения вы получили после ввода make install
? Обычно они говорят вам, куда оно пытается установить все. Иногда части или все файлы игнорируют различные префиксы и устанавливаются в другом месте, поэтому вам приходится менять Makefile.am
и т. д., чтобы все работало правильно.