autoconfconfiguration警告:/ usr / bin / file:没有这样的文件或目录

当我在Ubuntu操作系统(16)中使用我的configuration时,似乎没有问题。 我已经安装了autoconf工具和依赖项。

当我在Ubuntu(16或最新)运行相同的configuration文件问题是,我没有安装任何autotools。 我收到以下错误信息。

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

这对构build过程是无害的。 我只是想了解发生了什么。 configuration文件:

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

看起来我的docker没有/ usr / bin /文件。 哪个Ubuntu软件包包含文件实用程序。 find有关'/ usr / bin / file'的有用信息的问题是该文件是一个常见的术语,find更多的信息并不容易。 在我的系统与文件实用程序,我可以从文件的手册页获得以下信息:

 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. 

我的问题是'文件'是一个非常基本的工具,或者它最近被添加到autotolls包? 我应该安装它吗?

GNU构build系统限制了 configure应该用于最大兼容性的function,包括如何编写shell代码以及哪些实用程序可供使用,以及这些实用程序中可以使用的function。

file 不在该列表中,并且应该使用AC_PATH_PROG (或类似的东西)进行testing ,所以实际上是软件包中的一个错误。 即使在configuretesting绝对要求file工作得到一个AC_MSG_ERROR说“安装文件程序”将优于解码错误信息。

所以要回答你的问题:

是'文件'一个非常基本的实用程序,或者它最近被添加到autotolls包?

不,文件不是autotools的一部分,但它是一个非常常见的实用程序被安装。 基本可能不是描述file的最佳形容词。

我应该安装它吗?

你的configure脚本依赖于它,所以我想你必须。

但它的使用是愚蠢的:大多数情况下,您可以从主机三元组中确定架构。 另外, objdump是标准的编译工具之一( objdump -f conftest.o将显示类似的信息)。 至less它会被安装。

文件似乎有其起源于BSD,并已演变(man文件)。 这是一个罕见的问题,我不期待任何答案。 我正在积累一些数据。 经过一些侦探工作后,我发现以下链接:

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

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

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

正如Charles所build议的那样,您应该通过包pipe理器来安装文件包。 对于Ubuntu的包的链接是: https : //launchpad.net/ubuntu/+source/file

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