我正在尝试构建GNU grep,当我运行make时,我得到:

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

什么是makeinfo,如何获取它?

(这是Ubuntu,如果它有区别的话)


当前回答

(至少)在Ubuntu中,当你使用bash时,它会告诉你需要安装哪个包,如果你输入了一个命令,但在你的路径中没有找到它。我的终端显示你需要安装“texinfo”包。

sudo apt-get install texinfo

其他回答

关于“什么是makeinfo”的几句话——其他答案包括“我如何得到它”。

Texinfo手册的“创建信息文件”部分指出

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

Texinfo主页对此进行了解释 Texinfo本身“是GNU项目的官方文档格式”,它“使用单一的源文件产生多种格式的输出,包括在线的和打印的(dvi、html、info、pdf、xml等)”。

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

(至少)在Ubuntu中,当你使用bash时,它会告诉你需要安装哪个包,如果你输入了一个命令,但在你的路径中没有找到它。我的终端显示你需要安装“texinfo”包。

sudo apt-get install texinfo

需要安装texinfo。Configure仍然会缓存它的结果,所以它仍然会认为makeinfo缺失。删除源代码并从压缩包中重新解压它。运行configure,然后make。

对于Centos,我通过安装这些包来解决这个问题。

yum install texi2html texinfo 

如果没有makeinfo入口,请不要担心。 你就跑

make all

你可以使用sudo对ubuntu进行类似的操作。

如果你从头开始构建包:

从这里下载一个版本:http://www.gnu.org/software/texinfo/ 在撰写本文时,版本5.2是最新的。 在这里学习如何构建:http://www.linuxfromscratch.org/lfs/view/stable/chapter05/texinfo.html LFS项目不断更新,但texinfo构建/安装指令很少改变。

具体来说,如果从源代码构建bash,安装文档(包括手册页)将在没有可用的makeinfo的情况下失败(无声地)。