Как собрать библиотеки Guile из исходников?

Недавно я переключился на Slackware, чтобы научиться использовать более продвинутый дистрибутив Linux. По умолчанию на нем был установлен GNU Guile 2.0, но я собрал Guile 3.0 из исходного кода. Когда я попытался собрать guile-json, я получил это сообщение при запуске скрипта configure. В инструкции написано бежать ./configure --prefix=<guile-prefix>. Каким будет префикс для того, что я пытаюсь сделать, или как мне его найти?

checking for a BSD-compatible install... /usr/bin/ginstall -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports nested variables... (cached) yes
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
configure: checking for guile 3.0
configure: checking for guile 2.2
configure: checking for guile 2.0
configure: found guile 2.0
checking for guile-2.0... no
checking for guile2.0... no
checking for guile-2... no
checking for guile2... no
checking for guile... /usr/local/bin/guile
configure: error: found development files for Guile 2.0, but /usr/local/bin/guile has effective version 3.0

person km15236    schedule 23.06.2020    source источник
comment
Самым простым решением может быть удаление Guile 2.   -  person ceving    schedule 26.06.2020


Ответы (1)


В файле readme указано использовать ./configure --prefix=<guile-prefix>. В общем, это означает, что вы используете то же значение префикса, которое вы использовали для создания хитрости, поэтому /usr/local. Это уже значение по умолчанию для автоинструментов, поэтому я не думаю, что это вам как-то поможет.

Ваша проблема в том, что скрипт configure обнаруживает системные библиотеки guile версии 2.0, но ваша guile 3.0 является первой в $PATH, что несовместимо. Вы должны убедиться, что скрипт configure может найти правильную версию guile, установив пару переменных среды:

export GUILE_LOAD_PATH=/usr/local/share/guile/site/3.0
export GUILE_LOAD_COMPILED_PATH=/usr/local/lib/guile/3.0/site-ccache
./configure --prefix=/usr/local

Очевидно, отрегулируйте значения так, чтобы они соответствовали фактическому местоположению, в которое вы установили библиотеки.

Вероятно, вам следует добавить эти переменные в ваш .profile или что-то в этом роде, чтобы они всегда правильно определялись при запуске guile.

person roptat    schedule 26.06.2020