モジュールのインストール
- [Perl]
モジュールはsearch.cpan.orgや、CPAN Searchから探すといいみたいです。
Jcode.pmを例にとると、インストール手順はこんな感じ。
C:\>cd temp\jcode-0.83 C:\Temp\Jcode-0.83>perl Makefile.PL C:\Temp\Jcode-0.83>nmake C:\Temp\Jcode-0.83>nmake test C:\Temp\Jcode-0.83>nmake install実際に私の環境で行うと、nmakeでエラーになってしまいました。
C:\Temp\Jcode-0.83\Unicode\uni.cの18行目を修正するとよいという情報に従い、テストを行うとうまくいきました。
具体的にはこんな感じで、
C:\>cd temp\jcode-0.83 C:\Temp\Jcode-0.83>perl Makefile.PL Checking if your kit is complete... Looks good Writing Makefile for Jcode::Unicode Writing Makefile for Jcode C:\Temp\Jcode-0.83>nmake Microsoft (R) Program Maintenance Utility Version 6.00.8168.0 Copyright (C) Microsoft Corp 1988-1998. All rights reserved. cp win_install.pl blib\lib\win_install.pl cp Jcode/H2Z.pm blib\lib\Jcode/H2Z.pm cp Jcode/Constants.pm blib\lib\Jcode/Constants.pm cp Jcode/Unicode/NoXS.pm blib\lib\Jcode/Unicode/NoXS.pm cp mac_install.pl blib\lib\mac_install.pl cp Jcode/Unicode/Constants.pm blib\lib\Jcode/Unicode/Constants.pm cp Jcode.pm blib\lib\Jcode.pm cp Jcode/Tr.pm blib\lib\Jcode/Tr.pm cp Unicode.pm ..\blib\lib\Jcode\Unicode.pm cp _test.pl ..\blib\lib\Jcode\_test.pl C:\Perl\bin\perl.exe C:\Perl\lib\ExtUtils/xsubpp -typemap C:\Perl\lib\ExtUtils\typemap Unicode.xs > Unicode.xsc && C:\Perl\bin\perl.exe -MExtUtils::Command -e mv Unicode.xsc Unicode.c cl -c -nologo -Gf -W3 -MD -Zi -DNDEBUG -O1 -DWIN32 -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO-DPERL_MSVCRT_READFIX -MD -Zi -DNDEBUG -O1 -DVERSION=\"1.02\" -DXS_VERSION=\"1.02\" "-IC:\Perl\lib\CORE" Unicode.c Unicode.c uni.c(18) : fatal error C1083: インクルード ファイルがオープンできません。'sys/errno.h': Nosuch file or directory NMAKE : fatal error U1077: 'cl' : リターン コード '0x2' Stop. NMAKE : fatal error U1077: 'cd' : リターン コード '0x2' Stop.エラーになりますので、uni.cを修正します。
/* * $Id: uni.c,v 0.79 2002/01/16 02:18:49 dankogai Exp $ * (c) 1999 Dan Kogai <dankogai@dan.co.jp> */ #include <stdio.h> #include <string.h> #include <stdlib.h> #include <limits.h> /* isascii() is no longer used to keep compatible w/ jperl -- thanks, Hirofumi.Watanabe@jp.sony.com #include <ctype.h> */ #define IS_ASCII(c) ((unsigned)(c) <= 0x7F) #include "table.h" #include <で、続き。sys/errno.herrno.h> // sys/errno.h→errno.hに修正 #define not_iso646_jp(x) ((x) != '\\' && (x) != '~')
C:\Temp\Jcode-0.83>nmake Microsoft (R) Program Maintenance Utility Version 6.00.8168.0 Copyright (C) Microsoft Corp 1988-1998. All rights reserved. cp win_install.pl blib\lib\win_install.pl cp Jcode/H2Z.pm blib\lib\Jcode/H2Z.pm cp Jcode/Constants.pm blib\lib\Jcode/Constants.pm cp Jcode/Unicode/NoXS.pm blib\lib\Jcode/Unicode/NoXS.pm cp mac_install.pl blib\lib\mac_install.pl cp Jcode/Unicode/Constants.pm blib\lib\Jcode/Unicode/Constants.pm cp Jcode.pm blib\lib\Jcode.pm cp Jcode/Tr.pm blib\lib\Jcode/Tr.pm cp Unicode.pm ..\blib\lib\Jcode\Unicode.pm cp _test.pl ..\blib\lib\Jcode\_test.pl C:\Perl\bin\perl.exe C:\Perl\lib\ExtUtils/xsubpp -typemap C:\Perl\lib\ExtUtils\typemap Unicode.xs > Unicode.xsc && C:\Perl\bin\perl.exe -MExtUtils::Command -e mv Unicode.xsc Unicode.c cl -c -nologo -Gf -W3 -MD -Zi -DNDEBUG -O1 -DWIN32 -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO-DPERL_MSVCRT_READFIX -MD -Zi -DNDEBUG -O1 -DVERSION=\"1.02\" -DXS_VERSION=\"1.02\" "-IC:\Perl\lib\CORE" Unicode.c Unicode.c uni.c(27) : warning C4244: '=' : 'unsigned long ' から 'unsigned char ' に変換しました。データが失われているかもしれません。 uni.c(121) : warning C4101: 'i' : ローカル変数は 1 度も使われません。 uni.c(203) : warning C4244: '=' : 'unsigned long ' から 'unsigned char ' に変換しました。データが失われているかもしれません。 uni.c(204) : warning C4244: '=' : 'unsigned long ' から 'unsigned char ' に変換しました。データが失われているかもしれません。 Unicode.c(34) : warning C4101: 'RETVAL' : ローカル変数は 1 度も使われません。 Unicode.c(61) : warning C4101: 'RETVAL' : ローカル変数は 1 度も使われません。 Unicode.c(88) : warning C4101: 'RETVAL' : ローカル変数は 1 度も使われません。 Unicode.c(113) : warning C4101: 'RETVAL' : ローカル変数は 1 度も使われません。 "Running Mkbootstrap for Jcode::Unicode ()" C:\Perl\bin\perl.exe -MExtUtils::Command -e chmod 644 Unicode.bs C:\Perl\bin\perl.exe -MExtUtils::Mksymlists -e "Mksymlists('NAME'=>\"Jcode::Unicode\", 'DLBASE' => 'Unicode', 'DL_FUNCS' => { }, 'FUNCLIST' => [], 'IMPORTS' => { }, 'DL_VARS' => []);" link -out:..\blib\arch\auto\Jcode\Unicode\Unicode.dll -dll -nologo -nodefaultlib -debug -opt:ref,icf -libpath:"C:\Perl\lib\CORE" -machine:x86 Unicode.obj C:\Perl\lib\CORE\perl58.lib oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib netapi32.lib uuid.lib wsock32.lib mpr.lib winmm.lib version.lib odbc32.lib odbccp32.lib msvcrt.lib -def:Unicode.def ライブラリ ..\blib\arch\auto\Jcode\Unicode\Unicode.lib とオブジェクト ..\blib\arch\auto\Jcode\Unicode\Unicode.exp を作成中 C:\Perl\bin\perl.exe -MExtUtils::Command -e chmod 755 ..\blib\arch\auto\Jcode\Unicode\Unicode.dll C:\Perl\bin\perl.exe -MExtUtils::Command -e cp Unicode.bs ..\blib\arch\auto\Jcode\Unicode\Unicode.bs C:\Perl\bin\perl.exe -MExtUtils::Command -e chmod 644 ..\blib\arch\auto\Jcode\Unicode\Unicode.bs C:\Temp\Jcode-0.83>nmake test Microsoft (R) Program Maintenance Utility Version 6.00.8168.0 Copyright (C) Microsoft Corp 1988-1998. All rights reserved. C:\Perl\bin\perl.exe "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib\lib', 'blib\arch')" t\convert.t t\getcode.t t\h2z.t t\length.t t\mime.t t\new.t t\tr.t t\convert....ok t\getcode....ok t\h2z........ok t\length.....ok t\mime.......ok t\new........ok t\tr.........ok All tests successful. Files=7, Tests=126, 2 wallclock secs ( 0.00 cusr + 0.00 csys = 0.00 CPU) 'No tests defined for Jcode::Unicode extension.' C:\Temp\Jcode-0.83>nmake install Microsoft (R) Program Maintenance Utility Version 6.00.8168.0 Copyright (C) Microsoft Corp 1988-1998. All rights reserved. Installing C:\Perl\site\lib\auto\Jcode\Unicode\Unicode.dll Installing C:\Perl\site\lib\auto\Jcode\Unicode\Unicode.lib Installing C:\Perl\site\lib\auto\Jcode\Unicode\Unicode.exp Installing C:\Perl\site\lib\auto\Jcode\Unicode\Unicode.pdb Skipping C:\Perl\site\lib\auto\Jcode\Unicode\Unicode.bs (unchanged) Skipping C:\Perl\site\lib\win_install.pl (unchanged) Skipping C:\Perl\site\lib\mac_install.pl (unchanged) Skipping C:\Perl\site\lib\Jcode.pm (unchanged) Skipping C:\Perl\site\lib\Jcode\H2Z.pm (unchanged) Skipping C:\Perl\site\lib\Jcode\Constants.pm (unchanged) Skipping C:\Perl\site\lib\Jcode\Tr.pm (unchanged) Skipping C:\Perl\site\lib\Jcode\Unicode.pm (unchanged) Skipping C:\Perl\site\lib\Jcode\_test.pl (unchanged) Skipping C:\Perl\site\lib\Jcode\Unicode\NoXS.pm (unchanged) Skipping C:\Perl\site\lib\Jcode\Unicode\Constants.pm (unchanged) Writing C:\Perl\site\lib\auto\Jcode\.packlist Appending installation info to C:\Perl\lib/perllocal.pod C:\Temp\Jcode-0.83>なにやら、いろいろとエラーは出力されていますが、どうやらインストールされたようです。
※ Perl5.8.0より、Encode Moduleが標準らしいです。
でも、Jcode使ってるスクリプトって多いので、まだまだ現役かしら?
トラックバック
- このエントリーにトラックバック:
- http://frog.raindrop.jp/cgi-bin/mt/mt-tb.cgi/59
コメント