我需要编译一个包,但./configure
命令不起作用?
我收到以下错误:
-bash ./configure : No such file or directory
那个脚本在哪里?
我使用了该locate
命令,但它没有返回任何内容。
答案1
“configure”命令不是标准的 Linux/UNIX 命令。
configure
是一个脚本,通常随大多数标准化类型 Linux 软件包的源代码一起提供,并且包含将“修补”和本地化源代码分发的代码,以便它可以在本地 Linux 系统上编译和加载。有时configure
会在没有设置执行位的情况下放在磁盘上,因此可以通过sh ./configure
...调用配置。这取决于软件包,这就是为什么他们告诉您查看任何类型的README
文件。
答案2
locate
除非您有最新的数据库,否则它将无法工作。
尝试find . -type f -name configure
改为,或updatedb
先发出命令,然后执行locate
(确保不排除当前路径)
但首先,您应该始终检查文档 - 也许编译它的方法configure
一开始就没有使用该机制。
答案3
通常,configure 位于提取软件包源代码后的顶级目录中。
例子:
mst@mst-gentoo-ws /tmp $ tar -xzf nginx-1.2.0.tar.gz
mst@mst-gentoo-ws /tmp $ ls nginx-1.2.0/configure
nginx-1.2.0/configure
所以解压后,你必须 cd 进入新创建的文件夹,这就是configure
应该在的位置。
答案4
我无法编辑该问题但想分享见解。
我需要编译一个包,但 ./configure 命令不起作用?
编译配置可能有所不同,您应该始终查找 /readme.*/i (不区分大小写)或相关的 COMPILE.md
我收到以下错误:
-bash ./configure :没有这样的文件或目录 该脚本在哪里?
它可能不存在。也许该项目的构建方式不同,如果您有 .sh 扩展名,这就是问题所在。我不建议找到第一个ls -a
目录,或者如果您不知道它是如何调用的(情况:不知道这个项目如何工作,没有您也可以参考的文档),您可以使用以下命令查找#!/bin/bash
或#!/bin/sh
在所有文件中查找grep
:
grep -Enr '#!\/bin\/(ba){0,1}sh'
它使用正则表达式-E
,递归地遍历所有子目录-r
,返回名称和行,因此可能效率低下。如果项目“奇怪”(没有标准配置和编译过程),那么您可能需要使用它。