Movable Type 6への道

  • 投稿日:
  • by
  • カテゴリ:

昨日、一旦5.2.9までアップデートを完了した。(うわっ、初めて使ったけど、標準のTinyMCEの重さ、ハンパねー!まともに文字が打てない、、、)

新しいRainierテーマも使いたいから、近日中に6.0.1にアップグレードする予定だけど、その前に、新規で6.0.1を真っ新な状態からインストールする手順をやってみた。

Windows Server 2008 R2 x64にStrawberry Perl 5.18.1001 64bit、MySQL community serverという、WindowsでMovable Typeを使う場合にオーソドックスな組み合わせでのセットアップ。

20140108154417.jpg

基本的な流れは公式ドキュメントの手順に従えばよくて、特に引っかかるところは無い。ただ、オプションコンポーネントのインストールは毎回悩まされるところで、またしても、不慣れなImage::Magickのインストールでだいぶ時間を使ってしまった。

次こそは引っかかるまい!ということで、備忘録として手順を載せておこうかと。

まず、MT5でもうまくいかなかったCache::Fileは今回も断念。どうやってもインストールできないんだけど、どうしてだろ?相変わらずYahoo! IDに用は無いんだけど、ダメな理由くらいは知りたい気がする。
Image::Magickは今回も強敵だったんだけど、以下の手順で乗り越えられた。

まず、ImageMagick-6.8.8-1-Q16-x64-dll.exeをインストールする。
32bit, 64bitというアーキテクチャはperlと合わせないといけないっぽい。x86のImageMagickでは、生成されたdllが正常なwindowsのファイルではないというエラーでdmake testが失敗ばかりだったんで。

続いて、Strawberry Perlのperl (command line) を起動して、以下のようにコマンドを打っていく。間違っても、install Image::Magickのように一発で済まそうとしてはいけないし、それではうまくいかない。水色のマーカー部分がこの手順の肝になるところ。名前を合わせてコピーしてやらないと、リンクで参照解決できなくて失敗してしまうわけ。逆に、これさえやればうまくいく。

C:\Users\Administrator\Documents>cpan

cpan> get Image::Magick
Running get for module 'Image::Magick'
Checksum for C:\strawberry\cpan\sources\authors\id\J\JC\JCRISTY\PerlMagick-6.87.
tar.gz ok
Scanning cache C:\strawberry\cpan\build for sizes
............................................................................DONE



cpan> look Image::Magick
Running look for module 'Image::Magick'

Trying to open a subshell in the build directory...
Working directory is C:\strawberry\cpan\build\PerlMagick-6.87-K56D51
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\strawberry\cpan\build\PerlMagick-6.87-K56D51>perl Makefile.PL
Gonna create 'libMagickCore.a' from 'C:\Program Files\ImageMagick-6.8.8-Q16\CORE
_RL_magick_.dll'
Checking if your kit is complete...
Looks good
Warning (mostly harmless): No library found for -lMagickCore-6.Q16
Writing Makefile for Image::Magick
Writing MYMETA.yml and MYMETA.json

C:\strawberry\cpan\build\PerlMagick-6.87-K56D51>copy libMagickCore.a libMagickCo
re-6.Q16.a
        1 個のファイルをコピーしました。

C:\strawberry\cpan\build\PerlMagick-6.87-K56D51>perl Makefile.PL
Gonna create 'libMagickCore.a' from 'C:\Program Files\ImageMagick-6.8.8-Q16\CORE
_RL_magick_.dll'
Writing Makefile for Image::Magick   <<< 直前のエラーが出なくなる
Writing MYMETA.yml and MYMETA.json

C:\strawberry\cpan\build\PerlMagick-6.87-K56D51>dmake
cp Magick.pm blib\lib\Image\Magick.pm
AutoSplitting blib\lib\Image\Magick.pm (blib\lib\auto\Image\Magick)
C:\strawberry\perl\bin\perl.exe C:\strawberry\perl\lib\ExtUtils\xsubpp  -typemap
 C:\strawberry\perl\lib\ExtUtils\typemap -typemap typemap  Magick.xs > Magick.xs
