mieki256's diary



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

#1 [naamzu][perl] Text::kakasiその他のインストールをまだ試してたり

ActivePerl 5.16.3 + CPAN でインストールできないか、まだ試してたり。環境は Windows7 x64。

_ぶたときどき真珠〜深沢千尋のブログ〜 Strawberry Perl で Text::Kakasi や、 _あまつぶ: Memo/Text-Kakasi という記事を見かけて、ActivePerl でも試したところ、Text::Kakasi だけはどうにかインストールできた、ような気がするので自分も手順をメモ。

事前に、 _kakasi-2.3.4.zip をDL・解凍して、C:\kakasi にコピーしておくこと。その中に、 等が入っていて、Text::Kakasi のインストール時にそれらのファイルを必要とするらしい。

DOS窓で cpanp と打つ。cpan じゃなくて cpanp を使うことに注意。以下の入力待ちになる。
 CPAN Terminal>
使い方は、help と打てば出てくる。

以下を打つ。
d Text::Kakasi
z Text::Kakasi
それぞれ、 といった指定。z hoge で、どこに解凍されたか分かるはず。

解凍後のディレクトリ内にある、Makefile.PL をエディタで開いて、修正して保存。自分の環境に合わせたパスを指定しておくこと。
    'INC' => '-IC:/kakasi/include',
    'LIBS' => ['-LC:/kakasi/lib -lkakasi'],
    'LDDLFLAGS' => '-mdll -L"C:/Perls/Perl516/lib/CORE" -static-libgcc',
修正と保存が終わったら、DOS窓上で exit を打って cmd.exe を抜ける。「CPAN Terminal> 」の入力待ちに戻ってくる。

以下を打って、インストール開始。
i Text::Kakasi
しばらく待てば、下のようなメッセージが出てくるはず…。
CPAN Terminal> i Text::Kakasi

Installing Text::Kakasi (2.04)
Running [C:\Perl\bin\perl.exe -e use strict; BEGIN { my $old = select STDERR; $|++; select $old; $|++; $0 = shift(@ARGV); my $rv = do($0); die $@ if $@; } C:\home\mieki256\.cpanplus\5.16.3\build\Text-Kakasi-2.04\Makefile.PL]...
Set up gcc environment - 3.4.5 (mingw-vista special r3)
Have \perl\lib
Want \perls\perl516\lib
Your perl and your Config.pm seem to have different ideas about the
architecture they are running on.
Perl thinks: [lib]
Config says: [MSWin32-x86-multi-thread]
This may or may not cause problems. Please check your installation of perl
if you have problems building this extension.
Generating a dmake-style Makefile
Writing Makefile for Text::Kakasi
Writing MYMETA.yml and MYMETA.json
Running [C:\Perl\site\bin\dmake.exe test]...
C:\Perl\bin\perl.exe "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib\lib', 'blib\arch')" t/*.t
t/01-func.t .... ok
t/02-obj.t ..... ok
t/03-encode.t .. ok
All tests successful.
Files=3, Tests=164,  0 wallclock secs ( 0.05 usr +  0.03 sys =  0.08 CPU)
Result: PASS
[ERROR] IPC::Run version '0.55' is required on MSWin32 in order to capture buffers. The logfile generated may not contain any useful data, until it is installed

*** Install log written to:
  C:\home\mieki256\.cpanplus\install-logs\Text-Kakasi-2.04-1412639421.log

Module 'Text::Kakasi' installed successfully
No errors installing all modules
なんだか途中でエラーっぽいメッセージが出てるけど、「Module 'Text::Kakasi' installed successfully」って言ってるから、一応インストールに成功したのかなと。壊れたファイルがインストールされてるかもしれないけど。

q を打って、cpanp から抜ける。

モジュールが登録されてるか、一応確認。以下を打つ。
perl -MText::Kakasi -e ""
-M オプションで、使うモジュール名を指定、-e は、次に続く文を実行せよ、てなオプション。この場合、空文字列だから何もしない。つまり、これを実行して、何も表示されなければ、そのモジュールは登録されてることになる。

もし、モジュールが登録されてなければ、以下のように、「そのモジュール名、俺には見つけられなかったッス」とエラーが出てくるはず。
> perl -MText::NiseKakasi -e ""
Can't locate Text/NiseKakasi.pm in @INC (@INC contains: C:/Perl/Perl5163/site/lib C:/Perl/Perl5163/lib .).
BEGIN failed--compilation aborted.

実際にコレで動くのか、動作確認したいのだけど。そこらへんの手順は、まだ調べてなかったり。

もう少し頑張れば ppd まで作れるらしいけど。自分、ppd って何だろう、てな状態なので…。

NKF.pmはCPANに無い。 :

同じノリで NKF もインストールしようとしたのだけど、cpan NKF と打ってみたら、「そんなモジュールはねえよ」と言われてしまった。ググってみたら、NKF (MKF.pm?)はCPANに登録されてないらしい。どこから入手すればいいのだろう…。

Perl 5.8.x も入れてみた。 :

HDDの中を漁ってたら、
  • ActivePerl-5.8.9.826-MSWin32-x86-290470.msi
を発見。試しにソレもインストール。たしかに ActivePerl 5.8.9 なら、Namazu for Windows に同梱の ppm-inst.bat がすんなり実行できた。

ググってみたら、その後、
  • ActivePerl-5.8.9.827-MSWin32-x86-291969.msi
  • ActivePerl-5.8.9.828-MSWin32-x86-294165.msi
  • ActivePerl-5.8.9.829-MSWin32-x86-294280-v2.msi
てな版も出ていたらしい。どうしても 5.8.x を入手しないといけないなら、各ファイル名でググ(以下略。ただ、同じファイル名でもファイルサイズがそれぞれ違っていたりしていて、どれがどれやら。 _手元の版 は、たしかにインストールできる版だけど、少しバージョンが古いし…。

現バージョンの ActivePerl で、Text::Kakasi、NKF、Search::Namazu をインストールする手順を見つけておかないと、手詰まりになるなあ…。

2017/03/19追記。 :

DropboxのPublicフォルダが死んだのでファイルを置き直し。

#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 しかないじゃないですか。つまり使えないじゃないですか。なんだかな。

以上、1 日分です。

過去ログ表示

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