gnviewのインストール(Solaris 10(x86_sxde 1/08))

1. 環境の準備

  1. Solaris Express Developer Editionのインストールがされていることを前提とします。 作者はOpenSolarisのダウンロードページからSolaris Express Developer Edition DVD(1/08 snv_79b)をダウンロードしてインストールしました
  2. Sunfreeware.comから以下のパッケージをダウンロードします 以下のリンクはSolaris 10 x86版ですので、Sparc版やSolaris 9以下の場合はトップページからたどってください
  3. ダウンロードしたパッケージをインストールします
    # gunzip パッケージのファイル名.gz
    # pkgadd -d 展開したパッケージのファイル名
    
    The following packages are available:
      1  <パッケージ名>
    
    Select package(s) you wish to process (or 'all' to process
    all packages). (default: all) [?,??,q]: <--[ENTER]を押す
    

2. ithreads対応perlの作成

Solaris 10のパッケージになっているperlはithreadsに対応していないため、ithreads対応にビルドしたperlを別ディレクトリにインストールします。(以下の手順では/opt/local以下にインストールしています。パッケージに影響を及ぼさないディレクトリであればどこでも良いと思います)

  1. perlを公式サイトより取得します(作者はstableである、5.10.0にしました。5.8.8はうまくビルドできませんでした)
     # /usr/local/bin/wget http://www.cpan.org/src/perl-5.10.0.tar.gz
    
  2. 以下のようにperlを作成します
    # mkdir -p /opt/local/bin
    # bzcat perl-5.10.0.tar.bz2 |tar xvf -
    # cd perl-5.10.0
    
    # sh Configure
    (以下は[ENTER]キー以外のタイプをする箇所を抜粋しています)
    
    Installation prefix to use? (~name ok) [/usr/local] /opt/local
    Build a threading Perl? [n] y
    Use which C compiler? [cc] gcc
    
    # make
    
    makeの後に自動的にmake testします。
    testの最中にエラーが出て終了しますがそのままインストールします
    (多分よくないことですが、gnviewの動作自体には問題がないようです。気になる方は
    D_LIBRARY_PATH=`pwd`; export LD_LIBRARY_PATH; cd t; ./perl harness
    としてどこがfailするのか確認します。)
    
    # make install
    # /opt/local/bin/perl -V
    
    
    Summary of my perl5 (revision 5 version 10 subversion 0) configuration:
    
    (中略)
        useithreads=define, usemultiplicity=define
        ^^^^^^^^^^^^^^^^^^<-これを確認
    

3. cpanの設定

  1. 環境変数PATHに/usr/local/binを追加します
    # PATH="/usr/local/bin:$PATH"
    # export PATH
    # printenv PATH
    /usr/local/bin:/usr/sbin:/usr/bin:/usr/openwin/bin:/usr/ucb
    
  2. 環境変数PKG_CONFIG_PATHを変更します
    # PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig"
    # export PKG_CONFIG_PATH
    # printenv PKG_CONFIG_PATH
    /usr/lib/pkgconfig:/usr/local/lib/pkgconfig
    
  3. cpanの初期設定をします
    # /opt/local/bin/cpan
    
    1. 設定ファイルを正常に取得できた場合は以下のような手順になります
      Select your continent (or several nearby continents) [] 2 (<--(2) Asiaを選択)
      
      Select your country (or several nearby countries) [] 5 (<--(5) Japanを選択)
      
      put them on one line, separated by blanks, e.g. '1 4 5' [] 1 2 3 4 5 6 7 (<--お好みのCPAN mirrorをスペース区切りで並べて選択)
      
      cpan> q
      #
      
    2. MIRRORED.BY.gzを取得できなかった場合は以下の表示が出ます。CPAN sitesを参照してお好みのCPAN mirrorを入力します
      Please enter your CPAN site: [] http://ftp.cpan.jp/
      cpan> q
      #
      
  4. Bundle::CPANモジュールをインストールします
    # /opt/local/bin/cpan
    cpan> install Bundle::CPAN
    cpan> q
    
    
    1. CPANからのデータが取得できない場合はConfig.pmを削除して初期設定をやり直します
      (データが取得できなかった場合の表示)
      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
      

4. perlモジュールのインストール

  1. /usr/lib/pkgconfig/x11.pcを作成します
    prefix=/usr/openwin
    exec_prefix=${prefix}
    libdir=${exec_prefix}/lib
    includedir=${prefix}/include
    
    xthreadlib=
    
    Name: X11
    Description: X Library
    Version: 0.0
    Requires: xproto kbproto inputproto
    Requires.private: xau xdmcp
    Cflags: -I${includedir} -I/usr/X11/share/include -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -DXTHREADS -DXUSE_MTSAFE_API
    Libs: -L${libdir} -R${libdir} -lX11
    Libs.private:
    
  2. 以下の手順で各モジュールをビルドします
    # /opt/local/bin/cpan
    
    Always commit changes to config variables to disk? [no] yes
    
    (モジュールを順番にインストールします)
    cpan[2]> install ExtUtils::Depends
    cpan[3]> install HTML::TokeParser
    
    (以下の表示(依存性解決)が出ますので、yesをタイプして依存するモジュールをインストールします)
    ----- Unsatisfied dependencirs detected during -----
    -----       GAAS/HTML-Parser-3.56.tar.gz       -----
         HTML::Tagset [requires]
    Shall I follow them and prepend them to the queue
    of modules we are processing right now? [yes] <-- [ENTER]もしくはyes[ENTER]
    
    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
    
     (test時にエラーが出てインストールできないことがあります。(私の場合は必ずエラーになりました)
      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
    
    #
    

5. gnviewのインストール

  1. gnviewのリリースページから最新のtarballを取得します
  2. 以下のようにインストールします
    # gzcat gnview-0.7.tar.gz | tar xvf -
    # cd gnview-0.7
    # mkdir -p /usr/share/gnview
    # cp -p gnview.glade 1pix* gnview_*.pl /usr/share/gnview
    # cp -p gnview /usr/bin
    # chmod 755 /usr/bin/gnview
    (以下は必要に応じて)
    # cp -p gnview.desktop /usr/share/applications
    
  3. /usr/bin/gnviewをエディタで開いて編集します
    (変更前)
    #!/usr/bin/perl -w
    (変更後)
    #!/opt/local/bin/perl -w