Mic*_*cah 97 install-from-source configure
这是我第一次尝试在 linux 机器上编译和安装任何东西。我通过 git获得了最新版本的https://github.com/processone/exmpp并阅读了说明:
2. 构建和安装
Exmpp 使用 Autotools。因此这个过程很常见:
Run Code Online (Sandbox Code Playgroud)$ ./configure $ make $ sudo make install
键入后./configure
我收到错误
在 ac-aux 中找不到 install-sh、install.sh 或 shtool
谷歌几乎没有帮助。完全不知道我应该做什么。任何帮助将非常感激
sk2*_*910 131
我使用以下工具创建了配置脚本:
libtoolize --force
aclocal
autoheader
automake --force-missing --add-missing
autoconf
./configure
Run Code Online (Sandbox Code Playgroud)
我没有所有的依赖项,所以我现在无法测试它,但这通常是您从 ac 文件创建配置脚本的方式。
ent*_*opy 49
好吧,我尝试了 sebastian_k 的答案,但它对我不起作用(./configure
中途坠毁,出现了一个非常奇怪的错误)。
做了什么,但是对我有用的是复制我发现的构建日志中使用的说明
简短版本(所以你不必自己涉水)是:
$ autoreconf -vif
$ ./configure --prefix=/usr/lib/erlang/lib
$ make
$ sudo make install
Run Code Online (Sandbox Code Playgroud)
Psy*_*aut 12
这个问题,以及这里的大多数其他答案,源于对使用GNU 构建系统(又名 Autotools)的项目是如何分布的误解。事实上,在OP 提到的Erlang XMPP 库的情况下,误解似乎是在开发人员方面。
如果您想要做的只是编译和安装随 GNU Autotools 发布的项目,那么您不应该从源代码控制系统中检出它。您应该改为下载开发人员提供的打包源版本。这些通常采用在项目网站上分发的 tarball 的形式。对于完全托管在 GitHub、Savannah 或一些类似托管服务上的项目,这些 tarball 通常会在标记为“下载”或“发布”的链接后面找到。你解开包裹并说出标准./configure && make && sudo make install
咒语的一些变体。就这样; 您不需要调用任何 GNU Autotools,甚至不需要在您的系统上安装 GNU Autotools。
作为用户,您不需要 GNU Autotools 来编译 Autotools 打包项目的原因是,开发人员已经使用各种 Autotools 程序生成了一个“发行版 tarball”,可用于在任何平台上构建软件。类Unix系统。发行版 tarball 包含一个高度可移植的configure
脚本,用于扫描构建环境、检查依赖关系并Makefile
为您的系统构建自定义。
您需要自己安装和调用 GNU Autotools 的唯一原因是,如果您想对使用 Autotools 构建的项目进行开发工作。即便如此,除非您更改项目的依赖项,否则您可能不需要 Autotools。在这种情况下,你会确实需要检查的原始来源,做出了自动工具特定的输入文件(适当的修改configure.ac
,Makefile.am
等等),并在其上运行的自动工具生成一个新configure
文件。如果你想独立发布修改后的包,那么你可以使用 Autotools 生成的 Makefile 生成一个新的发行版 tarball,然后将该 tarball 发布到网上的某个地方。
问题是一些开发人员公开了他们的源存储库,但忽略了发布他们的发行版 tarball(或者很难找到它们的发布位置)。例如,而不是发布其分布压缩包为GitHub上发布,在二郎XMPP库的GitHub上发布的原始源代码库的压缩包。这使得在没有 GNU Autotools 的情况下无法编译项目,首先就违背了使用 Autotools 的全部目的。
GNU Autotools 是开发人员用来为用户制作可移植源代码包的东西。 用户应该从这些源代码包中下载和编译,而不是从源代码管理系统中下载原始代码。如果开发人员不提供这些源包,那么他们没有正确使用 Autotools,应该用湿鳟鱼轻轻拍打,直到他们看到他们的方式错误。
小智 8
请执行以下操作来解决此问题,
sudo apt-get install autogen libtool shtool
Run Code Online (Sandbox Code Playgroud)
然后进行安装
sh autogen.sh --prefix=prefered_install_path
make
make install
Run Code Online (Sandbox Code Playgroud)