autoconf - `autoreconf` 如何创建 m4/ 文件夹?
问题描述
我遇到了一个问题- 我发现了非常奇怪的情况:
- 我在本地运行 Docker 映像并在那里运行
autoreconf -i
,我得到了正确且健壮./configure
的脚本。 - 然后我
autoreconf -i
在同一个 Docker 镜像中运行,但在 Gitlab CI 下。而且我得到了损坏./configure
的脚本 - 一些 M4 宏没有替换为它们的 shell 代码,因此 Bash 无法执行它们并将它们视为语法错误。
不同之处在于m4/
两次运行的文件夹:成功的m4/
文件夹包含以下文件:
aria2_arg.m4
ax_check_compile_flag.m4
ax_cxx_compile_stdcxx_11.m4
codeset.m4
fallocate.m4
fcntl-o.m4
gettext.m4
... # and so on
但在失败的(Gitlab CI)m4/
文件夹中有:
gettext.m4
fcntl-o.m4
# ... and so on
和aria2_arg.m4
, ax_check_compile_flag.m4
, ax_cxx_compile_stdcxx_11.m4
,fallocate.m4
和其他人都不见了。我不知道如果 Docker 映像在两种情况下都相同,那怎么可能,但是......如何autoreconf
创建m4/
文件夹?如果其内容的来源是 Docker 镜像本身(我不知道是不是真的,这只是我的建议),那么为什么两种情况下的内容不同?
解决方案
没有任何魔法。丢失的 m4 文件确实存在于原始 Aria2 Github 存储库 (in m4/
) 文件夹中。autoreconf -i
将另一个 .m4 文件添加到此文件夹。但它具有.gitignore
.m4 规则。我将它添加到另一个 git repo(在 Gitlab 中构建它),但m4/
文件夹被忽略了。所以:
Aria2 -> local folder -> run docker -> OK
Github with m4/ locally m4/ exists
工作正常,但是:
Aria2 -> another git repo -> run Gitlab CI -> Failure
Github (now no m4/) (.m4 missing)
所以,问题的原因似乎是 -m4/
在第二个 git repo 中的缺失(至少我已经获得了第一个成功的构建)
推荐阅读
- nginx - NGINX 反向代理到需要子域的 URL
- python - 如何使 sqlite 数据库的读者等待使用 pandas.DataFrame.to_sql() 插入表?
- javascript - 使用 JavaScript 验证密码和名字
- python - 必须调用 wx.Panel 两次才能设置正确的大小
- java - 为什么 Netty/Redisson DNS Resolver 会在主机名中添加一个括号?
- python - LinearSVC 特征选择在 Python 中返回不同的 coef_
- oracle - ORA-01422: 精确提取返回的行数超过了触发器的请求行数
- javascript - 强制组中的每个选择具有唯一值
- java - jersey restful service如何与ejb集成?
- javascript - 石头,纸,剪刀游戏没有添加