c && C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e mv -- Magick.xsc Mag
ick.c
gcc -c  -I"C:\Program Files\ImageMagick-6.8.8-Q16\include"      -s -O2 -DWIN32 -
DWIN64 -DCONSERVATIVE  -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IM
PLICIT_SYS -DUSE_PERLIO -fno-strict-aliasing -mms-bitfields -s -O2        -DVERS
ION=\"6.87\"    -DXS_VERSION=\"6.87\"  "-IC:\strawberry\perl\lib\CORE"  -D_LARGE
_FILES=1 -DHAVE_CONFIG_H Magick.c
Magick.xs: In function 'XS_Image__Magick_QueryFormat':
Magick.xs:12973:7: warning: cast from pointer to integer of different size [-Wpo
inter-to-int-cast]
Magick.xs:12974:7: warning: cast from pointer to integer of different size [-Wpo
inter-to-int-cast]
Running Mkbootstrap for Image::Magick ()
C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e chmod -- 644 Magick.bs
C:\strawberry\perl\bin\perl.exe -MExtUtils::Mksymlists \
     -e "Mksymlists('NAME'=>\"Image::Magick\", 'DLBASE' => 'Magick', 'DL_FUNCS'
=> {  }, 'FUNCLIST' => [], 'IMPORTS' => {  }, 'DL_VARS' => []);"
dlltool --def Magick.def --output-exp dll.exp
g++ -o blib\arch\auto\Image\Magick\Magick.dll -Wl,--base-file -Wl,dll.base -mdll
 -s -L"C:\strawberry\perl\lib\CORE" -L"C:\strawberry\c\lib" -L"C:/strawberry/cpa
n/build/PerlMagick-6.87-K56D51" -L"C:\Program Files\ImageMagick-6.8.8-Q16\lib" M
agick.o   C:\strawberry\perl\lib\CORE\libperl518.a libMagickCore-6.Q16.a C:\stra
wberry\c\x86_64-w64-mingw32\lib\libmoldname.a C:\strawberry\c\x86_64-w64-mingw32
\lib\libkernel32.a C:\strawberry\c\x86_64-w64-mingw32\lib\libuser32.a C:\strawbe
rry\c\x86_64-w64-mingw32\lib\libgdi32.a C:\strawberry\c\x86_64-w64-mingw32\lib\l
ibwinspool.a C:\strawberry\c\x86_64-w64-mingw32\lib\libcomdlg32.a C:\strawberry\
c\x86_64-w64-mingw32\lib\libadvapi32.a C:\strawberry\c\x86_64-w64-mingw32\lib\li
bshell32.a C:\strawberry\c\x86_64-w64-mingw32\lib\libole32.a C:\strawberry\c\x86
_64-w64-mingw32\lib\liboleaut32.a C:\strawberry\c\x86_64-w64-mingw32\lib\libneta
pi32.a C:\strawberry\c\x86_64-w64-mingw32\lib\libuuid.a C:\strawberry\c\x86_64-w
64-mingw32\lib\libws2_32.a C:\strawberry\c\x86_64-w64-mingw32\lib\libmpr.a C:\st
rawberry\c\x86_64-w64-mingw32\lib\libwinmm.a C:\strawberry\c\x86_64-w64-mingw32\
lib\libversion.a C:\strawberry\c\x86_64-w64-mingw32\lib\libodbc32.a C:\strawberr
y\c\x86_64-w64-mingw32\lib\libodbccp32.a C:\strawberry\c\x86_64-w64-mingw32\lib\
libcomctl32.a dll.exp
dlltool --def Magick.def --base-file dll.base --output-exp dll.exp
g++ -o blib\arch\auto\Image\Magick\Magick.dll -mdll -s -L"C:\strawberry\perl\lib
\CORE" -L"C:\strawberry\c\lib" -L"C:/strawberry/cpan/build/PerlMagick-6.87-K56D5
1" -L"C:\Program Files\ImageMagick-6.8.8-Q16\lib" Magick.o   C:\strawberry\perl\
lib\CORE\libperl518.a libMagickCore-6.Q16.a C:\strawberry\c\x86_64-w64-mingw32\l
ib\libmoldname.a C:\strawberry\c\x86_64-w64-mingw32\lib\libkernel32.a C:\strawbe
rry\c\x86_64-w64-mingw32\lib\libuser32.a C:\strawberry\c\x86_64-w64-mingw32\lib\
libgdi32.a C:\strawberry\c\x86_64-w64-mingw32\lib\libwinspool.a C:\strawberry\c\
x86_64-w64-mingw32\lib\libcomdlg32.a C:\strawberry\c\x86_64-w64-mingw32\lib\liba
dvapi32.a C:\strawberry\c\x86_64-w64-mingw32\lib\libshell32.a C:\strawberry\c\x8
6_64-w64-mingw32\lib\libole32.a C:\strawberry\c\x86_64-w64-mingw32\lib\liboleaut
32.a C:\strawberry\c\x86_64-w64-mingw32\lib\libnetapi32.a C:\strawberry\c\x86_64
-w64-mingw32\lib\libuuid.a C:\strawberry\c\x86_64-w64-mingw32\lib\libws2_32.a C:
\strawberry\c\x86_64-w64-mingw32\lib\libmpr.a C:\strawberry\c\x86_64-w64-mingw32
\lib\libwinmm.a C:\strawberry\c\x86_64-w64-mingw32\lib\libversion.a C:\strawberr
y\c\x86_64-w64-mingw32\lib\libodbc32.a C:\strawberry\c\x86_64-w64-mingw32\lib\li
bodbccp32.a C:\strawberry\c\x86_64-w64-mingw32\lib\libcomctl32.a dll.exp
C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e chmod -- 755 blib\arch\au
to\Image\Magick\Magick.dll
C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e cp -- Magick.bs blib\arch
\auto\Image\Magick\Magick.bs
C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e chmod -- 644 blib\arch\au
to\Image\Magick\Magick.bs

