Я впервые пытаюсь скомпилировать и установить что-нибудь на машине с Linux. Я получил последнюю версию https://github.com/processone/exmpp через git и прочитал инструкции, в которых говорится:
2. Сборка и установка
Exmpp использует Autotools. Поэтому процесс довольно распространен:
$ ./configure $ make $ sudo make install
после типа ./configure
я получаю ошибку
Не удается найти install-sh, install.sh или shtool в ac-aux
Гугл мало чем помог. Совершенно не уверен, что я должен делать. Любая помощь приветствуется
Ну, я попробовал ответ sebastian_k, и он не работал для меня (
./configure
разбился на полпути с очень странной ошибкой).Однако, что мне помогло, так это скопировав инструкции, использованные в этом журнале сборки, который я нашел
Короткая версия (так что вам не придется разбираться с ней самостоятельно):
источник
autoreconf -i
является правильным ответом (v
и,f
как правило, необязательны)Этот вопрос и большинство других ответов здесь возникают из-за неправильного понимания того, как распределяются проекты, использующие систему сборки GNU (или Autotools). Фактически, в случае библиотеки Erlang XMPP, упомянутой в OP, недоразумение, по-видимому, принадлежит разработчикам.
Правильно получить программное обеспечение
Если все, что вы хотите сделать, это скомпилировать и установить проект, выпущенный с помощью GNU Autotools, то вам не следует проверять его из системы контроля версий . Вместо этого вы должны загрузить упакованный исходный выпуск, предоставленный разработчиком. Они обычно принимают форму тарболлов, распространяемых на веб-сайте проекта. Для проектов, которые полностью размещены на GitHub, Savannah или подобном хостинг-сервисе, эти архивы обычно находятся по какой-либо ссылке, помеченной как «Скачать» или «Релизы». Вы распаковываете пакет и произносите какой-то вариант стандартного
./configure && make && sudo make install
заклинания. Вот и все; вам не нужно вызывать какие-либо из инструментов GNU Autotools, и вам даже не нужно устанавливать в вашей системе инструменты GNU Autotools.Причина, по которой вам, пользователю, не нужны GNU Autotools для компиляции проекта, упакованного в Autotools, заключается в том, что разработчик уже использовал различные программы Autotools для создания «архива распространения», который можно использовать для сборки программного обеспечения на любом Unix-подобная система. Дистрибутивный дистрибутив содержит легко переносимый
configure
скрипт, который сканирует среду сборки, проверяет зависимости и создаетMakefile
индивидуальные настройки для вашей системы.Итак, когда вам нужны автоинструменты?
Единственная причина, по которой вам нужно самостоятельно установить и запустить GNU Autotools, - это если вы хотите заняться разработкой проекта, созданного с помощью Autotools. И даже тогда вам, вероятно, не понадобятся автоинструменты, если вы не измените зависимости проекта. В этом случае, вам действительно нужно будет проверить оригинальный источник, внести соответствующие изменения в Autotools конкретного входных файлов (
configure.ac
,Makefile.am
и т.д.), и запустить Autotools на них , чтобы создать новыйconfigure
файл. Если вы хотите независимо публиковать исправленный пакет, то вы должны использовать Makefile, сгенерированный Autotools, для создания нового архива дистрибутива, а затем опубликовать этот архив где-нибудь в сети.Проблема в том, что некоторые разработчики делают свой исходный репозиторий общедоступным, но забывают публиковать свои дистрибутивы (или затрудняются найти, где они опубликованы). Например, вместо того, чтобы публиковать свои tar-архивы распространения как GitHub Releases , релизы GitHub библиотеки Erlang XMPP являются tarballs из исходного хранилища исходного кода. Это делает невозможным компиляцию проекта без автоинструментов GNU, что в первую очередь сводит на нет все цели использования автоинструментов.
TL; DR сводка
GNU Autotools - это то, что разработчики используют для создания переносимых пакетов исходного кода для пользователей. Пользователи должны загружать и компилировать эти исходные пакеты, а не исходный код из системы контроля версий. Если разработчики не предоставляют эти исходные пакеты, то они не используют Autotools правильно, и их следует осторожно шлепать мокрой форелью, пока они не увидят ошибку своего пути.
источник
./configure && make && sudo make install
как вы предложили во втором абзаце.У меня была эта проблема, и я обнаружил, что это связано со следующей строкой
configure.ac
:Сама строка не была плохой, однако ее нужно было переместить ближе к началу
configure.ac
файла.источник
Пожалуйста, сделайте следующее, чтобы решить эту проблему,
Затем сделайте установку
источник
При попытке скомпилировать GNU Octave из репозитория Mercurial вы можете столкнуться с этой проблемой. Исправление заключается в том, чтобы запускаться
./bootstrap
, находясь в корне исходного дерева.источник
sudo apt-get install automake autoconf
его работы успешно
источник
У меня была похожая проблема, когда я пытался
./configure
исходный код и получил ту же ошибку, что и опубликованные. Наконец, решил мои проблемы, введя код:источник
После установки
autogen
пакета эта ошибка была исправлена вwolfSSL
билде.источник
У меня была немного другая ошибка:
configure: error: cannot find install-sh, install.sh, or shtool in "." "./.." "./../.."
Оказывается, настроить не удалось найти
build-aux/install-sh
. Я связал это такln -s build-aux/install-sh .
тогда это строит.
Надеюсь, что это поможет кому-то там!
источник