【问题标题】:autoconf configure warning: /usr/bin/file: No such file or directoryautoconf 配置警告:/usr/bin/file: 没有这样的文件或目录
【发布时间】:2017-02-04 00:30:12
【问题描述】:

当我在 ubuntu OS (16) 中使用我的配置时,似乎没有问题。我已经安装了 autoconf 工具和依赖项。

当我在 ubuntu(16 或最新版本)中运行相同的配置文件时,问题是我没有安装任何自动工具。我收到以下错误消息。

./configure: line 7022: /usr/bin/file: No such file or directory

这对构建过程无害。我只是想了解发生了什么。配置文件:

7022     case `/usr/bin/file conftest.o` in
7023       *32-bit*)

看来我的 docker 没有 /usr/bin/file。哪些 ubuntu 软件包包含文件实用程序。查找有关“/usr/bin/file”的任何有用信息的问题在于,文件是一个常见的术语,很难找到更多信息。在使用文件实用程序的系统上,我可以从文件的手册页中获取以下信息:

AVAILABILITY
     You can obtain the original author's latest version by anonymous FTP on ftp.astron.com in the direc‐
     tory /pub/file/file-X.YZ.tar.gz.

我的问题:'file' 是一个非常基本的实用程序还是最近添加到 autotolls 包中?我应该安装它吗?

【问题讨论】:

  • 是的,file 是一个非常基本的实用程序。提供它的包简称为file;请参阅launchpad.net/ubuntu/+source/file——您应该使用操作系统的包管理工具来安装供应商提供的二进制包,而不是尝试从源代码安装。
  • 顺便说一句,如果你想用google搜索一个软件包,“package”是一个重要的关键字添加。谷歌搜索“ubuntu 文件包”将上面的链接作为第二个链接,上面的链接也是相关的。
  • 查尔斯感谢您的评论,现在我清楚了。 build-essential 似乎没有包含它。
  • 对此我并不感到特别惊讶——file 是一个足够标准的实用程序,可以合理地期望任何没有被剥离到最低限度的必需品的系统都会拥有它;坦率地说,最小的图像通常不是用于构建的正确选择。

标签: ubuntu docker configure autoconf


【解决方案1】:

configure 应该用于最大兼容性的 GNU 构建系统 restricts the features,包括如何编写 shell 代码和哪些utilities 可供使用,以及您可以从这些实用程序中获得的功能。

filenot 在该列表中,应该是 tested forAC_PATH_PROG(或类似的东西),所以确实是包中的一个错误。即使configure 中的测试绝对需要file 才能工作,让AC_MSG_ERROR 说“安装文件程序”比解码错误消息更可取。

所以回答你的问题:

'file' 是一个非常基本的实用程序还是最近添加到 autotolls 包中?

不,文件不是自动工具的一部分,但它是一个非常常见的安装实用程序。 Basic 可能不是描述file 的最佳形容词。

我应该安装它吗?

你的 configure 脚本依赖它,所以我猜你必须这样做。

但它的用法有点傻:大多数时候你可以从host triplet 确定架构。此外,objdump 是标准编译器工具之一(objdump -f conftest.o 将显示类似信息)。至少它会被安装。

【讨论】:

  • 生成的代码需要'file'程序,而configure.ac或Makefile.am没有明显需要'file'。仅在没有“文件”二进制文件的系统上运行配置时才暴露依赖关系。
  • 对,但是在 configure.ac(或它使用的 .m4 宏之一)内部的某处将在运行 autoconf 以生成 configure 脚本时生成第 7022-7023 行。 .
【解决方案2】:

文件似乎起源于 BSD,并且一直在发展(man 文件)。这是一个罕见的问题,我不期待任何答案。我正在尝试积累一些数据。经过一番侦探工作,我发现了以下链接:

https://travis-ci.org/file/filegithub页面实现

unix 文件命令:http://www.computerhope.com/unix/ufile.htm

维基页面:https://en.wikipedia.org/wiki/File_(command)

按照 Charles 的建议,您应该通过包管理器安装文件包。对于 ubuntu,包的链接是:https://launchpad.net/ubuntu/+source/file

不确定哪个来源是真正的实现。我不是操作系统专家,其他人请评论和更新。

【讨论】:

    猜你喜欢
    • 2013-12-15
    • 2023-04-04
    • 2016-03-28
    • 2015-11-29
    • 1970-01-01
    • 2015-08-16
    • 2016-02-20
    • 2021-10-24
    • 2019-12-10
    相关资源
    最近更新 更多