install icon indicating copy to clipboard operation
install copied to clipboard

/usr/bin/install-info may not exist on some Linuxes

Open colindean opened this issue 2 years ago • 3 comments

  • [X] your problem was from running the official install or uninstall script?
  • [X] after installation: ran brew config and brew doctor and included their output with your issue? If you couldn't install: provided your OS version with the output of your issue?

What you were trying to do (and why)

Uninstall homebrew as a part of migrating from ~/.linuxbrew to /home/linuxbrew to avoid mass recompliation on a slow machine!

What happened (include command output)

Command output
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)"
/bin/bash: line 237: /home/linuxbrew/.linuxbrew/bin/brew: No such file or directory
Warning: This script will remove:
/home/colin/.cache/Homebrew/
/home/colin/.linuxbrew/bin/brew -> /home/colin/.linuxbrew/Homebrew/bin/brew
/home/colin/.linuxbrew/Caskroom/
/home/colin/.linuxbrew/Cellar/
/home/colin/.linuxbrew/etc/bash_completion.d/brew -> /home/colin/.linuxbrew/Homebrew/completions/bash/brew
/home/colin/.linuxbrew/Homebrew/
/home/colin/.linuxbrew/Homebrew/bin/brew
/home/colin/.linuxbrew/Homebrew/CHANGELOG.md
/home/colin/.linuxbrew/Homebrew/completions/
/home/colin/.linuxbrew/Homebrew/CONTRIBUTING.md
/home/colin/.linuxbrew/Homebrew/Dockerfile
/home/colin/.linuxbrew/Homebrew/.dockerignore
/home/colin/.linuxbrew/Homebrew/docs/
/home/colin/.linuxbrew/Homebrew/.editorconfig
/home/colin/.linuxbrew/Homebrew/.github/
/home/colin/.linuxbrew/Homebrew/.gitignore
/home/colin/.linuxbrew/Homebrew/Library//
/home/colin/.linuxbrew/Homebrew/LICENSE.txt
/home/colin/.linuxbrew/Homebrew/manpages/
/home/colin/.linuxbrew/Homebrew/README.md
/home/colin/.linuxbrew/Homebrew/.shellcheckrc
/home/colin/.linuxbrew/Homebrew/.sublime/
/home/colin/.linuxbrew/Homebrew/.vale.ini
/home/colin/.linuxbrew/Homebrew/.vscode/
/home/colin/.linuxbrew/share/doc/homebrew -> /home/colin/.linuxbrew/Homebrew/docs
/home/colin/.linuxbrew/share/fish/vendor_completions.d/brew.fish -> /home/colin/.linuxbrew/Homebrew/completions/fish/brew.fish
/home/colin/.linuxbrew/share/man/man1/brew.1 -> /home/colin/.linuxbrew/Homebrew/manpages/brew.1
/home/colin/.linuxbrew/share/man/man1/README.md -> /home/colin/.linuxbrew/Homebrew/manpages/README.md
/home/colin/.linuxbrew/share/zsh/site-functions/_brew -> /home/colin/.linuxbrew/Homebrew/completions/zsh/_brew
/home/colin/.linuxbrew/var/homebrew/
Are you sure you want to uninstall Homebrew? This will remove your installed packages! [y/N] y
==> Removing Homebrew installation...
/bin/bash: line 1: /usr/bin/install-info: No such file or directory
/bin/bash: line 1: /usr/bin/install-info: No such file or directory
/bin/bash: line 1: /usr/bin/install-info: No such file or directory
/bin/bash: line 1: /usr/bin/install-info: No such file or directory
/bin/bash: line 1: /usr/bin/install-info: No such file or directory
/bin/bash: line 1: /usr/bin/install-info: No such file or directory
/bin/bash: line 1: /usr/bin/install-info: No such file or directory
/bin/bash: line 1: /usr/bin/install-info: No such file or directory
/bin/bash: line 1: /usr/bin/install-info: No such file or directory
/bin/bash: line 1: /usr/bin/install-info: No such file or directory
/bin/bash: line 1: /usr/bin/install-info: No such file or directory
/bin/bash: line 1: /usr/bin/install-info: No such file or directory
/bin/bash: line 1: /usr/bin/install-info: No such file or directory
/bin/bash: line 1: /usr/bin/install-info: No such file or directory
/bin/bash: line 1: /usr/bin/install-info: No such file or directory
/bin/bash: line 1: /usr/bin/install-info: No such file or directory
/bin/bash: line 1: /usr/bin/install-info: No such file or directory
/bin/bash: line 1: /usr/bin/install-info: No such file or directory
/bin/bash: line 1: /usr/bin/install-info: No such file or directory
/bin/bash: line 1: /usr/bin/install-info: No such file or directory
/bin/bash: line 1: /usr/bin/install-info: No such file or directory
/bin/bash: line 1: /usr/bin/install-info: No such file or directory
/bin/bash: line 1: /usr/bin/install-info: No such file or directory
/bin/bash: line 1: /usr/bin/install-info: No such file or directory
/bin/bash: line 1: /usr/bin/install-info: No such file or directory
/bin/bash: line 1: /usr/bin/install-info: No such file or directory
/bin/bash: line 1: /usr/bin/install-info: No such file or directory
/bin/bash: line 1: /usr/bin/install-info: No such file or directory
/bin/bash: line 1: /usr/bin/install-info: No such file or directory
/bin/bash: line 1: /usr/bin/install-info: No such file or directory
/bin/bash: line 1: /usr/bin/install-info: No such file or directory
/bin/bash: line 1: /usr/bin/install-info: No such file or directory
/bin/bash: line 1: /usr/bin/install-info: No such file or directory
/bin/bash: line 1: /usr/bin/install-info: No such file or directory
/bin/bash: line 1: /usr/bin/install-info: No such file or directory
/bin/bash: line 1: /usr/bin/install-info: No such file or directory
/bin/bash: line 1: /usr/bin/install-info: No such file or directory
/bin/bash: line 1: /usr/bin/install-info: No such file or directory
/bin/bash: line 1: /usr/bin/install-info: No such file or directory
/bin/bash: line 1: /usr/bin/install-info: No such file or directory
/bin/bash: line 1: /usr/bin/install-info: No such file or directory
/bin/bash: line 1: /usr/bin/install-info: No such file or directory
/bin/bash: line 1: /usr/bin/install-info: No such file or directory
/bin/bash: line 1: /usr/bin/install-info: No such file or directory
/bin/bash: line 1: /usr/bin/install-info: No such file or directory
/bin/bash: line 1: /usr/bin/install-info: No such file or directory
==> Removing empty directories...
==> /usr/bin/sudo /usr/bin/find /home/colin/.linuxbrew/bin /home/colin/.linuxbrew/etc /home/colin/.linuxbrew/include /home/colin/.linuxbrew/lib /home/colin/.linuxbrew/opt /home/colin/.linuxbrew/sbin /home/colin/.linuxbrew/share /home/colin/.linuxbrew/var /home/colin/.linuxbrew/Frameworks -depth -type d -empty -exec rmdir {} ;
==> /usr/bin/sudo rmdir /home/colin/.linuxbrew
rmdir: failed to remove '/home/colin/.linuxbrew': Directory not empty
Warning: Failed during: /usr/bin/sudo rmdir /home/colin/.linuxbrew
Warning: Homebrew partially uninstalled (but there were steps that failed)!
To finish uninstalling rerun this script with `sudo`.
The following possible Homebrew files were not deleted:
/home/colin/.linuxbrew/bin/
/home/colin/.linuxbrew/etc/
/home/colin/.linuxbrew/include/
/home/colin/.linuxbrew/lib/
/home/colin/.linuxbrew/opt/
/home/colin/.linuxbrew/sbin/
/home/colin/.linuxbrew/share/
/home/colin/.linuxbrew/var/
You may wish to remove them yourself.
  

