编译器错误-找不到msgfmt命令


71

我正在尝试从共享主机更新Git。为此,我遵循以下步骤:

  1. 下载最新的Git版本
  2. 打开包装并将其放在服务器上
  3. 配置并创建Makefile-> ./configure --prefix=$HOME/dev/git/src --without-tcltk
  4. 编译软件包->make然后make install
  5. 更新PATH .bash_profile

我停留在第4点。运行make命令时,得到以下信息:

user@ssh1:~/dev/git/src$ make
SUBDIR gitweb
SUBDIR ../
make[2]: ? GIT-VERSION-FILE ? est ? jour.
GEN git-instaweb
SUBDIR perl
SUBDIR git_remote_helpers
SUBDIR templates
MSGFMT po/build/locale/is/LC_MESSAGES/git.mo
/bin/sh: msgfmt: command not found
make: *** [po/build/locale/is/LC_MESSAGES/git.mo] Erreur 127

编译器将引发msgfmt command not found错误。

我用Google搜索它,它似乎与gettext包有关。

任何想法如何解决共享主机上的错误?


5
快速攻克:尝试使用“ make -k”或“ make -i”跳过编译,可能是您将获得Git,但没有本地化和/或文档。
六。

3
没错,msgfmt对运行Git并不重要。“ make -i”工作感谢。
约翰,

对于OSX,您可以在此处找到答案stackoverflow.com/a/32821791/1257959
cgl

Answers:


195

我遇到过同样的问题。感谢您在查找与gettext相关的工作,apt-get install gettext为我简单地修复了它。


6
这应该是正确的答案;)
丹尼斯

1
当然,这似乎是最好的答案,但是在cygwin上,安装gettext并没有帮助。也许在那里有版本问题?
卢卡斯

6
对于没有sudo访问权限的共享主机,这不是正确的答案。
Erik Kristensen 2014年

2
@Lucas在cygwin上,您需要msgfmt的gettext-devel(请参阅此有用的答案
Boris

当从源目录/在没有root用户访问权限的系统上安装时,请./configure && make && make install在源rootgettext-tools目录下的子目录中运行gettext
Karl Richter

18

在使用Xcode(使用Makefile)构建Git时,我必须NO_GETTEXT = YesPlease在Makefile中定义以解决此问题。


15
首选此方法,因为我无法安装gettext,并且-i(忽略错误)只是愚蠢!make NO_GETTEXT=1做到了。
adurdin


4
make -i
make -i install

..完美地解决了这个问题。另外,如果有人在使用http / https helper时遇到麻烦,请在配置过程中不要忘记添加以下内容

./configure --with-curl --with-expat

4
应当指出,“-i”是“ --ignore-errors”的缩写,因此任何其他错误也将被忽略,并且由于与gettext相关的许多错误而可能被忽略。所以-i应该是万不得已的办法。
鲍里斯(Boris)2014年

@Boris是的,这是错误的解决方法,但不是每个人都是黑客。您显然需要gettext lib才能解决错误。
维杰·库马尔·坎塔

4

在Mac Os上,这对我有用:

brew install gettext
brew link gettext --force

3

在cygwin上,您还需要安装gettext-devel软件包。单独使用gettext包不足以解决此问题。


1

xgettextmsgfmt等属于GNUgettext工具集。在macOS上,您可以使用MacPortport命令在系统上安装以下工具:

port install gettext

0

您可以按照安装git的相同方式安装gettext。通过下载,提取,构建并将其安装到主文件夹中的给定位置:

curl -O https://ftp.gnu.org/pub/gnu/gettext/gettext-0.20.1.tar.gz
tar xvf gettext-0.20.1.tar.gz
cd gettext-0.20.1/
./configure --prefix=/home/$HOME/opt
make
make install

将前缀设置为您要安装的位置。


-1

尝试将-i添加到您的make命令中。

> make -i ...

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.