我正在尝试从源代码(通过 git)安装 Debian 软件包。我下载了包,更改到包的目录并运行./configure命令,但它返回bash: ./configure: No such file or directory. 可能是什么问题?一个configure.ac文件位于程序文件夹。
./configure
make
sudo make install
Run Code Online (Sandbox Code Playgroud) 是VAR=value ./configure一样的./configure VAR=value吗?
在第一种情况下,shell 设置环境变量,在第二种情况下,configure 脚本将字符串'VAR=value'作为参数,然后大概设置变量。我想知道 configure 是否对变量执行了其他操作(可能会忽略或过滤某些值),以及为什么它首先将变量作为参数。
我正在处理一个具有自定义INSTALL文件的项目。运行automake --add-missing(或更准确地说,autoreconf -i)将生成 GNU 默认INSTALL文件,并用它覆盖我们的文件。
我怎样才能防止这种行为?我希望它要么根本不生成 GNUINSTALL文件,要么用不同的名称创建它。
另外,我不想禁用automake可能生成的任何其他文件。
编辑1:从automake手册:
如果
--add-missing给出该选项,automake将添加INSTALL文件的通用版本以及COPYING包含当前版本的 GNU 通用公共许可证 [...] 文本的文件。但是,现有COPYING文件永远不会被automake.
它说现有COPYING文件不会被覆盖,但没有说明该INSTALL文件的任何内容,因此它似乎会被无条件覆盖。
编辑 2:根据要求,这是我的configure.ac和Makefile.am,以及autogen.sh我们运行到autoreconf项目的内容:
configure.ac:
AC_INIT([program name], [version number], [bug report], [short name], [url])
AC_CONFIG_SRCDIR([Main/Source/main.cpp])
AM_PROG_AS
AC_CANONICAL_TARGET
AM_INIT_AUTOMAKE
AC_PROG_CC
AC_PROG_CXX
CFLAGS="$CFLAGS $SDL_CFLAGS "
LIBS="$LIBS $SDL_LIBS" …Run Code Online (Sandbox Code Playgroud) 很多次当我运行时configure,我收到以下消息:
checking minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
Run Code Online (Sandbox Code Playgroud)
configure运行时没有错误或警告,但每次都收到一条消息并且不明白它的含义,这有点令人不安。我做了一些研究,知道 Minix 是一个轻量级的类 Unix 操作系统,但不知道为什么要configure检查这个特定文件的存在。
有什么作用minix/config.h,有什么configure用途?
我编译了一个使用 autotools 作为构建系统的包 ( autoreconf, ./configure, make, make install)。
./configure 当包裹丢失时停止。
对于每个丢失的包,我会查找它的名称,然后要么查找,要么apt install package在不可用的情况下从源代码编译它。
然后我./configure再次运行,它告诉我另一个未满足的依赖项的名称。
如果只有一两个丢失的包,这是可以的。但是有19个!
libmspack-dev
libglib2.0-dev
libpam0g-dev
libssl-dev
libxml2-dev
libxmlsec1-dev
libx11-dev
libcunit1-dev
libxext-dev
libxinerama-dev
libxi-dev
libxrender-dev
libxrandr-dev
libxtst-dev
libgdk-pixbuf2.0-dev
libgtk-3-dev
libgtkmm-3.0-dev
libtool
dnet
Run Code Online (Sandbox Code Playgroud)
我想./configure继续出错,并一次显示所有丢失的包,以便我可以一次安装它们。否则,它是漫长而痛苦的运行./configure和apt install19倍。
编译并安装 GNU automake 1.15 后,每当我运行 automake 时都会出现此错误:
Unescaped left brace in regex is deprecated, passed through in regex;
marked by <-- HERE in m/\${ <-- HERE ([^ \t=:+{}]+)}/
at /usr/local/bin/automake line 3936
Run Code Online (Sandbox Code Playgroud)
我正在运行 perl v5.22.0。
希望创建一个 Linux 安装程序,它的工作方式类似于 Windows 上的 Inno Setup(这是在 Windows 上创建安装程序的一个很棒的小工具)。
我的项目非常简单(只有几个文件夹),所以我认为使用autotools或cmake太费力了。
有没有像 Inno Setup 这样简单但适用于 Linux 的东西?
我正在我的 Debian Stretch 系统上安装 OpenOCD。当我运行./configure它时报告找不到 libusb。
...
checking for LIBUSB1... no
configure: WARNING: libusb-1.x not found, trying legacy libusb-0.1 as a fallback; consider installing libusb-1.x instead
checking for LIBUSB0... no
...
Run Code Online (Sandbox Code Playgroud)
我安装了正确的依赖项,但仍然收到错误。
libhidapi-libusb0/stable,now 0.8.0~rc1+git20140818.d17db57+dfsg-1 amd64 [installed,automatic]
libusb-1.0-0/stable,now 2:1.0.21-1 amd64 [installed,automatic]
libusb-1.0-0-dev/stable,now 2:1.0.21-1 amd64 [installed]
Run Code Online (Sandbox Code Playgroud)
是什么赋予了?
在https://unix.stackexchange.com/a/141619/674
我不会只存储生成文件。虽然卸载对象可能不会(或perhap,不应该)需要什么成功,这不是一个保证。
所以这意味着保留原始包的副本。但是,如果有旧版本的公共存档并且您不担心它会消失,那就没什么意义了。无论如何,您可以稍后再次下载它。唯一的问题是,对于自动工具,您需要先运行
./configure,如果您使用不同的选项uninstall可能会遗漏一些东西——但我认为这不是一个大问题。有时,我会记录某些东西的特定配置。我把独立的源码包放在
/usr/local/src.
为什么“对于自动工具,你需要先运行./configure,如果你使用不同的选项uninstall可能会错过一些东西”?
卸载通过 configure、make 和 make install 安装的应用程序需要配置文件的原因是什么?
谢谢。