繁体   English   中英

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

[英]Unable to run configure file if not in the same directory

我无法为手动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,但这只是一个示例软件包,我想对任何软件包手动进行此操作。 谢谢。

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

即使将范围限制为仅基于Autotools的软件包(显然,Vim并非完全如此),也没有可以确保从源代码构建的通用方法。 这就是软件打包,软件包存储库和软件包管理器如此广泛的原因之一。

作为一个已经完成了很多软件包构建工作的人,我向您保证,当我遇到一个项目时,可以通过等效的直接configure; make; make install进行打包,这是一种难得的乐趣configure; make; make install configure; make; make install configure; make; make install 当我遇见一个人时,我就过得很开心。 其余时间,我必须根据每个软件包找出任意数量的构建细节,例如

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

所有这些至少也同样适用于手动构建。 如果你不依赖别人做到这一点,那么你需要准备自己做尽可能多的那些东西因为需要为你打造每一个项目(通过使用别人建的包IE)。 从那个开始就没有办法自动化它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM