I'm trying to build GNU grep, and when I run make, I get:
[snip]
/bin/bash: line 9: makeinfo: command not found
What is makeinfo, and how do I get it?
(This is Ubuntu, if it makes a difference)
In (at least) Ubuntu when using bash
, it tells you what package you need to install if you type in a command and its not found in your path. My terminal says you need to install 'texinfo' package.
sudo apt-get install texinfo
$ makeinfo
and Ubuntu will tell it to you: he program 'makeinfo' is currently not installed. You can install it by typing: sudo apt-get install texinfo
apt-file update && apt-file search makeinfo
Among the results you will see texinfo: /usr/bin/makeinfo
command-not-found
, which you can install with sudo apt-get install command-not-found
.
For Centos , I solve it by installing these packages.
yum install texi2html texinfo
Dont worry if there is no entry for makeinfo. Just run
make all
You can do it similarly for ubuntu using sudo
.
dnf config-manager --set-enabled powertools && dnf install texinfo
Commented
Sep 2, 2021 at 19:47
Another option is to use apt-file (i.e. apt-file search makeinfo
). It may or may not be installed in your distro by default, but it is a great tool for determining what package a file belongs to.
Need to install texinfo. configure will still have the cache of its results so it will still think makeinfo is missing. Blow away your source and unpack it again from the tarball. run configure then make.
If you build packages from scratch:
Specifically, if you build bash
from source, install docs, including man pages, will fail (silently) without makeinfo
available.
A few words on "what is makeinfo" -- other answers cover "how do I get it" well.
The section "Creating an Info File" of the Texinfo manual states that
makeinfo
is a program that converts a Texinfo file into an Info file, HTML file, or plain text.
The Texinfo home page explains that Texinfo itself "is the official documentation format of the GNU project" and that it "uses a single source file to produce output in a number of formats, both online and printed (dvi, html, info, pdf, xml, etc.)".
To sum up: Texinfo is a documentation source file format and makeinfo
is the program that turns source files in Texinfo format into the desired output.
On SuSE linux, you can use the following command to install 'texinfo':
sudo zypper install texinfo
On my system, it shows it is downloading about 1000 MiB, so make sure you have enough free space.
If it doesn't show up in your package manager (i.e. apt-cache search texinfo
) and even apt-file search bin/makeinfo
is no help, you may have to enable non-free/restricted packages for your package manager.
For ubuntu, sudo $EDITOR /etc/apt/sources.list
and add 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
For debian, sudo $EDITOR /etc/apt/sources.list
and add non-free
. You can even have preferences on package level if you don't want to clutter the package db with non-free stuff.
After a sudo apt-get udpate
you should find the required package.
apt-file search bin/makeinfo
apt search makeinfo
#(oryum search makeinfo
)