什么是makeinfo,我该如何获取它?

297

我想要构建GNU grep,在运行make时,出现以下错误:

[snip]
/bin/bash: line 9: makeinfo: command not found

什么是makeinfo,如何获取?

(如果使用的是Ubuntu系统,可能会有所不同)


10
对于那些想知道下面的主题专家如何找到这些内容的人:只需执行“apt-file search bin/makeinfo”即可。 - nurettin
apt search makeinfo #(或者 yum search makeinfo) - programandoconro
8个回答

474

在Ubuntu中,当使用bash时,如果您在路径中找不到命令,则会告诉您需要安装哪个软件包。我的终端显示需要安装“texinfo”软件包。

sudo apt-get install texinfo

20
注意,安装该软件包的命令为sudo apt-get install texinfo。请注意,正确的名称是teXinfo,而不是我最初错误阅读的texTinfo。 - ammianus
2
只是提醒一下 - 如何了解哪个软件包包含该实用程序?即,如果我只知道makeinfo的名称,如何了解texinfo的信息。 - egor7
3
在终端中运行命令 $ makeinfo,Ubuntu 将告诉你:程序 'makeinfo' 当前未安装。您可以通过输入以下命令进行安装: sudo apt-get install texinfo - Tuminoid
16
如果你的shell没有像@Tuminoid那样给你神奇的提示,你可以安装apt-file并运行以下命令:apt-file update && apt-file search makeinfo 在结果中,你将看到 texinfo: /usr/bin/makeinfo - asciimo
8
告诉你缺失命令的实用程序名叫做 command-not-found,你可以使用 sudo apt-get install command-not-found 命令进行安装。 - Tuminoid
显示剩余7条评论

35

对于Centos,我通过安装这些软件包解决了问题。

yum install texi2html texinfo 
不用担心 makeinfo 没有条目。 只需运行。
make all

你可以采用相似的方法,针对Ubuntu使用sudo


2
texi2html 严格来说是不必要的。(RHEL6+) - Otheus
4
严格来说,在CentOS 7中texi2html是不必要的。 - rph
1
CentOS / Rocky Linux 8:dnf config-manager --set-enabled powertools && dnf install texinfo - Martin Cejp

9
另一个选择是使用apt-file(即apt-file search makeinfo)。它可能已经默认安装在您的发行版中,但它是一个很好的工具,可以确定文件属于哪个软件包。

6

关于“什么是makeinfo”,以下是一些解释——其他答案已经很好地涵盖了“如何获得它”。

Texinfo手册的“创建Info文件”章节指出:

makeinfo 是一个将Texinfo文件转换为Info文件、HTML文件或纯文本的程序。

Texinfo主页解释说,Texinfo本身“是GNU项目的官方文档格式”,并且它“使用单个源文件生成多种格式的输出,包括在线和印刷品(dvi、html、info、pdf、xml等)”。

总之:Texinfo是一种文档源文件格式,而makeinfo是将Texinfo格式的源文件转换为所需输出的程序。


6
如果您从头开始构建软件包:
  • 这里下载一个版本。
    • 截至目前,版本5.2是最新的。
  • 学习如何在这里构建。
    • LFS项目不断更新,但texinfo的构建/安装说明很少更改。
具体而言,如果您从源代码构建bash,则安装文档(包括man页面)将在没有可用的makeinfo的情况下失败(无声)。

6

需要安装texinfo。configure将仍然拥有其结果的缓存,因此它仍然会认为makeinfo丢失。从tar包中删除源文件并再次解压缩。运行configure然后进行编译。


3
在SuSE linux上,您可以使用以下命令安装“texinfo”:
sudo zypper install texinfo

在我的系统上,显示正在下载大约1000 MiB的内容,请确保您有足够的可用空间。

2
如果在您的软件包管理器中找不到它(即apt-cache search texinfo),即使apt-file search bin/makeinfo也没有帮助,您可能需要为软件包管理器启用非自由/受限软件包。
对于Ubuntu,请使用sudo $EDITOR /etc/apt/sources.list并添加restricted
deb http://archive.ubuntu.com/ubuntu bionic main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu bionic-security main
deb http://archive.ubuntu.com/ubuntu bionic-updates main

对于 Debian,执行 sudo $EDITOR /etc/apt/sources.list 命令并添加 non-free。如果您不想在软件包数据库中混杂非免费内容,甚至可以使用 包级别的首选项
执行 sudo apt-get update 命令后,您应该可以找到所需的软件包。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接