如果不在同一目录中,则无法运行配置文件

问题描述 投票:0回答:1

我无法为手动tar.gz软件包安装运行配置文件。例如,解压缩我的文件后,我运行

$ sudo ./vim81/configure
[sudo] password for cli2:
./vim81/configure: line 6: cd: src: No such file or directory

但是,如果我在配置文件所在的目录中,我可以运行配置文件。

$ ./configure
configure: loading cache auto/config.cache
checking whether make sets $(MAKE)... yes
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
...

我的问题是如果我不在源文件的同一目录下,我该如何执行配置文件?

我知道我可以使用yumapt-get来安装vim,但它只是一个示例包,我想手动为任何包执行此操作。谢谢。

linux installation autotools configure autoconf
1个回答
1
投票

我知道我可以使用yumapt-get来安装vim,但它只是一个示例包,我想手动为任何包执行此操作。

即使您将范围限制为仅基于Autotools的软件包(显然Vim不是,确切地说),也没有确定来源的通用配方。这就是软件包装,软件包存储库和软件包管理器变得如此普遍的原因之一。

作为一个已经进行了大量包装建设的人,我向你保证,当我遇到一个我可以通过相当于一个直接的configure; make; make install打包的项目时,这是一种难得的快乐。当我遇到一个时,它就是我的一天。其余的时间,我必须在每个包的基础上找出任意数量的构建细节,例如

  • 正在使用哪个配置/构建系统(如果有) Autotools / CMake / Python setuptools /等 这会影响所需的构建/安装命令,以及诸如可以/应该用于构建的工作目录的详细信息
  • 哪些配置选项需要或适用于目标计算机,以及如何将它们表达到构建系统 可以是configure脚本的选项,make的参数,Makefile的手动调整,互动问卷的答案,......
  • 需要什么依赖项,在什么版本,以及如果我还没有它们如何获取它们
  • 有时,如何清理安装后,例如, 删除我不想安装的文件 移动到错误位置的文件(尽管可以使用最佳构建配置) 修复文件权限或所有权
  • 有时,额外的安装任务,如 添加shell配置文件 创建符号链接 使用系统的服务控制子系统注册服务 安装动态链接器配置文件

所有这些至少同样适用于手动构建。如果您不依赖其他人这样做(即使用由其他人构建的软件包),那么您需要做好准备,尽可能多地完成您构建的每个项目所需的内容。没有办法从那个起点自动化它。

© www.soinside.com 2019 - 2024. All rights reserved.