Linuxマシンで何かをコンパイルしてインストールしようとするのはこれが初めてです。 https://github.com/processone/exmpp の最新バージョンをgit経由で入手し、以下の状態を示す指示を読みました。
2.ビルドとインストール
ExmppはAutotoolsを使用します。したがって、プロセスは非常に一般的です。
$ ./configure $ make $ Sudo make install
タイプ./configure
の後、エラーが表示されます
Ac-auxにinstall-sh、install.sh、またはshtoolが見つかりません
Googleはほとんど助けにならなかった。私が何をすべきか全くわからない。どんな助けでも大歓迎です
次のツールを使用してconfigureスクリプトを作成しました。
libtoolize --force
aclocal
autoheader
automake --force-missing --add-missing
autoconf
./configure
すべての依存関係があるわけではないので、今はテストできませんが、これは通常、acファイルからconfigureスクリプトを作成する方法です。
さて、私はsebastian_kの答えを試してみましたが、うまくいきませんでした(./configure
は非常に奇妙なエラーで途中でクラッシュしました)。
しかし、私のために働いたのは、これで使用された指示をコピーすることでした 私が見つけたビルドログ
ショートバージョン(あなたがそれを自分で歩く必要はありません)は次のとおりです:
$ autoreconf -vif
$ ./configure --prefix=/usr/lib/erlang/lib
$ make
$ Sudo make install
この質問、およびここでのその他の回答のほとんどは、 GNU Build System (a.k.a. Autotools)を使用したプロジェクトがどのように配布されているかについての誤解から生じています。実際、OPで言及されている Erlang XMPPライブラリ の場合、誤解は開発者側にあるようです。
GNU Autotoolsでリリースされたプロジェクトをコンパイルしてインストールするだけであれば、ソース管理システムからチェックアウトしないでください。代わりに、開発者が提供するパッケージ化されたソースリリースをダウンロードする必要があります。これらは通常、プロジェクトのWebサイトで配布されるtarballの形式を取ります。 GitHub、Savannah、または同様のホスティングサービスで完全にホストされているプロジェクトの場合、これらのtarballは通常、「ダウンロード」または「リリース」というラベルの付いたリンクの後ろにあります。パッケージを展開し、標準の./configure && make && Sudo make install
呪文のバリアントを発声します。それで全部です; GNU Autotoolsを呼び出す必要はなく、システムにGNU Autotoolsをインストールする必要さえありません。
ユーザーであるあなたがAutoToolsパッケージのプロジェクトをコンパイルするのにGNU Autotoolsを必要としない理由は、開発者がすでにalreadyを使用しているためですUnixライクなシステムでソフトウェアを構築するために使用できる「配布tarball」を生成するプログラム。配布tarballには、ビルド環境をスキャンし、依存関係を確認し、システムに合わせてカスタマイズされたconfigure
を構築する、移植性の高いMakefile
スクリプトが含まれています。
GNU Autotoolsをインストールして起動する必要があるのは、Autotoolsでビルドされたプロジェクトでdevelopment作業を行いたい場合のみです。そして、それでも、プロジェクトの依存関係を変更しない限り、おそらくAutotoolsは必要ないでしょう。その場合、元のソースをチェックアウトし、Autotools固有の入力ファイル(configure.ac
、Makefile.am
など)を適切に変更し、それらに対してAutotoolsを実行して生成する必要があります。新しいconfigure
ファイル。修正されたパッケージを個別に公開する場合は、Autotoolsによって生成されたMakefileを使用して新しい配布tarballを生成し、そのtarballをオンラインのどこかに公開します。
問題は、一部の開発者がソースリポジトリを公開しているが、配布tarballを公開することを怠っている(または、公開されている場所を見つけにくくする)ことです。たとえば、 配布tarballをGitHubリリースとして公開する ではなく、 Erlang XMPPライブラリのGitHubリリース は未加工のソースリポジトリのtarballです。これにより、GNU Autotoolsなしでプロジェクトをコンパイルすることが不可能になり、そもそもAutotoolsを使用するという目的全体が無効になります。
GNU Autotoolsは、developersがユーザー向けのポータブルソースコードパッケージを作成するために使用するものです。 ユーザーは、ソース管理システムの元のコードではなく、これらのソースパッケージからダウンロードしてコンパイルする必要があります。開発者がこれらのソースパッケージを提供しない場合、彼らはAutotoolsを正しく使用していないので、エラーが表示されるまで ウェットマスで丁寧に叩かれます である必要があります。
この問題が発生しましたが、configure.ac
の次の行が原因であることがわかりました。
AC_CONFIG_AUX_DIR([build-aux])
行自体は悪くありませんでしたが、configure.ac
ファイルの上部に近づける必要がありました。
この問題を解決するには、次を実行してください。
Sudo apt-get install autogen libtool shtool
その後、インストールを行います
sh autogen.sh --prefix=prefered_install_path
make
make install
MercurialリポジトリからGNU Octaveをコンパイルしようとすると、この問題に遭遇する場合があります。修正方法は、ソースツリーのルートで./bootstrap
を実行することです。
Sudo apt-get install automake autoconf
正常に動作します
autogen
パッケージをインストールした後、このエラーはwolfSSL
ビルドで解決されました。
Sudo apt-get install autogen libtool shtool
私はわずかに異なるエラーがありました:
configure: error: cannot find install-sh, install.sh, or shtool in "." "./.." "./../.."
Configureはbuild-aux/install-sh
を見つけることができませんでした。私はそれをそのようにリンクしました
ln -s build-aux/install-sh .
その後、ビルドします。
それが誰かに役立つことを願っています!
ソースコードを./configure
しようとしたときに同様の問題が発生し、投稿されたのと同じエラーが発生しました。最後にコードを入力して問題を解決しました:
Sudo apt-get install autotools-dev