備忘録として。
先日、愛用しているMacbookAirのEl Capitanをクリーンインストールし直しました。
特に何かあったわけでは無いですが、使わなくなったアプリケーションを一掃したくなる時が年1回程度くるので、
そういう時は開発環境をスッキリさせるためにクリーンインストールをしてます。
そしてクリーンインストール後は、その時必要なものだけインストールするスタイルで開発環境をできる限り綺麗に保っています。
今回もOSクリーンインストールして、GitHubのココにあげているdotfilesを持ってきて、 GUIアプリケーションを入れて、といつも通りの作業をして問題なくしばらく使ってました。
が、今日気づいた。なんかVim古くね?と。
(何気なくココにのってたsmile
コマンド打ったらそんなコマンド無いって言われた...orz)
dotfilesでいつも通りの環境になってたので、アップデートをするのを完全に忘れてました。
_PyUnicodeUCS4_AsEncodedStringエラー
エラーに遭遇
そて、ここからが本題です。
いつものごとく、brew update && brew install vim
をやってみたところ下記エラーがでました。
[alpaca]~ % brew install vim
==> Downloading https://github.com/vim/vim/archive/v7.4.1910.tar.gz
==> Downloading from https://codeload.github.com/vim/vim/tar.gz/v7.4.1910
######################################################################## 100.0%
==> ./configure --prefix=/usr/local --mandir=/usr/local/Cellar/vim/7.4.1910/share/man --enable-multib
==> make
Last 15 lines from /Users/rhoboro/Library/Logs/Homebrew/vim/02.make:
clang -c -I. -Iproto -DHAVE_CONFIG_H -DMACOS_X_UNIX -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -o objects/channel.o channel.c
clang -c -I. -Iproto -DHAVE_CONFIG_H -DMACOS_X_UNIX -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -o objects/json.o json.c
clang -c -I. -Iproto -DHAVE_CONFIG_H -DMACOS_X_UNIX -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -o objects/main.o main.c
clang -c -I. -Iproto -DHAVE_CONFIG_H -DMACOS_X_UNIX -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -o objects/memfile.o memfile.c
clang -c -I. -Iproto -DHAVE_CONFIG_H -DMACOS_X_UNIX -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 version.c -o objects/version.o
env LD_RUN_PATH=/System/Library/Perl/5.18/darwin-thread-multi-2level/CORE clang -L. -L/usr/local/lib -L/usr/local/lib -o vim objects/buffer.o objects/blowfish.o objects/charset.o objects/crypt.o objects/crypt_zip.o objects/diff.o objects/digraph.o objects/edit.o objects/eval.o objects/ex_cmds.o objects/ex_cmds2.o objects/ex_docmd.o objects/ex_eval.o objects/ex_getln.o objects/fileio.o objects/fold.o objects/getchar.o objects/hardcopy.o objects/hashtab.o objects/if_cscope.o objects/if_xcmdsrv.o objects/mark.o objects/memline.o objects/menu.o objects/message.o objects/misc1.o objects/misc2.o objects/move.o objects/mbyte.o objects/normal.o objects/ops.o objects/option.o objects/os_unix.o objects/pathdef.o objects/popupmnu.o objects/quickfix.o objects/regexp.o objects/screen.o objects/search.o objects/sha256.o objects/spell.o objects/syntax.o objects/tag.o objects/term.o objects/ui.o objects/undo.o objects/version.o objects/window.o objects/if_perl.o objects/if_perlsfio.o objects/if_python.o objects/if_ruby.o objects/os_macosx.o objects/os_mac_conv.o objects/netbeans.o objects/channel.o objects/json.o objects/main.o objects/memfile.o -lm -lncurses -liconv -framework Cocoa -fstack-protector -L/System/Library/Perl/5.18/darwin-thread-multi-2level/CORE -lperl -framework Python -lruby.2.0.0 -lpthread -ldl -lobjc
Undefined symbols for architecture x86_64:
"_PyUnicodeUCS4_AsEncodedString", referenced from:
_StringToLine in if_python.o
_StringToChars in if_python.o
__ConvertFromPyObject in if_python.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[1]: *** [vim] Error 1
make: *** [first] Error 2
READ THIS: https://git.io/brew-troubleshooting
If reporting this issue please do so at (not Homebrew/brew):
https://github.com/Homebrew/homebrew-core/issues
These open issues may also help:
vim: fixes to pass brew audit https://github.com/Homebrew/homebrew-core/pull/1512
vim: installation fails when using pyenv https://github.com/Homebrew/homebrew-core/issues/1165
解決策
ちょっとググったのですが、あまりコレという解決方法が見つからず悩むこと小一時間。
エラーメッセージをよく見てみて気づいたpyenv
という文字列。
Pythonの環境はいつも必ず構築してるので、pyenvも当然のごとく使ってる。
ということで、今使ってるpythonのバージョンを調べてみることに。
[alpaca]~ % pyenv versions
system
* 2.7.11 (set by /Users/rhoboro/.pyenv/version)
2.7.11/envs/pyconjp-website
3.5.1
3.5.1/envs/blog
blog
pyconjp-website
予想通り、自分で入れた環境を利用するようにしてる。(system
のは基本的にいじらないようにしています)
ということで試しにsystem
を使うようにして再度試してみたところ、先ほどのエラーは綺麗に消えて無事最新のVimをインストール出来ました。
めでたしめでたし。
[alpaca]~ % pyenv local system
[alpaca]~ % pyenv versions
* system (set by /Users/rhoboro/.python-version)
2.7.11
2.7.11/envs/pyconjp-website
3.5.1
3.5.1/envs/blog
blog
pyconjp-website
[alpaca]~ % brew install vim
==> Downloading https://github.com/vim/vim/archive/v7.4.1910.tar.gz
Already downloaded: /Users/rhoboro/Library/Caches/Homebrew/vim-7.4.1910.tar.gz
==> ./configure --prefix=/usr/local --mandir=/usr/local/Cellar/vim/7.4.1910/share/man --enable-multib
==> make
==> make install prefix=/usr/local/Cellar/vim/7.4.1910 STRIP=true
🍺 /usr/local/Cellar/vim/7.4.1910: 1,689 files, 22.6M, built in 1 minute 8 seconds
[alpaca]~ % which vim
/usr/local/bin/vim
まとめ
brew install vim
して_PyUnicodeUCS4_AsEncodedString
エラーが出た時はpyenv
の設定を確認してみましょう!
おそらくsystem
のPythonを使えば解決すると思います。
おまけ
smile
コマンドもちゃんと出るようになりました!
:smile
oooo$$$$$$$$$$$$oooo
oo$$$$$$$$$$$$$$$$$$$$$$$$o
oo$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$o o$ $$ o$
o $ oo o$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$o $$ $$ $$o$
oo $ $ "$ o$$$$$$$$$ $$$$$$$$$$$$$ $$$$$$$$$o $$$o$$o$
"$$$$$$o$ o$$$$$$$$$ $$$$$$$$$$$ $$$$$$$$$$o $$$$$$$$
$$$$$$$ $$$$$$$$$$$ $$$$$$$$$$$ $$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$ $$$$$$$$$$$$$ $$$$$$$$$$$$$$ """$$$
"$$$""""$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ "$$$
$$$ o$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ "$$$o
o$$" $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $$$o
$$$ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$" "$$$$$$ooooo$$$$o
o$$$oooo$$$$$ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ o$$$$$$$$$$$$$$$$$
$$$$$$$$"$$$$ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $$$$""""""""
"""" $$$$ "$$$$$$$$$$$$$$$$$$$$$$$$$$$$" o$$$
"$$$o """$$$$$$$$$$$$$$$$$$"$$" $$$
$$$o "$$""$$$$$$"""" o$$$
$$$$o o$$$"
"$$$$o o$$$$$$o"$$$$o o$$$$
"$$$$$oo ""$$$$o$$$$$o o$$$$""
""$$$$$oooo "$$$o$$$$$$$$$"""
""$$$$$$$oo $$$$$$$$$$
""""$$$$$$$$$$$
$$$$$$$$$$$$
$$$$$$$$$$"
"$$$""""
Press ENTER or type command to continue