C:\strawberry\cpan\build\PerlMagick-6.87-K56D51>dmake install
Files found in blib\arch: installing files in blib\lib into architecture depende
nt library tree
Installing C:\strawberry\perl\site\lib\auto\Image\Magick\Magick.dll
Appending installation info to C:\strawberry\perl\lib/perllocal.pod

C:\strawberry\cpan\build\PerlMagick-6.87-K56D51>dmake test
C:\strawberry\perl\bin\perl.exe "-MExtUtils::Command::MM" "-e" "test_harness(0,
'blib\lib', 'blib\arch')" t/*.t t/bzlib/*.t t/jpeg/*.t t/jp2/*.t t/png/*.t t/tif
f/*.t t/wmf/*.t t/zlib/*.t
t/blob.t .......... ok
t/bzlib/read.t .... ok
t/bzlib/write.t ... ok
t/composite.t ..... ok
t/filter.t ........ ok
t/getattribute.t .. ok
t/jp2/read.t ...... ok
t/jpeg/read.t ..... ok
t/jpeg/write.t .... ok
t/montage.t ....... ok
t/ping.t .......... ok
t/png/read-16.t ... ok
t/png/read.t ...... ok
t/png/write-16.t .. ok
t/png/write.t ..... ok
t/read.t .......... ok
t/setattribute.t .. ok
t/tiff/read.t ..... ok
t/tiff/write.t .... ok
t/wmf/read.t ...... ok
t/write.t ......... ok
t/zlib/read.t ..... ok
t/zlib/write.t .... ok
All tests successful.
Files=23, Tests=336,  9 wallclock secs ( 0.19 usr +  0.08 sys =  0.27 CPU)
Result: PASS

あとは、/mt/mt-check.cgiを実行して、Image::Magickが黄色くハイライトされていなければ完了。それ以外のオプションコンポーネントは大部分がcpanでinstall ○○やってインストールできてしまうんで、ハマるところは無いはず。

残るは、今使っているウィジェットをRainierのテーマの中に取り込んで、体裁を整えれば出来上がるかな、と。