“./configure”命令不起作用

“./configure”命令不起作用

我需要编译一个包,但./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,返回名称和行,因此可能效率低下。如果项目“奇怪”(没有标准配置和编译过程),那么您可能需要使用它。

相关内容