LoginSignup
3
3

More than 5 years have passed since last update.

MSYS2+mintty+bashでanyenv導入するのにえらい苦労した

Last updated at Posted at 2017-04-17

anyenv→goenv→golang入れようとしたときのこと。

anyenvが動かない

riywo/anyenv: all in one for **env

$ git clone https://github.com/riywo/anyenv ~/.anyenv
$ echo 'export PATH="$HOME/.anyenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(anyenv init -)"' >> ~/.bash_profile
$ exec $SHELL -l

ってやるじゃないすか?

/home/<ユーザー名>/.anyenv/bin/anyenv: 行 1: ../libexec/anyenv: No such file or directory

っていうエラーが出る。eval "$(anyenv init -)"ができてない。

ここでanyenvコマンドで実行されてるファイルは.anyenv/bin/anyenvのはずなので、中身を見てみる。

anyenv/anyenv at master ・ riywo/anyenv

../libexec/anyenv

実際の処理としては.anyenv/libexec/anyenvが呼ばれてるらしい。

じゃあ絶対パスに書き換えたらどうなん。

-../libexec/anyenv
+~/.anyenv/libexec/anyenv

すると、なんかヘルプメッセージが出てくる。おかしい。

anyenv
Usage: anyenv <command> [<args>]

Some useful anyenv commands are:
   commands            List all available anyenv commands
   local               Show the local application-specific Any version
   global              Show the global Any version
   install             Install a **env
   uninstall           Uninstall a specific **anv
   version             Show the current Any version and its origin
   versions            List all Any versions available to **env

See `anyenv help <command>' for information on a specific command.
For full documentation, see: https://github.com/riywo/anyenv#readme

anyenc install goenvとかanyenv versionとかやっても同じメッセージしか出ない。

goenvも動かない

ここでいったん諦めて直接goenvを入れてみたのだが、まさかの全く同じ症状が発生。やってらんない。

シンボリックリンクで解決

色々ぐぐっていたらヒントを見つけた。

Macでrbenvをgit-cloneしたときに、シンボリックリンクがおかしくなっていた件 - ゆっくり備忘録

これ、bin/anyenvを「libexec/anyenvを実行するスクリプト」じゃなくて、「libexec/anyenvそのもののシンボリックリンク」にしたらどうなの?

$ cd ~/.anyenv
$ mv bin/anyenv bin/anyenv_old #bin/anyenvをリネーム
$ ln -s $(pwd)/libexec/anyenv $(pwd)/bin/anyenv #シンボリックリンク
$ exec $SHELL -l #.bash_profileでanyenv初期化処理を実行
$ anyenv install goenv
/tmp/goenv.20170417194201.11480 ~/.anyenv
Cloning https://github.com/kaneshin/goenv.git...
Cloning into 'goenv'...
remote: Counting objects: 210, done.
remote: Total 210 (delta 0), reused 0 (delta 0), pack-reused 210
Receiving objects: 100% (210/210), 30.20 KiB | 0 bytes/s, done.
Resolving deltas: 100% (131/131), done.
~/.anyenv

Install goenv succeeded!
Please reload your profile (exec $SHELL -l) or open a new session.

……いけるやん!

goenvでループ

$ exec $SHELL -l
/home/<ユーザー名>/.anyenv/envs/goenv/bin/goenv: 行 1: ./../libexec/goenv: No such file or directory

そりゃgoenv直接入れてダメだったんだから同じ症状出るよね!!!!

$ cd .anyenv/
$ mv envs/goenv/bin/goenv envs/goenv/bin/goenv_old
$ ln -s $(pwd)/envs/goenv/libexec/goenv $(pwd)/envs/goenv/bin/goenv
$ anyenv versions
goenv:
goenv: couldn't find any version specified for use

解決はしたけど

はたして問題は那辺にありや。明らかに環境起因だからissueとか送る気しないですし。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3