我需要帮助编译午夜指挥官,以便我可以进行一些更改(出于教育目的)。甚至创建 make 文件。
从git下载最新版本后。我尝试执行 ./autogen.sh 。结果是:
maint/autopoint: 418: cannot open /usr/share/gettext/archive.tar.gz: No such file
tar: This does not look like a tar archive
tar: Exiting with failure status due to previous errors
cvs checkout: cannot find module `archive' - ignored
find: `archive': No such file or directory
find: `archive': No such file or directory
find: `archive': No such file or directory
autopoint: *** infrastructure files for version 0.14.3 not found; this is autopoint from GNU gettext-tools 0.17
autopoint: *** Stop.
Run Code Online (Sandbox Code Playgroud)
我已经安装了 gettext 并且文件夹/usr/share/gettext确实存在。但是没有archive.tar.gz。我不知道这个档案应该包含什么或从哪里得到它。
你能帮我吗?
在 ubuntu 中编译源代码最简单的方法是使用 apt-get source,如下所示:
sudo apt-get build-dep mc
sudo apt-get -b source mc
Run Code Online (Sandbox Code Playgroud)
将 'midnightcommander' 替换为包的真实名称。我现在在一台 Windows 机器上,所以我无法检查包的名称,但它可能是“mc”。
此命令将为您下载并构建源代码以及您需要的任何依赖项。之后你只需更改源代码并从项目的根目录调用 make 即可重建。
运行locate "archive.tar.gz"以查看它是否在您系统上的任何位置。
您的 gettext 安装是 fubar。重新安装它。如果您最初使用 Synaptic 或 apt-get 安装,请运行以下命令:
sudo apt-get install --reinstall gettext
Run Code Online (Sandbox Code Playgroud)
如果你编译过它,你就知道该怎么做:
cd ~/src/gettext
sudo make uninstall
./configure --prefix=/usr && make && sudo make install
Run Code Online (Sandbox Code Playgroud)
/usr/local/share/gettext我刚刚在 google 上搜索了“gettext no archive.tar.gz”,并发现了一个旧的自动点错误,它期望 gettext 安装到/usr而不是安装到/usr/local。果然,autogen.sh 调用 /usr/bin/autopoint,并且:
# - gettext_dir directory where the sources are stored.
prefix="/usr"
datarootdir="${prefix}/share"
gettext_dir="${datarootdir}/gettext"
Run Code Online (Sandbox Code Playgroud)
如果您的 gettext 安装到 /usr/local,您有几个选择。(1) 你可以更改前缀,但任何 Ubuntu 对 autopoint 的更新都会使其失效。(2) 我宁愿删除 gettext 并将其重新安装到 /usr。(3) 当然,最简单的事情可能就是创建一个符号链接:
ln -s /usr/local/share/gettext /usr/share/gettext
Run Code Online (Sandbox Code Playgroud)
越来越好奇。它究竟出现在哪里?
| 归档时间: |
|
| 查看次数: |
2883 次 |
| 最近记录: |