What you expected to happen

/bin/bash: line 1: /usr/bin/install-info: No such file or directory

I probably shouldn't see this. The script should check for the presence of that command before invoking it.

Step-by-step reproduction instructions (by running brew commands)

  1. Install Homebrew, probably to ~/.linuxbrew but I suspect that this may affect /home/linuxbrew installations, as well, based on a very quick read of the uninstall script.
  2. Uninstall Homebrew using the official uninstall script.

Environment: Debian Linux 11 on ChromeOS 103.0.5060.132, ootb from Google. I have not manually removed install-info.

$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 11 (bullseye)
Release:        11
Codename:       bullseye

colindean avatar Aug 20 '22 21:08 colindean

This is where it's being used:

https://github.com/Homebrew/install/blob/c017ced9ca817138cc03acabb59454a0a0ca889e/uninstall.sh#L375-L384

I wonder if this can be

  1. skipped if install-info is missing
  2. accomplished another way using another tool
  3. worked around by having the uninstall script prompt the user to install install-info
  4. safely caught and ignored since the user is probably going to rm -rf ${INSTALL} anyway at the end if the script says there's anything left.

colindean avatar Aug 20 '22 21:08 colindean

What OS are you on?

  • skipped if install-info is missing
  • accomplished another way using another tool
  • worked around by having the uninstall script prompt the user to install install-info
  • safely caught and ignored since the user is probably going to rm -rf ${INSTALL} anyway at the end if the script says there's anything left.

Any of these options seem fine.

MikeMcQuaid avatar Aug 23 '22 10:08 MikeMcQuaid

What OS are you on?

Debian Linux 11 on ChromeOS 103.0.5060.132.

I'll probably take the first option when I get around to implementing it.

colindean avatar Sep 02 '22 23:09 colindean

I have also run into the same issue trying to uninstall Homebrew with macOS Ventura 13.0 running on a 2020 Macbook Air M1. I can't say I was familiar with install-info before but I'm guessing it may have been removed from the macOS core utils as with a few other things in Ventura like makeinfo 🤔

CleanShot 2022-09-27 at 21 31 14@2x

marcus-crane avatar Sep 27 '22 08:09 marcus-crane

I found a list from earlier this year (pre-Ventura) where someone had outputted the contents of /usr/bin/ and compared to my own, it definitely seems that install-info is gone. This makes sense given that the whole texinfo set of tooling in general had disappeared.

In the meantime, I worked around this issue by installing texinfo (brew install texinfo) and modifying this script to use the default install path of /usr/local/opt/texinfo/bin/install-info.

Unfortunately it isn't possible to symlink it back to /usr/bin since it's protected by SIP so you can't just drop in a replacement and use the script remotely.

~~Anyway, I was wondering what install-info does, if anything, that a standard rm -rf wouldn't? I ask that not having used it before and I assume it was picked for some specific reason.~~ Ah right, it removes info file stuff since you can have more than just manpages as your info reader? I'm not super familiar with anything beyond basic man but that makes sense. Ventura really seems to have a thing about removing this sort of tooling between this and groff disappearing from the base install 🤔

I was going to have a look at but it just clicked that I don't have it anymore because I just uninstalled Homebrew 🤦 (I've been running my Terminal under Rosetta but it's about time I update my prefix properly)

marcus-crane avatar Sep 27 '22 09:09 marcus-crane

I've submitted a patch which takes the "worked around by having the uninstall script prompt the user to install install-info" approach just to get something in place rather than the confusion I initially ran into 😅

marcus-crane avatar Sep 27 '22 11:09 marcus-crane