FreeBSD6.2のパッケージになっているperlはithreadsに対応していないため、ithreads対応にビルドしたperlを別ディレクトリにインストールします。(以下の手順では/opt/local以下にインストールしています。ports,packagesに影響を及ぼさないディレクトリであればどこでも良いと思います)
# wget http://www.cpan.org/src/perl-5.10.0.tar.gz
# mkdir -p /opt/local # mkdir -p /opt/local/bin # bzcat perl-5.10.0.tar.bz2 |tar xvf - # cd perl-5.10.0
./hints/freebsd.sh (189行目:変更前) lc_r=`/sbin/ldconfig -r|grep ':-lc_r'|awk '{print $NF}'|sed -n '$p'` (189行目:変更後) lc_r=`/sbin/ldconfig -r|grep ':-lpthread'|awk '{print $NF}'|sed -n '$p'`
# sh Configure (以下は[ENTER]キー以外のタイプをする箇所を抜粋しています) Installation prefix to use? (~name ok) [/usr/local] /opt/local Build a threading Perl? [n] y # make # make test # make install # /opt/local/bin/perl -V Summary of my perl5 (revision 5 version 10 subversion 0) configuration: (中略) useithreads=define usemultiplicity=define ^^^^^^^^^^^^^^^^^^<-これを確認
# /opt/local/bin/cpan
cpan> install Bundle::CPAN cpan> q
(データが取得できなかった場合の表示) Conld not fetch modules/03modlist.data.gz Going to write /root/.cpan/Metadata Warning: Cannot install Bundle::CPAN, don't know ehat it is. Try the command i /Bundle::CPAN/ to find objects with matching identifiers. cpan> (cpanを終了) cpan> q (設定ファイルを削除) # rm -rf ./.cpan # cd /opt/local/lib/perl5/5.8.8/CPAN # rm -f ./Config.pm* (初期設定をやり直し) # cd # /opt/local/bin/cpan
# /opt/local/bin/cpan (モジュールを順番にインストールします) cpan[2]> install ExtUtils::Depends cpan[3]> install HTML::TokeParser cpan[4]> install ExtUtils::PkgConfig cpan[5]> install Glib cpan[6]> install Cairo (以下の表示(依存性解決)が出ますので、yesをタイプして依存するモジュールをインストールします) ----- Unsatisfied dependencirs detected during ----- ----- TSCH/Cairo-1.044.tar.gz ----- Test::Number::Delta [requires] Shall I follow them and prepend them to the queue of modules we are processing right now? [yes] <-- [ENTER]もしくはyes[ENTER] cpan[7]> install Gtk2 作者はGtk2のビルド後のテストで1,2個failしましたが、force install Gtk2で強制的にインストールしました。今のところgnviewの動作には影響はないようですが自己責任でどうぞ cpan[8]> install Gtk2::GladeXML cpan[9]> install HTTP::Date (以下の表示(依存性解決)が出ますので、yesをタイプして依存するモジュールをインストールします) ----- Unsatisfied dependencirs detected during ----- ----- GAAS/libwww-perl-5.808.tar.gz ----- URI [requires] Shall I follow them and prepend them to the queue of modules we are processing right now? [yes] <-- [ENTER]もしくはyes[ENTER] cpan[10]> q #
# tar xzvf gnview-0.7.tar.gz # cd gnview-0.7 # mkdir -p /usr/share/gnview # cp -p gnview.glade 1pix* gnview_*.pl /usr/share/gnview # cp -p gnview /usr/local/bin # chmod 755 /usr/local/bin/gnview (以下は必要に応じて) # cp -p gnview.desktop /usr/local/share/applications
(変更前) #!/usr/bin/perl -w (変更後) #!/opt/local/bin/perl -w