AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 27677
In Process
Micah
Micah
Asked: 2011-02-23 22:14:45 +0800 CST2011-02-23 22:14:45 +0800 CST 2011-02-23 22:14:45 +0800 CST

在 ac-aux 中找不到 install-sh、install.sh 或 shtool

  • 772

这是我第一次尝试在 linux 机器上编译和安装任何东西。我通过 git 获得了最新版本的https://github.com/processone/exmpp并阅读了说明:

2.构建和安装

Exmpp 使用 Autotools。所以这个过程很常见:

$ ./configure
$ make
$ sudo make install

输入后./configure我得到错误

在 ac-aux 中找不到 install-sh、install.sh 或 shtool

谷歌几乎没有帮助。完全不确定我应该做什么。任何帮助将非常感激

install-from-source
  • 10 10 个回答
  • 140516 Views

10 个回答

  • Voted
  1. sk29910
    2011-02-23T22:30:08+08:002011-02-23T22:30:08+08:00

    我使用以下工具创建了配置脚本:

    libtoolize --force
    aclocal
    autoheader
    automake --force-missing --add-missing
    autoconf
    ./configure
    

    我没有所有依赖项,所以我现在无法对其进行测试,但这通常是您从 ac 文件创建配置脚本的方式。

    • 139
  2. entropy
    2012-11-11T05:30:27+08:002012-11-11T05:30:27+08:00

    好吧,我尝试了 sebastian_k 的答案,但它对我不起作用(./configure中途因极其奇怪的错误而崩溃)。

    做了什么,但是对我有用的是复制我发现的此构建日志中使用的说明

    简短的版本(所以你不必自己涉水)是:

    $ autoreconf -vif
    $ ./configure --prefix=/usr/lib/erlang/lib
    $ make
    $ sudo make install
    
    • 53
  3. Psychonaut
    2017-09-02T02:53:58+08:002017-09-02T02:53:58+08:00

    这个问题以及这里的大多数其他答案都源于对使用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为您的系统构建一个定制的脚本。

    那么什么时候需要 Autotools?

    您需要自己安装和调用 GNU Autotools 的唯一原因是您想对使用 Autotools 构建的项目进行开发工作。即便如此,除非您更改项目的依赖项,否则您可能不需要 Autotools。在这种情况下,您确实需要检查原始源,对特定于 Autotools 的输入文件( 、 等)进行适当的更改configure.ac,Makefile.am然后在它们上运行 Autotools 以生成新configure文件。如果您想独立发布修改后的包,那么您将使用 Autotools 生成的 Makefile 生成新的分发 tarball,然后将该 tarball 在线发布到某个地方。

    问题是一些开发人员公开了他们的源代码库,但忽略了发布他们的分发 tarball(或者很难找到它们的发布位置)。例如,Erlang XMPP 库的 GitHub Releases不是将其分发 tarball 发布为 GitHub Releases,而是原始源存储库的 tarball。这使得在没有 GNU Autotools 的情况下无法编译项目,首先违背了使用 Autotools 的全部目的。

    TL;DR 总结

    GNU Autotools 是开发人员用来为用户制作可移植源代码包的东西。 用户应该从这些源代码包下载和编译,而不是源代码控制系统的原始代码。如果开发人员没有提供这些源包,那么他们就没有正确使用 Autotools,应该用湿鳟鱼轻轻拍打,直到他们发现自己的方式错误。

    • 13
  4. Ravi Hegde
    2015-09-03T03:30:34+08:002015-09-03T03:30:34+08:00

    请执行以下操作来解决此问题,

    sudo apt-get install autogen libtool shtool
    

    然后进行安装

    sh autogen.sh --prefix=prefered_install_path
    make 
    make install 
    
    • 8
  5. Craig McQueen
    2016-05-03T03:29:48+08:002016-05-03T03:29:48+08:00

    我遇到了这个问题,发现这是由于以下行configure.ac:

    AC_CONFIG_AUX_DIR([build-aux])
    

    该行本身还不错,但是需要将其移近configure.ac文件顶部。

    • 4
  6. Ruslan
    2017-03-23T05:45:28+08:002017-03-23T05:45:28+08:00

    在尝试从 Mercurial 存储库编译 GNU Octave 时,您可能会遇到这个问题。修复是./bootstrap在源代码树的根目录中运行。

    • 2
  7. Shafiul Karim Bulan
    2013-06-12T22:47:57+08:002013-06-12T22:47:57+08:00

    sudo apt-get install automake autoconf

    它的工作成功

    • 1
  8. Barmaley
    2019-03-06T10:28:13+08:002019-03-06T10:28:13+08:00

    我有稍微不同的错误:

    configure: error: cannot find install-sh, install.sh, or shtool in "." "./.." "./../.."

    原来configure找不到build-aux/install-sh。我像这样链接它

    ln -s build-aux/install-sh .

    然后它建立。

    希望能帮助那里的人!

    • 1
  9. user129793
    2013-02-10T08:35:12+08:002013-02-10T08:35:12+08:00

    当我尝试./configure使用源代码并得到与发布的相同的错误时,我遇到了类似的问题。最后通过输入代码解决了我的问题:

    sudo apt-get install autotools-dev
    
    • 0
  10. rashok
    2019-02-19T22:28:15+08:002019-02-19T22:28:15+08:00

    安装autogen软件包后,此错误在 build.xml 中得到解决wolfSSL。

    sudo apt-get install autogen libtool shtool
    
    • 0

相关问题

  • 配置 clamcour 2.0 时找不到 sendmail Courier 二进制文件

  • 在 Ubiquity 源上运行 ./configure 时出错

  • 从源代码编译程序会加速我的操作系统吗?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    我需要什么命令来解压缩/提取 .tar.gz 文件?

    • 8 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Marko Smith

    如何使用命令行将用户添加为新的 sudoer?

    • 7 个回答
  • Marko Smith

    更改文件夹权限和所有权

    • 9 个回答
  • Martin Hope
    EmmyS 我需要什么命令来解压缩/提取 .tar.gz 文件? 2011-02-09 14:50:41 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve