gnviewのインストール(Solaris 10(x86_sxde 9/07))

1. 環境の準備

  1. Solaris Express Developer Edition相当のインストールがされていることを前提とします。 作者はOpenSolarisのダウンロードページからSolaris Express Developer Edition DVD(9/07 snv_70b)をダウンロードしてインストールしました
    • Community Editionも試しましたがGtk2のperlモジュールのビルドに失敗するようです
  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.8.8にしました)
     # /usr/local/bin/wget
  2. 以下のようにperlを作成します
    # mkdir -p /opt/local/bin
    # bzcat stable.tar.bz2 |tar xvf -
    # cd perl-5.8.8
    # sh Configure
    Build a threading Perl? [n] y
    What libraries to use? [-lsocket -lnsl -ldb -ldl -lm -lpyhread -lc] -lsocket -lnsl -ldl -lm -lpthread -lc (<--"-ldb"を抜きます)
    Installation prefix to use? (~name ok) [/usr/local] /opt/local
    # make
    # make test
    # make install
    # /opt/local/bin/perl -V
    Summary of my perl5 (revision 5 version 8 subversion 8) configuration:
        usethreads=define use5005threads=undef useithreads=define usemultiplicity=define

3. cpanの設定

  1. 環境変数PATHに/usr/local/binを追加します
    # PATH="/usr/local/bin:$PATH"
    # export PATH
    # printenv PATH
  2. 環境変数PKG_CONFIG_PATHを変更します
    # PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig"
    # export PKG_CONFIG_PATH
    # printenv PKG_CONFIG_PATH
  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: []
      cpan> q
  4. Bundle::CPANモジュールをインストールします
    # /opt/local/bin/cpan
    cpan> install Bundle::CPAN
    cpan> q
    1. CPANからのデータが取得できない場合はConfig.pmを削除して初期設定をやり直します
      Conld not fetch modules/
      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> q
      # rm -rf ./.cpan
      # cd /opt/local/lib/perl5/5.8.8/CPAN
      # rm -f ./*
      # cd
      # /opt/local/bin/cpan

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

  1. /usr/lib/pkgconfig/x11.pcを作成します
    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
  2. 以下の手順で各モジュールをビルドします
    # /opt/local/bin/cpan
    Always commit changes to config variables to disk? [no] yes
    cpan[1]> o conf
    $CPAN::Config options from '/opt/local/lib/perl5/5.8.8/CPAN/':
        commit             [Commit changes to disk]
        defaults           [Reload defaults from disk]
        help               [Short help about 'o conf' usage]
        init               [Interactive setting of all options]
        applypatch         undef
        auto_commit        [1]
        build_cache        [10]
        build_dir          [/.cpan/build]
        build_dir_reuse    undef
        build_requires_install_policy undef
        bzip2              undef
        cache_metadata     [1]
        check_sigs         undef
        colorize_debug     undef
        colorize_output    undef
        colorize_print     undef
        colorize_warn      undef
        commandnumber_in_prompt [1]
        commands_quote     undef
        cpan_home          [/.cpan]
        curl               undef
        dontload_list      undef
        ftp                [/usr/bin/ftp]
        ftp_passive        [1]
        ftp_proxy          []
        getcwd             [cwd]
        gpg                []
        gzip               [/usr/bin/gzip]
        histfile           [/.cpan/histfile]
        histsize           [100]
        http_proxy         []
        inactivity_timeout [0]
        index_expire       [1]
        inhibit_startup_message [0]
        keep_source_where  [/.cpan/sources]
        load_module_verbosity undef
        lynx               []
        make               [/usr/local/bin/make]
        make_arg           []
        make_install_arg   []
        make_install_make_command [/usr/local/bin/make]
        makepl_arg         []
        mbuild_arg         []
        mbuild_install_arg []
        mbuild_install_build_command [./Build]
        mbuildpl_arg       []
        ncftp              []
        ncftpget           []
        no_proxy           []
        pager              [/usr/bin/less]
        password           undef
        patch              undef
        prefer_installer   undef
        prefs_dir          undef
        prerequisites_policy [ask]
        proxy_pass         undef
        proxy_user         undef
        randomize_urllist  undef
        scan_cache         [atstart]
        shell              [/sbin/sh]
        show_unparsable_versions undef
        show_upload_date   [0]
        show_zero_versions undef
        tar                [/usr/sbin/tar]
        tar_verbosity      undef
        term_is_latin      [1]
        term_ornaments     [1]
        test_report        undef
        unzip              [/usr/bin/unzip]
            0 []
            1 []
            2 []
        use_sqlite         [0]
        username           undef
        wait_list          undef
        wget               [/usr/local/bin/wget]
        yaml_load_code     undef
        yaml_module        undef
    cpan[2]> install ExtUtils::Depends
    cpan[3]> install HTML::TokeParser
    ----- 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
    ----- 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
      force install Gtk2 で無理矢理インストールできますがgnviewが動かない場合が
    cpan[8]> install Gtk2::GladeXML
    cpan[9]> install HTTP::Date
    ----- 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.6.tar.gz | tar xvf -
    # cd gnview-0.6
    # mkdir -p /usr/share/gnview
    # cp -p 1pix* /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