尽管 msgfmt 是通过包管理器安装的,但未找到 msgfmt

尽管 msgfmt 是通过包管理器安装的,但未找到 msgfmt

我在运行 Armbian 的 ARM 开发板上从源代码构建 Git 时遇到问题。 Armbian 是 Ubuntu Bionic 的衍生产品。 Git 在make test配方上失败了。

make[1]: Leaving directory '/home/build/git-2.21.0/templates'
mkdir -p po/build/locale/pt_PT/LC_MESSAGES/ && msgfmt --check --statistics -o po/build/locale/pt_PT/LC_MESSAGES/git.mo po/pt_PT.po
/bin/sh: 1: msgfmt: not found
Makefile:2533: recipe for target 'po/build/locale/pt_PT/LC_MESSAGES/git.mo' failed
make: *** [po/build/locale/pt_PT/LC_MESSAGES/git.mo] Error 127

但:

$ apt-cache search msgfmt
libdist-zilla-plugin-localemsgfmt-perl - Dist::Zilla plugin to compile PO files with Locale::Msgfmt
liblocale-msgfmt-perl - pure Perl reimplementation of msgfmt

和:

$ apt-cache policy liblocale-msgfmt-perl
liblocale-msgfmt-perl:
  Installed: 0.15-1
  Candidate: 0.15-1

然而:

$ command -v msgfmt
$

hash -r并没有明确问题。我的其他机器上不存在这个问题,包括 Ubuntu 和 Fedora 机器。

有什么问题以及如何解决它?

答案1

$ apt-file search bin/msgfmt
gettext: /usr/bin/msgfmt
$ sudo apt install gettext

msgfmt是其一部分gettext

dpkg -L liblocale-msgfmt-perl

将显示它liblocale-msgfmt-perl不提供msgfmt命令(这确实使其描述具有误导性)。

apt-cache search msgfmt

找不到,gettext因为gettext包的描述没有提到它:

Description: GNU Internationalization utilities
 Interesting for authors or maintainers of other packages or programs
 which they want to see internationalized.

相关内容