82

我正在尝试从我的共享主机更新 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错误。

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

知道如何在共享主机上修复该错误吗?

4

11 回答 11

228

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

于 2012-03-15T14:59:15.693 回答
19

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

于 2012-06-16T20:52:49.860 回答
17

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

于 2014-03-03T23:37:45.240 回答
6

在 Mac Os 上,这对我有用:

brew install gettext
brew link gettext --force
于 2019-10-24T11:30:37.217 回答
4
make -i
make -i install

..完美地解决了这个问题。此外,如果有人在使用 http/https 助手时遇到问题,请在配置期间不要忘记添加以下内容

./configure --with-curl --with-expat
于 2012-12-27T12:40:54.107 回答
3

在 cygwin 上,您还需要安装 gettext-devel 包。单独的 gettext 包不足以解决这个问题。

于 2014-02-13T16:53:47.877 回答
2

您可以像安装 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

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

于 2019-05-27T14:24:41.923 回答
1

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

port install gettext
于 2019-06-07T06:19:59.560 回答
1

在 Debian 10 中对我来说缺少 package gettext。解决如下:

$ sudo apt install gettext

然后make突击队工作得很好。

于 2021-03-13T15:40:14.433 回答
0

获取软件还有另一种选择:

ipkg install gettext
于 2022-01-29T19:18:00.917 回答
-1

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

> make -i ...

于 2012-11-15T12:44:51.283 回答