mieki256's diary



2014/10/07(火) [n年前の日記]

#2 [perl][windows] Windows上で異なるバージョンのPerlを切り替えたい

_2014/10/08追記。 Strawberry Perl とも切り替えられるbatファイルを書きました。

ActivePerl 5.16.3 と ActivePerl 5.8.x を切り替えて使いたい。環境変数 PATH の中をその都度書き換えれば済みそうではあるけど…。

例えば、 に ActivePerl をインストールしたとして。

batファイルの中で、
set PATH=C:\Perls\Perl58\bin;C:\Perls\Perl58\site\bin;%PATH%
とすれば、PATHの最初に ActivePerl 5.8.x の指定がくるので、perl -v で表示されるバージョンは 5.8.x になる。つまり Perl 5.8.x を選んで使える状態になると言えばなるのだけど。

これを繰り返していくと、PATHの最初のほうに Perlのパスがいくつも並んだ状態になってなんか嫌だなと。

ふと、Windows Vista や Windows7 で使える _シンボリック・リンク を使えばいいのではと思えてきた。
mklink /d 作成リンク名 元フォルダ
とすれば、フォルダのシンボリックリンクが作れる。作成リンク名にアクセスすると、元フォルダにアクセスしてるも同然の状態になる。

例えば、
mklink /d C:\Perl C:\Perls\Perl58
mklink /d C:\Perl C:\Perls\Perl516
を使い分ければ…。PATH には C:\Perl\bin;C:\Perl\site\bin だけ追加しておいて、それ以上弄らない。後は、C:\Perl が Perl 5.8.x と Perl 5.16.x のどちらを指してるのか変更すればいい。

と思って、切り替え用のbatファイルを書いてみたけれど。mklink は管理者権限じゃないと使えないことをすっかり忘れてました。これではちと不便。でもまあ、頻繁に切り替えるものでもないだろうから、別にコレでもいいか…。

一応batファイルの中身を晒しておきます。

plch.bat
@echo off
if "%1"=="58" goto SETPATH1
if "%1"=="516" goto SETPATH2

echo Perlのパスを切り替えます。(mklink /d を使ってシンボリックを張り直し)
echo.
echo 1 : Perl 5.8
echo 2 : Perl 5.16
echo.

set USERINPUTSTR=
set /P USERINPUTSTR="切り替えたい番号を選んでください : "

if "%USERINPUTSTR%"=="1" goto SETPATH1
if "%USERINPUTSTR%"=="2" goto SETPATH2

echo.
echo Usage:  plch 58
echo         plch 516
goto END

:SETPATH1
set PPATH=C:\Perls\Perl58
goto SETPERLDIR

:SETPATH2
set PPATH=C:\Perls\Perl516
goto SETPERLDIR

:SETPERLDIR
@echo on
rmdir C:\Perl
mklink /d C:\Perl %PPATH%
@echo off
echo.
echo Perlのパスを %PPATH% に設定しました
echo.
pause

:END
DOS窓を管理者権限で開いて、plch 58 とか plch 516 とか打てば切り替えられる、みたいな。

ちなみに、*NIX環境なら perlbrew なる切り替えツールが使えるそうで。

Windows 版の perlbrew は無いのかなとググってみたら、 _May I use Strawberry Perl and ActiveState Perl simultaneously in one computer? - Stack Overflow に情報が。 _App-perlbrew | Perl Package Manager Index (PPM) | ActiveState Code があるよ、との話。

ところが、ActivePerl 5.16 は perlbrew に対応してないようで。今現在入手できる ActivePerl って 5.16 しかないじゃないですか。つまり使えないじゃないですか。なんだかな。

以上です。

過去ログ表示

Prev - 2014/10 - Next
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project