はじめに
WSL に Homebrew をインストールする記録 – oki2a24 で Homebrew on WSL を実現しました。
しかし、タイトル通り Vim のインストールに失敗したことから、先の投稿の手順は失敗だったのではないかと思うようになりました。
この点について、ノートいたします。
まとめ
brew install vim
を行うと失敗した。configure: creating cache auto/config.cache checking whether make sets $(MAKE)... no checking for gcc... gcc-5 checking whether the C compiler works... no configure: error: in `/tmp/vim-20190330-2026-capht6/vim-8.1.1050/src': configure: error: C compiler cannot create executables See `config.log' for more details
- 原因 (たぶん) は、 Vim の brew インストールに、 brew でインストールした gcc を使用したこと。
- 原因 (たぶん) は、 brew のインストール前に、パッケージのアップグレードを行わなかったこと。
- 原因 (たぶん) は、コマンドの実行の順番
- brew のインストール
sudo apt-get install build-essential
sudo apt update
sudo apt upgrade -y
brew install gcc
brew install vim
- 問題解決は、次のコマンドを実行することで brew で Vim をインストールできた。
brew uninstall gcc
sudo apt-get install build-essential
brew install vim
- 根本的な解決策はおそらく、 WSL に Homebrew をインストールする前に、次のことを行っておくこと。
- パッケージのアップグレードを行う。
apt update && apt upgrade -y
- Homebrew の 必要要件パッケージをインストール しておく。
- パッケージのアップグレードを行う。
brew install vim
時のエラー発生の様子
$ brew install vim
Updating Homebrew...
==> Installing dependencies for vim: ncurses, gettext, readline, bzip2, unzip, lua, gdbm, openssl, berkeley-db, libbsd, expat, perl, sqlite, xz, libffi, python, libyaml and ruby
==> Installing vim dependency: ncurses
... 略 ...
==> Installing vim dependency: perl
==> Downloading https://linuxbrew.bintray.com/bottles/perl-5.28.1.x86_64_linux.bottle.2.tar.gz
######################################################################## 100.0%
==> Pouring perl-5.28.1.x86_64_linux.bottle.2.tar.gz
==> /home/linuxbrew/.linuxbrew/Cellar/perl/5.28.1/bin/cpan -i XML::Parser
Last 15 lines from /home/oki2a24/.cache/Homebrew/Logs/perl/post_install.01.cpan:
Has already been unwrapped into directory /home/oki2a24/.cpan/build/Test-LeakTrace-0.16-0
LEEJO/Test-LeakTrace-0.16.tar.gz
Has already been prepared
LEEJO/Test-LeakTrace-0.16.tar.gz
Could not make: Unknown error
TODDR/XML-Parser-2.44.tar.gz
Has already been unwrapped into directory /home/oki2a24/.cpan/build/XML-Parser-2.44-0
TODDR/XML-Parser-2.44.tar.gz
Has already been prepared
Running make for T/TO/TODDR/XML-Parser-2.44.tar.gz
Warning: Prerequisite 'LWP::UserAgent => 0' for 'TODDR/XML-Parser-2.44.tar.gz' failed when processing 'OALDERS/libwww-perl-6.38.tar.gz' with 'make => NO'. Continuing, but chances to succeed are limited.
/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/shims/linux/super/make: line 25: exec: : not found
TODDR/XML-Parser-2.44.tar.gz
/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/shims/linux/super/make -- NOT OK
Warning: The post-install step did not complete successfully
You can try again using `brew postinstall perl`
==> Caveats
... 略 ...
==> Installing vim
==> Downloading https://github.com/vim/vim/archive/v8.1.1050.tar.gz
==> Downloading from https://codeload.github.com/vim/vim/tar.gz/v8.1.1050
# # # # -=O=-
==> ./configure --prefix=/home/linuxbrew/.linuxbrew --mandir=/home/linuxbrew/.linuxbrew/Cellar/vim/8.1.1050/share/man --enable-multibyte --with-tlib=ncurses
Last 15 lines from /home/oki2a24/.cache/Homebrew/Logs/vim/01.configure:
--enable-perlinterp
--enable-rubyinterp
--enable-python3interp
--enable-gui=no
--without-x
--enable-luainterp
--with-lua-prefix=/home/linuxbrew/.linuxbrew/opt/lua
configure: creating cache auto/config.cache
checking whether make sets $(MAKE)... no
checking for gcc... gcc-5
checking whether the C compiler works... no
configure: error: in `/tmp/vim-20190330-2026-capht6/vim-8.1.1050/src':
configure: error: C compiler cannot create executables
See `config.log' for more details
READ THIS: https://docs.brew.sh/Troubleshooting
$
brew install vim
の成功の様子
$ brew install vim
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 1 tap (homebrew/core).
No changes to formulae.
==> Downloading https://github.com/vim/vim/archive/v8.1.1050.tar.gz
Already downloaded: /home/oki2a24/.cache/Homebrew/downloads/117e4e936195728e696b54dd5f41a5c2c83378a972be3254820b30858e012b19--vim-8.1.1050.tar.gz
==> ./configure --prefix=/home/linuxbrew/.linuxbrew --mandir=/home/linuxbrew/.linuxbrew/Cellar/vim/8.1.1050/share/man --enable-multibyte --with-tlib=ncurses
==> make
==> make install prefix=/home/linuxbrew/.linuxbrew/Cellar/vim/8.1.1050 STRIP=/bin/true
? /home/linuxbrew/.linuxbrew/Cellar/vim/8.1.1050: 1,845 files, 35.3MB, built in 2 minutes 51 seconds
$
brew で Vim をインストールできたものの、変。使うことができない><。
どうやら、コンフリクトが発生しているようです。
そして、 Vim のインストールされたディレクトリを見ると、 vi などが vim へシンボリックリンクが貼られています。
もしやと思い、 vi がどのパスで起動しているか調べてみると、、、 vi こそ vim 8.1 としてインストールされていたのでした><。
vim の場合は、 8.0 。なぜでしょうか。。。。><
追記: 多分、ターミナルを新しく立ち上げれば、反映されていたと思います。
$ type vim
vim is hashed (/usr/bin/vim)
$
$ brew info vim
vim: stable 8.1.1050, HEAD
Vi 'workalike' with many additional features
https://www.vim.org/
Conflicts with:
ex-vi (because vim and ex-vi both install bin/ex and bin/view)
macvim (because vim and macvim both install vi* binaries)
/home/linuxbrew/.linuxbrew/Cellar/vim/8.1.1050 (1,845 files, 35.3MB) *
Built from source on 2019-03-30 at 19:04:42
From: https://github.com/Homebrew/linuxbrew-core/blob/master/Formula/vim.rb
==> Dependencies
Required: gettext ✔, lua ✔, perl ✔, python ✔, ruby ✔, ncurses ✔
==> Options
--HEAD
Install HEAD version
$
$ ls -al /home/linuxbrew/.linuxbrew/Cellar/vim/8.1.1050/bin/
total 6808
drwxr-xr-x 1 oki2a24 oki2a24 4096 Mar 30 19:04 .
drwxrwxr-x 1 oki2a24 oki2a24 4096 Mar 30 19:04 ..
lrwxrwxrwx 1 oki2a24 oki2a24 3 Mar 30 19:04 ex -> vim
lrwxrwxrwx 1 oki2a24 oki2a24 3 Mar 30 19:04 rview -> vim
lrwxrwxrwx 1 oki2a24 oki2a24 3 Mar 30 19:04 rvim -> vim
lrwxrwxrwx 1 oki2a24 oki2a24 3 Mar 30 19:04 vi -> vim
lrwxrwxrwx 1 oki2a24 oki2a24 3 Mar 30 19:04 view -> vim
-r-xr-xr-x 1 oki2a24 oki2a24 6493192 Mar 30 19:04 vim
lrwxrwxrwx 1 oki2a24 oki2a24 3 Mar 30 19:04 vimdiff -> vim
-r-xr-xr-x 1 oki2a24 oki2a24 2121 Mar 30 19:04 vimtutor
-r-xr-xr-x 1 oki2a24 oki2a24 22336 Mar 30 19:04 xxd
$
$ type vi
vi is /home/linuxbrew/.linuxbrew/bin/vi
$
おわりに
最後は、アプリ (今回は Homebrew) をインストールする前は、環境を最新化しておく、というごく当たり前の結論となりました。
すこしぐちゃぐちゃになってきましたので、 WSL のインストールからやり直したいな、と思い始めております。
以上です。