2012-02-29 128 views
51

我试图从共享主机上更新Git。对于我正在以下步骤:编译错误 - 在共享主机上编译git时找不到msgfmt命令

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

我停留在点4.当我运行“嘛柯”的命令,我得到如下:


[email protected]:~/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

快速劈:尝试“让-k”或“让-i”跳过编译这个,可能是你将得到的Git,但没有定位和/或文件。 – 2012-02-29 16:18:19

+3

你是对的msgfmt对于运行Git并不重要。 “make -i”表示感谢。 – John 2012-03-04 03:27:24

回答

132

我有同样的问题。感谢您的工作,发现它与gettext有关,一个简单的apt-get install gettext为我解决了它。

+2

这应该被加入答案;) – Dennis 2013-07-29 15:33:44

+1

这当然似乎是最好的答案,但是,在cygwin上,安装gettext并没有帮助。那里可能是版本问题? – Lucas 2013-10-24 16:44:32

+6

这不是共享主机上的正确答案,您没有sudo访问权限。 – 2014-01-17 13:40:20

17

虽然(使用的Makefile)在Xcode构建Git的,我曾在Makefile中定义NO_GETTEXT = YesPlease来解决这个问题。

+12

首选这个,因为我无法安装gettext,而-i(忽略错误)只是愚蠢! '使NO_GETTEXT = 1'成功了。 – adurdin 2013-08-12 09:35:30

-1

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

> make -i ...

3
make -i 
make -i install 

对于这个问题..worked flawlessy。另外如果任何人有与HTTP/HTTPS帮手麻烦,在配置的时候不要忘了添加以下的事情

./configure --with-curl --with-expat 
+3

需要注意的是,“-i”是“--ignore-errors”的缩写,所以其他错误也会被忽略,并且可能会被忽略,因为gettext相关的错误很多。所以,如果没有其他的工作,我应该是最后的手段。 – Boris 2014-06-17 17:11:16

+0

@Boris是的,这是一个错误的解决方法,但不是每个人都是黑客。您显然需要gettext lib来解决错误。 – 2014-11-26 08:14:33

0

在Cygwin,您需要安装的gettext-devel包为好。单独的gettext包不足以解决此问题。

15

msgfmt包含在gettext-devel Cygwin包。安装(通过setup.exe或apt-cyg),错误应该消失。

+1

这个问题不是关于Cygwin – 2015-03-09 11:46:52

+0

gettext-devel也是centos 6的包 – jpj 2017-11-13 23:00:35