ChatGPT解决这个技术问题 Extra ChatGPT

What is makeinfo, and how do I get it?

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)

For those who came here wondering how the subject matter experts below find this stuff: just do apt-file search bin/makeinfo
apt search makeinfo #(or yum search makeinfo)

h
hek2mgl

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

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.
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.
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
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
@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.
O
Ortomala Lokni

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.


texi2html is strictly speaking, unncecessary. (RHEL6+)
texi2html is, strictly speaking, unnecessary. (CentOS 7).
CentOS / Rocky Linux 8: dnf config-manager --set-enabled powertools && dnf install texinfo
B
Bobby

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.


d
denn

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.


k
kevinarpe

If you build packages from scratch:

Download a version from here: http://www.gnu.org/software/texinfo/ As of writing, version 5.2 is the latest.

As of writing, version 5.2 is the latest.

Learn how to build here: http://www.linuxfromscratch.org/lfs/view/stable/chapter05/texinfo.html LFS project is constantly updating, but texinfo build/install instructions rarely change.

LFS project is constantly updating, but texinfo build/install instructions rarely change.

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


S
Samuel Lelièvre

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.


B
BReddy

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.


m
mbx

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.