308

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)

2
  • 11
    For those who came here wondering how the subject matter experts below find this stuff: just do apt-file search bin/makeinfo
    – nurettin
    Commented Apr 27, 2019 at 8:52
  • apt search makeinfo #(or yum search makeinfo) Commented Jan 16, 2020 at 13:26

8 Answers 8

489

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
12
  • 20
    Just a note that to install the package it is sudo apt-get install texinfo. Note that it is teXinfo, not texTinfo which I mistakenly read at first.
    – ammianus
    Commented Nov 4, 2012 at 23:37
  • 2
    Just for the note - how to get notion about what package contains the utility? i.e. how to get know about texinfo if only I know the name makeinfo.
    – egor7
    Commented May 18, 2013 at 18:08
  • 3
    You run the command in the terminal $ 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
    – Tuminoid
    Commented May 21, 2013 at 10:30
  • 16
    If your shell doesn't give you magical hints like @Tuminoid's does, you can install apt-file and run the commands: apt-file update && apt-file search makeinfo Among the results you will see texinfo: /usr/bin/makeinfo
    – asciimo
    Commented Sep 30, 2013 at 21:45
  • 8
    @egor7 The utility telling you the missing command is called command-not-found, which you can install with sudo apt-get install command-not-found.
    – Tuminoid
    Commented Dec 20, 2013 at 23:05
37

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.

3
  • 2
    texi2html is strictly speaking, unncecessary. (RHEL6+)
    – Otheus
    Commented Mar 16, 2017 at 12:22
  • 4
    texi2html is, strictly speaking, unnecessary. (CentOS 7).
    – rph
    Commented Apr 12, 2017 at 7:21
  • 1
    CentOS / Rocky Linux 8: dnf config-manager --set-enabled powertools && dnf install texinfo Commented Sep 2, 2021 at 19:47
9

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.

6

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.

6

If you build packages from scratch:

Specifically, if you build bash from source, install docs, including man pages, will fail (silently) without makeinfo available.

6

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.

3

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.

2

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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.