1) Обычный способ сделать это (или, по крайней мере, как я это делаю), если вы не уверены, что он будет работать без ошибок, - это выполнить все шаги по отдельности и просто посмотреть на сообщения терминала.
Так что configure
, смотрите, как он жалуется на отсутствующие библиотеки, устанавливайте пакеты для отсутствующих библиотек, повторяйте configure
и т.д. До тех пор, пока это не удастся. Затем сделайте make
, исправьте ошибки в исходных файлах, если это необходимо (надеюсь, что нет). Наконец, сделайте make install
, если необходимо, от имени пользователя root.
Перенаправление стандартной ошибки в файлы журнала звучит излишне сложно, обычно вы сразу же увидите проблему. И терминал можно прокрутить вверх. Я еще не столкнулся с проблемой, когда мне нужно было бы это сделать, хотя иногда я смотрел на подробный журнал, который configure
по себе (поскольку он содержит тестовые программы, которые он пытается скомпилировать), если я не мог понять точно, что было не так из сообщения об ошибке.
2) Я не думаю, что есть способ найти значения по умолчанию. Вы можете посмотреть файлы configure.in
, Makefile.am
и т.д., Чтобы понять, что они делают, если конкретный параметр неясен. С каким вариантом у вас проблемы?
3) Как правило, для самоскомпилированных программ я рекомендую устанавливать их в /usr/local
с использованием stow
, как описано, например, здесь. Установка в подкаталоги $HOME
будет работать только в том случае, если вы не устанавливаете какие-либо библиотеки или другие материалы, которые уже найдены в /usr/local
большинством частей системы, поскольку пути поиска для них существуют по умолчанию.
К сожалению, все программное обеспечение выполняет установку немного по-разному, даже с автоинструментами, поэтому я не знаю, почему оно не было установлено в каталог --prefix
. Какие сообщения вы получили после ввода make install
? Они обычно говорят вам, где он пытается установить все. Иногда части или все файлы игнорируют различные префиксы и устанавливаются где-то еще, поэтому вам нужно изменить Makefile.am
и т.д., Чтобы он работал правильно.