読者です 読者をやめる 読者になる 読者になる

文系seの備忘録

Excelの改行でひたすらスペースを打っていた機械音痴の文系seが日々の備忘録を綴る。

(未解決) windowsでrubyのversionを楽に切り替える「pik」

・pikのダウンロード
(programfiles内にダウンロードされます)
gem install pik


・pikディレクトリの作成
mkdir "C:\pik"


・PATHに C:\pik を追加
set PATH=%PATH%;C:\pik
エクスプローラーで右クリック > プロパティ > システムの詳細設定 > 環境変数 > システム環境変数 > PATHからでも設定可)


・今回使用するフォルダに必要なものをインストール
pik_install "C:\pik"


・インストールしてある複数のrubyのbinの場所をaddする
pik add C:\ruby-1.9.1-p376\bin
rubyをインストールしてなかったらインストールしてください
windowsではrubyinstallerを使ってrubyをインストールできます。
Downloads
インストールしたいバージョンをクリックしてそのまま進めば、Cドライブ直下にRuby187とかRuby193とかいうフォルダができます。



・addしたあとpik listでrubyのバージョン一覧を確認

pik list
187: ruby 1.8.7 [i386-mswin32] *
191: ruby 1.9.1p376 [i386-mswin32]
191: ruby 1.9.1p378 [i386-mingw32]

"* "がついているのが現在設定されているバージョン。



・別のバージョンに切り替えるとき

pik use ruby 1.9.1p376


・切り替わったか確認
pik list
187: ruby 1.8.7 [i386-mswin32]
191: ruby 1.9.1p376 [i386-mswin32] *
191: ruby 1.9.1p378 [i386-mingw32]

上記のように切り替わるはずなんだけど、ruby -vで確認すると ruby 1.8.7のままになってる。。。





pikを以下ページからダウンロードして再度やってみる

msiをダウンロードします。
Downloads · vertiginous/pik · GitHub


pik list
187: ruby 1.8.7 [i386-mswin32]
=> 191: ruby 1.9.1p376 [i386-mswin32]
191: ruby 1.9.1p378 [i386-mingw32]

上記でダウンロードすると、バージョンの表示が "*" でなく矢印なんですね。

でも使い方はまったく同じです。


さあ、バージョンをきりかえてみます。
pik use ruby 1.9.1p376


きりかわったかな??

ruby -v
ruby 1.8.7 [i386-mswin32]


・・・orz
はい。だめでした~。


原因わからず。

わかったらまた更新します。

                                    • -

2016/07/15追記

まだ動かない原因は謎ですが、いろいろ試してみたのでメモ。

インストーラーでpikをダウンロードすると、
 1.c:\pik
 2.C:\Users\ユーザー名\.pik
の2つのフォルダが作成される。

c:\pikには以下3ファイルが作成されている
・pik_runner.exe
・pik.ps1
・pik.bat

C:\Users\ユーザー名\.pik は空のディレクトリ。

pikコマンドを実行するとc:\pik\pik.batが実行される。
pik add でバージョンを追加すると C:\Users\ユーザー名\.pik 内に
・config.yml
・pik_run.bat

の2つが新たに作成される。


それで、ググってわかったのが c:\pik\pik.bat内の

"%PIK_HOME%"ってとこを %USERPROFILE% に変えてあげる必要があるということ。
Windows では %HOME% という環境変数は定義されていないため、変更してあげないといけない(要はバグとのこと)。


pik use rubyのバージョン を実行すると C:\Users\ユーザー名\pik_run.batが実行される。


うーーーん。。。なんだかこのpik_run.batってやつが怪しい気がする。。

pik_run.but内に記載されてるSET PATH=~~ってとこは動的に変わるっぽいんだけど、このパスはどっから持ってきてんだろう?
だめだ。わかんない。