292

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)

mbx
  • 6,292
  • 6
  • 58
  • 91
mike
  • 46,876
  • 44
  • 102
  • 112

8 Answers8

467

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
hek2mgl
  • 152,036
  • 28
  • 249
  • 266
Tuminoid
  • 9,445
  • 7
  • 36
  • 51
  • 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 Nov 04 '12 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 May 18 '13 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 May 21 '13 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 Sep 30 '13 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 Dec 20 '13 at 23:05
  • Or, you could use: `dpkg -S /usr/bin/makeinfo` – TrinitronX Apr 04 '16 at 05:38
  • Not having the `sudo` on the machine, this might be the worst package to compile yourself... – PlasmaBinturong Nov 15 '16 at 14:53
  • Just a note that I needed to install this for a build process that was failing, and which still continued to fail after installing this package. It turned out that `./configure` had placed a line `MAKEINFO=missing` into the makefiles for the project that was causing them to continue failing; I needed to rerun configure after installing it. – Jules May 04 '18 at 11:30
  • 1
    On Ubuntu 18, at least, make sure you have the `universe` source enabled if you want to install `texinfo` – Drazisil May 14 '18 at 21:47
  • This doesn't explain what makeinfo is – Bilow Jun 24 '18 at 11:09
  • macOS users: `brew install texinfo` – themattkellyshow Sep 06 '22 at 16:28
  • I can't success. It shows: installed rsyslog package post-installation script subprocess returned error exit status 10. – Land Nov 14 '22 at 12:03
35

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.

Ortomala Lokni
  • 56,620
  • 24
  • 188
  • 240
arun
  • 351
  • 3
  • 2
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.

Bobby
  • 101
  • 1
  • 3
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.

kevinarpe
  • 20,319
  • 26
  • 127
  • 154
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.

Samuel Lelièvre
  • 3,212
  • 1
  • 14
  • 27
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.

denn
  • 350
  • 3
  • 4
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.

BReddy
  • 407
  • 3
  • 13
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.

mbx
  • 6,292
  • 6
  • 58
  • 91