当我在一个ubuntu操作系统(16)中使用我的configure时,似乎没有问题,我已经安装了autoconf工具和依赖项。
当我在ubuntu(16或最新版本)中运行相同的配置文件时,问题是我没有安装任何autotools。我得到了以下错误信息。
./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"是一个非常基本的实用程序还是最近添加到autotoll软件包中的?我应该安装它吗?
3条答案
按热度按时间gwbalxhn1#
GNU Build System限制了
configure
为实现最大兼容性而应该使用的特性,包括如何编写shell代码、哪些实用程序可供使用以及您可以从这些实用程序中期待的特性。file
不在这个列表中,应该用AC_PATH_PROG
(或类似的东西)测试,所以这确实是包中的一个bug。即使在configure
中的测试绝对需要file
才能工作,得到一个AC_MSG_ERROR
说“安装文件程序”也比解码错误消息更好。为了回答你们的问题:
“file”是一个非常基本的工具,还是最近才加入快易通的软件包?
不,file不是autotools的一部分,但它是一个很常见的工具,Basic可能不是描述
file
的最佳形容词。我应该安装吗?
您的
configure
脚本依赖于它,所以我想您必须这样做。但它的用法有点傻:大多数时候你可以从host triplet中确定架构。另外,
objdump
是标准编译器工具之一(objdump -f conftest.o
将显示类似的信息)。至少它将被安装。nbysray52#
文件似乎有它的起源在BSD和一直在演变(人文件)。这是一个罕见的问题,我不期待任何答案。我试图积累一些数据。经过一些侦查工作,我发现以下链接:
用于实现的https://travis-ci.org/file/file github页面
unix文件命令:http://www.computerhope.com/unix/ufile.htm
维基页面:https://en.wikipedia.org/wiki/File_(command)
正如Charles所建议的,你应该通过软件包管理器来安装文件包,对于ubuntu,这个软件包的链接是:https://launchpad.net/ubuntu/+source/file
不确定哪个来源是真实的实现。我不是操作系统Maven,其他人请评论和更新。
bweufnob3#
或在Dockerfile中: