自宅鯖の運営に何かヒントは無いものかと購入しました。
発行自体は1年ぐらい前のものですが、改定もなくすり直しが行われていたので情報もそれなりに新しいと判断して購入。
図書カードとクオカードと現金です。ジュンク堂のレジの人面倒な客ですいません。
買った本はこれ

サーバ/インフラを支える技術
「その他」カテゴリーアーカイブ
CentOS5.5に最新のImageMagickをソースからインストールする
CentOS5.5のシステムをセットアップしていました。
yumからシステムを一通りアップデートしてから、PerlをCPANでモジュール群を更新したのですが、Image::Magickを入れようとしたところ、force installにしてもNOT OKとなり、インストールできませんでした。
これはImageMagickのバージョンとPerlの(コアなモジュール)バージョンとの依存の影響と思われ、Windowsの場合はImageMagickとActivePerlのバージョンは細かく指定されています。
Linuxの場合は自動で依存を解消してくれるものと思っていましたが、どうやらダメだったようです。
ImageMagickのために、別のディストリを入れなおすことも考えましたが、それではあまりにも情け無いので、だめもとで手動でソースからコンパイルしてインストールに挑戦しました。
まずはソースの取得
[root@localhost ~]# wget ftp://ftp.kddilabs.jp/graphics/ImageMagick/linux/SRPMS/ImageMagick.src.rpm
--2010-07-20 15:44:05-- ftp://ftp.kddilabs.jp/graphics/ImageMagick/linux/SRPMS/ImageMagick.src.rpm
=> `ImageMagick.src.rpm'
ftp.kddilabs.jp をDNSに問いあわせています... 192.26.91.193
ftp.kddilabs.jp|192.26.91.193|:21 に接続しています... 接続しました。
anonymous としてログインしています... ログインしました!
==> SYST ... 完了しました。 ==> PWD ... 完了しました。
==> TYPE I ... 完了しました。 ==> CWD /graphics/ImageMagick/linux/SRPMS ... 完了しました。
==> SIZE ImageMagick.src.rpm ... 8747108
==> PASV ... 完了しました。 ==> RETR ImageMagick.src.rpm ... 完了しました。
長さ: 8747108 (8.3M)
100%[======================================>] 8,747,108 3.39M/s 時間 2.5s
2010-07-20 15:44:08 (3.39 MB/s) - `ImageMagick.src.rpm' へ保存終了 [8747108]
検索してヒットするサイトの中にはURLが「kddilabs」ではなく「kddlabs」とありますが、どちらでもいい(?)みたいです。こちらの環境でkddlabsはDNS解決できませんでしたがkddilabsでは通りました。
ここからsrc.rpmを取得して展開します。
コマンドなら次の通り
[root@localhost ~]# rpm -ivh –nomd5 ImageMagick.src.rpm
1:ImageMagick 警告: ユーザ cristy は存在しません – root を使用します
警告: グループ cristy は存在しません – root を使用します
########################################### [100%]
警告: ユーザ cristy は存在しません – root を使用します
警告: グループ cristy は存在しません – root を使用します
同じ階層に「_FILES」という文字が追加されたディレクトリがあるはずなので、移動します。
[root@localhost ~]# cd ImageMagick.src.rpm_FILES [root@localhost ImageMagick.src.rpm_FILES]# ls ImageMagick-6.6.3-0.tar.bz2 ImageMagick.spec
とりあえずビルドしてみます。
[root@localhost ImageMagick.src.rpm_FILES]# rpmbuild -ba ImageMagick.spec
エラー: ビルド依存性の失敗:
libtiff-devel は ImageMagick-6.6.3-0.i386 に必要とされています
giflib-devel は ImageMagick-6.6.3-0.i386 に必要とされています
perl-devel >= 5.8.1 は ImageMagick-6.6.3-0.i386 に必要とされています
ghostscript-devel は ImageMagick-6.6.3-0.i386 に必要とされています
djvulibre-devel は ImageMagick-6.6.3-0.i386 に必要とされています
libwmf-devel は ImageMagick-6.6.3-0.i386 に必要とされています
jasper-devel は ImageMagick-6.6.3-0.i386 に必要とされています
libtool-ltdl-devel は ImageMagick-6.6.3-0.i386 に必要とされています
lcms-devel は ImageMagick-6.6.3-0.i386 に必要とされています
librsvg2-devel は ImageMagick-6.6.3-0.i386 に必要とされています
いろいろと足らないと文句を言われました。
とりあえずyumで片っ端から入れていきます。
[root@localhost ImageMagick.src.rpm_FILES]# yum install libtiff-devel giflib-devel perl-devel ghostscript-devel djvulibre-devel libwmf-devel jasper-devel libtool-ltdl-devel lcms-devel librsvg2-devel
進捗は省略します。
最終的に次の3つが残ります。
perl-devel >= 5.8.1 は ImageMagick-6.6.3-0.i386 に必要とされています djvulibre-devel は ImageMagick-6.6.3-0.i386 に必要とされています jasper-devel は ImageMagick-6.6.3-0.i386 に必要とされています
まず、「perl-devel」はcentOS5.5ではperlに頭語されているらしいので不要です。
specファイルの15行目(辺り)にあるperl-develを削除またはコメントアウトします。
次に、「djvulibre-devel」はリポジトリ「RPMForge」または「Dag」を利用してインストールします。
導入方法は検索するなどして調べてください。
大量に解説サイトがあるので省略します。
最後に、「jasper-devel」は「http://dev.centos.org/centos/5/testing/i386/RPMS/」にCentOS5用のRPMがあります。他のサイトにある通常のel5.i386のrpmは依存解消できずにインストールできませんでした。
これら3つが解決すれば晴れてImageMagickのコンパイルが開始できます。
[root@localhost ImageMagick.src.rpm_FILES]# rpmbuild -ba ImageMagick.spec
かなり時間がかかります。
問題なく終われば、以下の場所にrpmが生成されます。
[root@localhost redhat]# cd /usr/src/redhat/RPMS/i386
[root@localhost i386]# ls
ImageMagick-6.6.3-0.i386.rpm ImageMagick-devel-6.6.3-0.i386.rpm
ImageMagick-c++-6.6.3-0.i386.rpm ImageMagick-doc-6.6.3-0.i386.rpm
ImageMagick-c++-devel-6.6.3-0.i386.rpm ImageMagick-perl-6.6.3-0.i386.rpm
ImageMagick-debuginfo-6.6.3-0.i386.rpm
ここまで来れば(おそらく大丈夫です。
[root@localhost i386]# rpm -Uvh ImageMagick-*
準備中... ########################################### [100%]
1:ImageMagick ########################################### [ 14%]
2:ImageMagick-c++ ########################################### [ 29%]
3:ImageMagick-perl ########################################### [ 43%]
4:ImageMagick-debuginfo ########################################### [ 57%]
5:ImageMagick-devel ########################################### [ 71%]
6:ImageMagick-c++-devel ########################################### [ 86%]
7:ImageMagick-doc ########################################### [100%]
[root@localhost i386]# convert -version
Version: ImageMagick 6.6.3-0 2010-07-20 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2010 ImageMagick Studio LLC
Features:
でめたしでめたし。お疲れ様でした。
ITパスポートも萌えて勉強
通りすがりの書店で見かけたので衝動買いしました。
![電撃PC [超解]ITパスポートたん 図解ですぐわかる!実践問題対策で一発合格!](http://images.amazon.com/images/P/4048686313.09._OU09_SCMZZZZZZZ_.jpg)
電撃PC [超解]ITパスポートたん 図解ですぐわかる!実践問題対策で一発合格!
ActionScript3でラジオボタンはデフォで使えても、グループは使えない
コンポーネントにラジオボタンがあります。HTMLではお馴染みフォームの部品のひとつです。これをActionScript3で使おうとしてハマりました。設置したラジオボタンにグループを割り当てて、選択状態のラジオボタンを取得しようと、サンプルコードにあるとおりにコードを用意しました。
var rbGrp:RadioButtonGroup = RadioButtonGroup.getGroup("radioGroup");
これをパブリッシュすると以下のようにエラーが出ます。
1046: 型が見つからないか、コンパイル時定数ではありません : RadioButtonGroup。
はて?何がおかしいんだろう・・・と散々悩んだ挙句に、だめもとでライブラリをインポートしなおしてみることにしました。
import fl.controls.RadioButtonGroup;
このライブラリをインポートするとエラーは発生せず、
rbGrp.selection.value
で選択状態のラジオボタンの値を取得できるようになりました。
ラジオボタンが使えるのに、グループ判定が使えない。このような不完全なオブジェクトが実装されている理由がよくわかりません。せめてundefinedを返せばいいのに、コンパイル(パブリッシュ)エラーですからね。
ActionScript3のScrollPaneでハマる
ActionScript3つまりFLASHでのお話です。
HTMLの場合はdivタグのスタイルwidthやheightを設定してoverflow:autoとすれば簡単なスクロール領域を用意できます。
ActionScript3の場合はScrollPaneを使えばいいらしいのです(それがわかるまで自分で大きさやScrollRectを計算してスクロールバーまで自作してこんな機能はflashにないのかと愚痴ってました)が、その内容をあてがうところで躓きました。単純にaddChildすると手前に表示されてScrollPaneが奥になってしまいます。てっきり子供にさえすればコンポーネントが勝手にやってくれるのかと思いましたが違いました。sourceというメソッドがあって、それにオブジェクトを放り込む必要があったのです。
さらに、このScrollPaneのsourceに放り込んだオブジェクトは使い回しができません。ほかの子供になると対象から外れてしまうようです。別のScrollPaneのsourceにあてがってやると一番最後のもののみが表示されます。オブジェクトの単純コピーでは参照になるためかやはりだめで、別の入れ物を用意してやらないとだめのようです。異なる窓で大きさの異なるMovieClipを表示させたかったのに、できませんでした。
Flashにおけるフォーカスの扱い方にハマる
Flashのお話です。
イベント処理を確認していたところ、イベントが発生しない事があったので動作を確認していました。
どうやらコンポーネントにフォーカスが移動すると、stageがイベントを拾わなくなるようです。
stageをクリックするだけではだめで、stageに置いたオブジェクトを選択してもだめでした。
結局、この問題の原因となったListを選択したらフォーカスをstageに移動させるという、いまいちな方法で対処しました。
ざっと検索しても出てこなかったので、この挙動は不具合なのか仕様なのかよくわかりませんでした。
PerlのNet::Twitterモジュールがインストールできない
Perlでtwitterに何かをやらかすにはNet::Twitterというモジュールを利用するといいようです。
早速Net::Twitterを入れてみることにしました。
ちなみに、WindowsVistaはActivePerl 5.8.8です。
ppmでは用意されていないので、CPANからインストールします。
しかし、実際に実行してみると、いろいろ足らないからインストールしますよといわれて、言うとおりにインストールしたのですが、あちこちでNOT OKとなってしまいます。
C:\Users\admin>cpan install Net::Twitter CPAN: Storable loaded ok Going to read C:\Perl\cpan\Metadata Database was generated on Thu, 22 Apr 2010 21:26:57 GMT install is up to date. Running install for module Net::Twitter Running make for M/MM/MMIMS/Net-Twitter-3.12000.tar.gz CPAN: Digest::MD5 loaded ok CPAN: Compress::Zlib loaded ok Checksum for C:\Perl\cpan\sources\authors\id\M\MM\MMIMS\Net-Twitter-3.12000.tar.gz ok Scanning cache C:\Perl/cpan/build for sizes Deleting from cache: C:\Perl\cpan\build\ExtUtils-MakeMaker-6.56 (17.6>10.0 MB) Can't remove directory C:\Perl\cpan\build\ExtUtils-MakeMaker-6.56/t/Big-Dummy (Permission denied) at C:/Perl/lib/CPAN.pm line 9 6 Can't remove directory C:\Perl\cpan\build\ExtUtils-MakeMaker-6.56/t (Directory not empty) at C:/Perl/lib/CPAN.pm line 966 Can't remove directory C:\Perl\cpan\build\ExtUtils-MakeMaker-6.56 (Directory not empty) at C:/Perl/lib/CPAN.pm line 966 Deleting from cache: C:\Perl\cpan\build\Net-Twitter-3.12000 (17.6>10.0 MB) Deleting from cache: C:\Perl\cpan\build\Sub-Name-0.04 (17.0>10.0 MB) Deleting from cache: C:\Perl\cpan\build\Sub-Identify-0.04 (16.9>10.0 MB) Deleting from cache: C:\Perl\cpan\build\Variable-Magic-0.41 (16.7>10.0 MB) Deleting from cache: C:\Perl\cpan\build\B-Hooks-EndOfScope-0.08 (16.5>10.0 MB) Deleting from cache: C:\Perl\cpan\build\namespace-clean-0.14 (16.4>10.0 MB) Deleting from cache: C:\Perl\cpan\build\Scalar-List-Utils-1.23 (16.3>10.0 MB) Deleting from cache: C:\Perl\cpan\build\Devel-GlobalDestruction-0.02 (16.2>10.0 MB) Deleting from cache: C:\Perl\cpan\build\Class-MOP-1.00 (16.0>10.0 MB) Deleting from cache: C:\Perl\cpan\build\Moose-1.01 (15.0>10.0 MB) Deleting from cache: C:\Perl\cpan\build\Data-Visitor-0.27 (12.5>10.0 MB) Deleting from cache: C:\Perl\cpan\build\DateTime-0.55 (12.4>10.0 MB) Deleting from cache: C:\Perl\cpan\build\DateTime-Format-Strptime-1.2000 (11.6>10.0 MB) Deleting from cache: C:\Perl\cpan\build\MooseX-MultiInitArg-0.01 (11.4>10.0 MB) Deleting from cache: C:\Perl\cpan\build\namespace-autoclean-0.09 (11.4>10.0 MB) Deleting from cache: C:\Perl\cpan\build\Digest-SHA1-2.12 (11.3>10.0 MB) Deleting from cache: C:\Perl\cpan\build\Encode-2.39 (11.2>10.0 MB) CPAN: Archive::Tar loaded ok Net-Twitter-3.12000/ Net-Twitter-3.12000/lib/ Net-Twitter-3.12000/lib/Net/ Net-Twitter-3.12000/lib/Net/Identica.pm Net-Twitter-3.12000/lib/Net/Twitter.pm Net-Twitter-3.12000/lib/Net/Twitter/ Net-Twitter-3.12000/lib/Net/Twitter/Role/ Net-Twitter-3.12000/lib/Net/Twitter/Role/WrapError.pm Net-Twitter-3.12000/lib/Net/Twitter/Role/Legacy.pm Net-Twitter-3.12000/lib/Net/Twitter/Role/API/ Net-Twitter-3.12000/lib/Net/Twitter/Role/API/Search.pm Net-Twitter-3.12000/lib/Net/Twitter/Role/API/TwitterVision.pm Net-Twitter-3.12000/lib/Net/Twitter/Role/API/REST.pm Net-Twitter-3.12000/lib/Net/Twitter/Role/API/Lists.pm Net-Twitter-3.12000/lib/Net/Twitter/Role/OAuth.pm Net-Twitter-3.12000/lib/Net/Twitter/Role/RetryOnError.pm Net-Twitter-3.12000/lib/Net/Twitter/Role/RateLimit.pm Net-Twitter-3.12000/lib/Net/Twitter/Role/SimulateCursors.pm Net-Twitter-3.12000/lib/Net/Twitter/Role/InflateObjects.pm Net-Twitter-3.12000/lib/Net/Twitter/OAuth/ Net-Twitter-3.12000/lib/Net/Twitter/OAuth/XAuthRequest.pm Net-Twitter-3.12000/lib/Net/Twitter/API.pm Net-Twitter-3.12000/lib/Net/Twitter/Search.pm Net-Twitter-3.12000/lib/Net/Twitter/Core.pm Net-Twitter-3.12000/lib/Net/Twitter/OAuth.pm Net-Twitter-3.12000/lib/Net/Twitter/Error.pm Net-Twitter-3.12000/lib/Net/Twitter.pod Net-Twitter-3.12000/Changes Net-Twitter-3.12000/MANIFEST Net-Twitter-3.12000/examples/ Net-Twitter-3.12000/examples/oauth_webapp.pl Net-Twitter-3.12000/examples/oauth_desktop.pl Net-Twitter-3.12000/README Net-Twitter-3.12000/src/ Net-Twitter-3.12000/src/net-twitter-pod.tt2 Net-Twitter-3.12000/src/build.pl Net-Twitter-3.12000/t/ Net-Twitter-3.12000/t/22_twitter_insanity.t Net-Twitter-3.12000/t/20_exceptions.t Net-Twitter-3.12000/t/unicode.t Net-Twitter-3.12000/t/lib/ Net-Twitter-3.12000/t/lib/TestUA.pm Net-Twitter-3.12000/t/13_search.t Net-Twitter-3.12000/t/99-pod_syntax.t Net-Twitter-3.12000/t/02_fails.t Net-Twitter-3.12000/t/51_rate_limit.t Net-Twitter-3.12000/t/40_nt_subclasses.t Net-Twitter-3.12000/t/11_useragent.t Net-Twitter-3.12000/t/50_inflate_objects.t Net-Twitter-3.12000/t/99-pod_coverage.t Net-Twitter-3.12000/t/21_wraperror.t Net-Twitter-3.12000/t/10_net-twitter-regression.t Net-Twitter-3.12000/t/12_identica.t Net-Twitter-3.12000/t/01_basic.t Net-Twitter-3.12000/t/60-api_lists.t Net-Twitter-3.12000/t/retry.t Net-Twitter-3.12000/t/geo.t Net-Twitter-3.12000/t/51_since.t Net-Twitter-3.12000/t/00_load.t Net-Twitter-3.12000/t/14_authenticate.t Net-Twitter-3.12000/t/30_legacy.t Net-Twitter-3.12000/t/20_generated.t Net-Twitter-3.12000/t/15_subclass.t Net-Twitter-3.12000/t/99-pod_spelling.t Net-Twitter-3.12000/t/lookup_users.t Net-Twitter-3.12000/META.yml Net-Twitter-3.12000/Makefile.PL Net-Twitter-3.12000/inc/ Net-Twitter-3.12000/inc/Module/ Net-Twitter-3.12000/inc/Module/Install.pm Net-Twitter-3.12000/inc/Module/Install/ Net-Twitter-3.12000/inc/Module/Install/WriteAll.pm Net-Twitter-3.12000/inc/Module/Install/Fetch.pm Net-Twitter-3.12000/inc/Module/Install/Win32.pm Net-Twitter-3.12000/inc/Module/Install/Include.pm Net-Twitter-3.12000/inc/Module/Install/Repository.pm Net-Twitter-3.12000/inc/Module/Install/AutoInstall.pm Net-Twitter-3.12000/inc/Module/Install/Base.pm Net-Twitter-3.12000/inc/Module/Install/Metadata.pm Net-Twitter-3.12000/inc/Module/Install/Can.pm Net-Twitter-3.12000/inc/Module/Install/Makefile.pm Net-Twitter-3.12000/inc/Module/Install/AutoManifest.pm Net-Twitter-3.12000/inc/Module/AutoInstall.pm CPAN.pm: Going to build M/MM/MMIMS/Net-Twitter-3.12000.tar.gz *** Module::AutoInstall version 1.03 *** Checking for Perl dependencies... [Core Features] - Test::More ...loaded. (0.94 >= 0.88) - Carp ...loaded. (1.04) - Digest::SHA ...loaded. (5.47) - List::Util ...loaded. (1.18) - Net::Netrc ...loaded. (2.12) - Scalar::Util ...loaded. (1.18) - Data::Visitor::Callback ...missing. - DateTime ...missing. (would need 0.51) - DateTime::Format::Strptime ...missing. (would need 1.09) - Encode ...loaded. (2.12) - HTML::Entities ...loaded. (1.35) - HTTP::Request::Common ...loaded. (1.26) - JSON::Any ...loaded. (1.22 >= 1.21) - LWP::UserAgent ...loaded. (2.033 >= 2.032) - Moose ...missing. (would need 0.9) - Moose::Exporter ...missing. - Moose::Role ...missing. - MooseX::MultiInitArg ...missing. - namespace::autoclean ...missing. (would need 0.09) - Net::OAuth ...missing. (would need 0.2) - URI ...loaded. (1.52 >= 1.4) - URI::Escape ...loaded. (3.29) - Try::Tiny ...loaded. (0.04) - JSON ...loaded. (2.17 >= 2.02) ==> Auto-install the 9 mandatory module(s) from CPAN? [y]
とりあえずそのままYを押して足らないものを入れさせてみましたが、ぜんぜんだめでした。
ちなみに、CentOS5のPerl5.8.8でも同じような現象に。CPAN自体をアップデートしてやり直してもだめ。yumから1つ1つ入れてみようと思って、まず
yum install perl-Moose
を終えても、CPANからはまた入れなおそうとしてしまいます。
Mooseという新しい技術を利用するのもいいのですが、入れること自体がハードルが高いとあまり意味がないですね。別のOSで試すとか、あきらめるしかないのかなぁ。がっかり。
BOINCにっぽつ!
BOINCの各プロジェクト別に「Team 2ch」に所属しているメンバーのみのstatsを表示しています。いまはこれだけ、でもいろいろ考えてもいます。
それは追々。
http://boinc.nippotsu.org/index.html
ActionScript3でdrawRectのバグ
ACtionScript3で矩形を描くのにdrawRectがあるけど、よくよく見るとどうもおかしい。
どうも基点にごみが混ざっているようだ。
内部的にはlinetoでやっているのか、基点つまりlinetoだt基点と終点が重なる場所、つまり線でいうところのcapsがsquareになっている。表示を拡縮すると消えるけれど、小さく表示すると露骨にはみ出る。
drawRectは使えないってことなのかなぁ・・・あぁ、めんどくさい。
漫画・アニメの「非実在青少年」も対象に 東京都の青少年育成条例改正案
ITmediaの記事のタイトルをお借りしました。
twitterのリツィートからしったのですが、東京都でトンデモない条例が提出されていた模様。
児童ポルノ禁止法で騒がれたのも、そんなに昔ではない。
この手の「表現の自由を抑制しようとする不当な圧力」はいったいどこから生まれてくるのか。
いったい、「幾つの企業を潰し、幾人の個人を潰そう」というのか。
「憲法を理解していない議員を、議員の椅子から引き摺り下ろす権利」は、都民にはないのだろうか?
もちろん、ちゃんと税金払ってますよ?