金子邦彦研究室インストールFreeBSDFreeBSD でデスクトップ環境とプログラミング環境を整える(主にポーツ・ツリーを活用)

FreeBSD でデスクトップ環境とプログラミング環境を整える(主にポーツ・ツリーを活用)

FreeBSD に種々のソフトウェアのインストールするための手順を記述しました(2010/8 に作成).

◇ ポーツ・ツリーを活用してインストールするもの

◇ ソースコードからビルドするもの

※ FreeBSD のパッケージを使ってのインストール手順については 別ページで説明

※ Ubuntu については別ページで説明

※ 参考ファイル: hoge2.sh

※ この Web ページでインストール手順を説明していない主要なソフトウェア

前準備

基本設定と更新

  1. /etc/rc.conf, /etc/make.conf, /etc/src.conf, /etc/fstab, /etc/sysctl.conf, /root/.netrc の設定

    「FreeBSD 基本設定」の Web ページなどを参考に行う.

  2. FreeBSD の更新
    1. FreeBSD のソースコードとポーツ・ツリーの更新

      以下のようにコマンドを実行して,FreeBSD の全てのソースコードを更新します. このとき,同時に,ポーツ・ツリー (Ports Tree) の展開/更新も行われます(そのはずです)

      cd /usr/src
      make update
      
    2. FreeBSD のシステム更新

      下記の portupgrade に進む前に,FreeBSD のシステム更新を先に行っておく(決して必須ではありませんが,その方が作業が楽だと思います).

    3. GNU コンパイラコレクションの更新
  3. ポーツとパッケージ管理を支援するソフトウェア
    1. ports-mgmt/portupggrade のインストール

      cd /usr/ports/ports-mgmt/portupgrade
      make clean deinstall rmconfig
      make -j4
      make install
      
    2. パッケージ・レジストリ・データベースと, ポーツ・インデックス・ファイルと, ポーツ・データベース・ファイルの生成/再構成

      portsdb -uU
      pkgdb -aF
      
    3. portupggrade コマンドによるアプリケーションの全更新

      shutdown now
      portupgrade -aRv
      sync
      sync
      sync
      sync
      sync
      reboot
      
    4. ports-mgmt/psearch のインストール

      portupgrade -Npv -B 'make rmconfig' ports-mgmt/psearch
      

環境変数の設定

設定例

.cshrc

setenv VTK_DATA_ROOT /usr/local/share/examples/vtk/VTKData
setenv PACKAGEROOT ftp://ftp.jp.freebsd.org/
setenv PACKAGESITE ftp://ftp.jp.freebsd.org/pub/FreeBSD/ports/amd64/packages-8.1-release/Latest/
setenv FTP_PASSIVE_MODE yes

.profile

export VTK_DATA_ROOT=/usr/local/share/examples/vtk/VTKData
export PACKAGEROOT=ftp://ftp.jp.freebsd.org/
export PACKAGESITE=ftp://ftp.jp.freebsd.org/pub/FreeBSD/ports/amd64/packages-8.1-release/Latest/
export FTP_PASSIVE_MODE=yes

※ 次のように「/libexec/ld-elf.so.1: /usr/lib/libstdc++.so.6: version GLIBCXX_3.4.11 required by /usr/local/lib ... not found」というエラーメッセージが出たときの回避策. この設定で、エラーを回避できる可能性がある. これはポーツ・ツリーでのビルドに gcc45 などを使っている(デフォルトの設定を使っていない)場合によく出てくるエラー. 仕方がないので,環境変数 LD_LIBRARY_PATH の設定で対処する. 上のように、環境変数 LD_LIBRARY_PATH を設定しているのは,/usr/lib/libstdc++.so.6 ではなく,/usr/local/lib/gcc45/libstdc++.so.6 を使いたいときの設定.

[image]

.xinitrc, .emacs の設定

avahi の設定

GNOME2 が avahi-gtk を含んでいるみたいなので,avahi ユーザと avahi グループを作っておく

pw groupadd avahi -g 558
pw useradd avahi -u 558 -g 558 -d /nonexistent -s /sbin/nologin -c "Avahi Daemon User"

システムの起動時に,次のようなエラーメッセージが出る場合には,上記の pw ... の操作を行って下さい.

avahi-daemon[1035]: Failed to find user 'avahi'
avahi-dnsconfd[1241]: connect(): No such file or directory

※ 「cd /var/db/ports; rm -R *」は、make config, make config-recursive の記録を消す操作.

Java 開発環境 JDK のインストール

前準備として, 「FreeBSD Foundation 版 Java を FreeBSD にインストール」の Web ページを参考にインストールを行っておく.

■ 前準備

ダウンロード http://www.freebsdfoundation.org/

■ インストール手順の詳細

../javaintro/diablojava.html

■ インストール操作を記述したスクリプト (FreeBSD 用)

cd /usr/ports/java/diablo-jdk16
make config
make clean deinstall
make -j4
make install
portsdb -u

X.Org と GNOME のインストール (ポーツ・ツリーを使用)

X.Org X Windows System と GNOME バージョン 2 のインストール

関連する外部ページhttp://www.freebsd.org/doc/ja_JP.eucJP/books/handbook/x11-wm.html

  1. ポーツ・ツリーを使用してインストール

    shutdown now
    export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
    portupgrade -Npv -B 'make rmconfig' x11/xorg
    portupgrade -Npv -B 'make rmconfig' graphics/libGL
    portupgrade -Npv -B 'make rmconfig' graphics/libGLU
    portupgrade -Npv -B 'make rmconfig' graphics/libGLw
    portupgrade -Npv -B 'make rmconfig' security/heimdal
    if [ ! -f /usr/local/lib/libk5crypto.so ]; then 
      cp /usr/local/lib/libkrb5.so /usr/local/lib/libk5crypto.so
    endif
    portupgrade -Npv -B 'make rmconfig' dns/nss_mdns
    portupgrade -Npv -B 'make rmconfig' x11/gnome2
    
    portupgrade -Npv -B 'make rmconfig' textproc/uim
    portupgrade -Npv -B 'make rmconfig' textproc/uim-gnome
    portupgrade -Npv -B 'make rmconfig' textproc/uim-gtk
    sync
    sync
    sync
    sync
    sync
    reboot
    

    security/krb5, dns/nss_mdns は x11/gnome2 が依存するソフトウェア

    ※ このインストールのときエラーメッセージが出やすい. エラーメッセージを見逃したくないので,script コマンドで,ファイルに記録を残す.

    エラー時のよくある対処法としては,各種のデータベース等の再構成(下記のコマンド)であったり,

    portsdb -uU
    pkgdb -aF
    

    環境変数 FORCE_PKG_INSTALL の設定だったり.

    export FORCE_PKG_INSTALL=true
    あるいは
    setenv FORCE_PKG_INSTALL true
    
  2. システムを再起動し gnome-session が起動することを確認

    ※ 上記の手順で,gnome-session の配下に X サーバ・ソフトウェアが起動するはずです.

    [image]

    ■ 次のように/usr/local/lib/X11/xinit/xinitrc の設定すると scim がクラッシュする場合がある、ことが分かっています.

    [image]

X.Org で「キーボードとマウスが効かない」状態から脱出(ヒント)

参考 にした Web ページ: http://homepage3.nifty.com/maikaze/xwinat1.html (現存しない)

FreeBSD で X.Org をインストールしたら,X サーバの画面は現れるのに,マウスもキーボードも効かない! という状態に陥ることがあります (何も操作が効かないので,一見して,OSが止まっているように見えます).ここでは,その解決のヒントを説明する.

経緯

X.Org バージョン 7,4 以上からは,デフォルトで hal を使うようになっています. つまり

hal が動作するように FreeBSDの設定が行われていることなどの確認

  1. (前準備)X サーバの停止

    「ALTキー」+「ファンクション F1」(同時押し)あるいは 「CTRLキー」+「ALTキー」+「ファンクション F2」(同時押し) で X サーバを抜け出すことができる場合があります.

  2. (前準備) tail -f /var/log/Xorg.0.log を実行し,エラーメッセージを確認.

    これで,問題解決のヒントが得られます.

    ※ 下の実行例の場合では,「(EE) config/hal: couldn't initialise context: unknown error (null)」というエラーが出ていることが分かります.

    [image]
  3. /etc/rc.conf の確認

    hal を使うために,dbus デーモンと hald (hal デーモン) が起動するように /etc/rc.conf に設定しておく必要がある. /etc/rc.conf が次の 2行を含むことを確認します(含んでいなければ修正する).

    dbus_enable="YES"
    hald_enable="YES"
    

    [image]

    ※ (参考)GNOME2 の gdm を使いたいときには,/etc/rc.conf には,さらに,次の 4行を含めておきます.

    gdm_enable="YES"
    gnome_enabl="YES"
    polkitd_enable="YES"
    system_tools_backends_enable="YES"
    

    [image]
  4. /usr/local/etc/rc.d/hal が存在することを確認

    ls /usr/local/etc/rc.d
    

    [image]

    ※ FreeBSD では,X.Org をインストールするときに hal もインストールするはず(ポーツ・ツリーを使って「portupgrade -Npv -B 'make rmconfig' x11/xorg; make; make install」としたときは,hal は自動でインストールされます). ファイルがないときX.Org のインストール作業をやり直すべきでしょう.

  5. lshal コマンドで,hald (hal デーモン) の動作を確認

    hald が起動しているかの確認は,「lshal コマンド」で簡単にできる.

    lshal
    

    エラーの例

    下の図のように,「Could not initialise connection to hald.」というメッセージが出たときは 「hal のインストールは済んでいるけれど,hald (hal デーモン) は起動していない」ということになる.

    [image]
  6. hald の手動での起動

    の確証を得るために hald を手動で起動してみることにします.

    /usr/local/etc/rc.d/hald restart
    /usr/local/etc/rc.d/hald restart
    

    エラーの例

    下の図のように,2回目の「/usr/local/etc/rc.d/hald restart」で, 「hald not running? (check /var/run/hald/hald.pid)」というメッセージが出たときは 「hald がうまく動かない」という強い革新が得られます.

    [image]

(オプション) hald がうまく動かないときの対処(ヒント)

ここでは,X.Org の X サーバが hal を使わないように設定します.

  1. /etc/rc.conf に mouse デーモンに関する設定を追加

    /etc/rc.conf に次の 2行を追加します

    ※ 逆に hal を使いたいときは,次の 2行を書いてはいけません.hald と moused が衝突します.

    moused_enable="YES"
    moused_nondefault_enable="YES"
    

    [image]
  2. xorg.conf.new の生成

    「Xorg -configure」により xorg.conf.new が自動生成される.

    cd
    Xorg -configure
    

    [image]
  3. xorg.conf.new での hal 関係の設定

    xorg.conf.new の ServerLayout セクション

    hal を使いたくない(hal が動かない)ときの設定

            Option "AutoAddDevices"    "False"
            Option "AutoEnableDevices" "False"
    #        Option "AllowEmptyInput"   "False"
    

    [image]

    xorg.conf.new での sysmouse 関係の設定

    hal を使いたくない(hal が動かない)ときは, 引き続き,xorg.conf.new に「Option "Device" "/dev/sysmouse"」のような行があることを確認しておく (違う場合には修正しておく)

    [image]

    hal を使いたいときの設定

            Option "AutoAddDevices"    "True"
            Option "AutoEnableDevices" "True"
    #        Option "AllowEmptyInput"   "True"
    

    [image]
  4. cp xorg.conf.new /etc/X11/xorg.conf

    詳しくは,man xorg.conf を見てください

emacs のインストール (ポーツ・ツリーを使用)

portupgrade -Npv -B 'make rmconfig' editors/emacs
portupgrade -Npv -B 'make rmconfig' editors/tamago
portupgrade -Npv -B 'make rmconfig' japanese/scim-anthy
portupgrade -Npv -B 'make rmconfig' japanese/uim-anthy
portupgrade -Npv -B 'make rmconfig' japanese/anthy
portupgrade -Npv -B 'make rmconfig' print/yatex

種々のソフトウェアのインストール (ポーツ・ツリーを使用)

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

#
portupgrade -Npv -B 'make rmconfig' devel/gmake
portupgrade -Npv -B 'make rmconfig' devel/patch

portupgrade -Npv -B 'make rmconfig' devel/autoconf262
portupgrade -Npv -B 'make rmconfig' devel/automake110
portupgrade -Npv -B 'make rmconfig' devel/autogen
portupgrade -Npv -B 'make rmconfig' devel/bison 
portupgrade -Npv -B 'make rmconfig' lang/gawk
portupgrade -Npv -B 'make rmconfig' devel/libtool22
portupgrade -Npv -B 'make rmconfig' devel/ccache
portupgrade -Npv -B 'make rmconfig' devel/binutils

portupgrade -Npv -B 'make rmconfig' devel/readline
portupgrade -Npv -B 'make rmconfig' security/openssl
portupgrade -Npv -B 'make rmconfig' math/gmp
portupgrade -Npv -B 'make rmconfig' math/mpfr
portupgrade -Npv -B 'make rmconfig' devel/ppl
portupgrade -Npv -B 'make rmconfig' math/mpc

portupgrade -Npv -B 'make rmconfig' math/metis
portupgrade -Npv -B 'make rmconfig' math/suitesparse
portupgrade -Npv -B 'make rmconfig' math/glpk
portupgrade -Npv -B 'make rmconfig' math/gsl
portupgrade -Npv -B 'make rmconfig' x11-toolkits/gsl

portupgrade -Npv -B 'make rmconfig' lang/gcc42
portupgrade -Npv -B 'make rmconfig' lang/gcc44
portupgrade -Npv -B 'make rmconfig' lang/gcc46
portupgrade -Npv -B 'make rmconfig' lang/gcc45

portupgrade -Npv -B 'make rmconfig' lang/libstdc++_stldoc_4.2.2

# 
portupgrade -Npv -B 'make rmconfig' math/lapack

# 表示,変換など
portupgrade -Npv -B 'make rmconfig' print/freetype2
portupgrade -Npv -B 'make rmconfig' japanese/xpdf
portupgrade -Npv -B 'make rmconfig' japanese/nkf
portupgrade -Npv -B 'make rmconfig' misc/lv
portupgrade -Npv -B 'make rmconfig' textproc/xlhtml
portupgrade -Npv -B 'make rmconfig' devel/libgsf
portupgrade -Npv -B 'make rmconfig' textproc/wv2

# Japanse Morphological Analyis
portupgrade -Npv -B 'make rmconfig' japanese/chasen
portupgrade -Npv -B 'make rmconfig' japanese/chasen-base
portupgrade -Npv -B 'make rmconfig' japanese/p5-Text-ChaSen
portupgrade -Npv -B 'make rmconfig' japanese/ruby-chasen
portupgrade -Npv -B 'make rmconfig' japanese/ruby-gyokuro
portupgrade -Npv -B 'make rmconfig' japanese/ipadic
portupgrade -Npv -B 'make rmconfig' japanese/mecab
portupgrade -Npv -B 'make rmconfig' japanese/mecab-ipadic
portupgrade -Npv -B 'make rmconfig' japanese/ruby-mecab

# full text search
portupgrade -Npv -B 'make rmconfig' japanese/namazu2
portupgrade -Npv -B 'make rmconfig' databases/ruby-search-namazu
portupgrade -Npv -B 'make rmconfig' japanese/rbnamazu


# データベースクライアントライブラリ
portupgrade -Npv -B 'make rmconfig' databases/mysql55-client

# SDL
portupgrade -Npv -B 'make rmconfig' devel/sdl12

# graphics
portupgrade -Npv -B 'make rmconfig' graphics/ImageMagick
portupgrade -Npv -B 'make rmconfig' graphics/GraphicsMagick
portupgrade -Npv -B 'make rmconfig' graphics/jpeg
portupgrade -Npv -B 'make rmconfig' graphics/png
portupgrade -Npv -B 'make rmconfig' graphics/tiff

# panoramic image
portupgrade -Npv -B 'make rmconfig' graphics/autopano-sift
portupgrade -Npv -B 'make rmconfig' graphics/hugin
portupgrade -Npv -B 'make rmconfig' multimedia/panoglview

# ffmpeg
portupgrade -Npv -B 'make rmconfig' multimedia/ffmpeg
portupgrade -Npv -B 'make rmconfig' multimedia/avbin
# vtk
portupgrade -Npv -B 'make rmconfig' devel/cmake
portupgrade -Npv -B 'make rmconfig' math/vtk
portupgrade -Npv -B 'make rmconfig' math/vtk-data
portupgrade -Npv -B 'make rmconfig' math/vtk-examples
portupgrade -Npv -B 'make rmconfig' math/vtk-headers
portupgrade -Npv -B 'make rmconfig' math/vtk-java

# OpenCV
portupgrade -Npv -B 'make rmconfig' graphics/opencv

# irrlicht (3D ゲームエンジン)
portupgrade -Npv -B 'make rmconfig' x11-toolkits/irrlicht

# wxWidgets
portupgrade -Npv -B 'make rmconfig' x11-toolkits/wxgtk28
portupgrade -Npv -B 'make rmconfig' x11-toolkits/wxgtk28-contrib

# tcl/tk 処理系
portupgrade -Npv -B 'make rmconfig' lang/tcl85
portupgrade -Npv -B 'make rmconfig' lang/tclX
portupgrade -Npv -B 'make rmconfig' x11-toolkits/tk85

# blender
portupgrade -Npv -B 'make rmconfig' graphics/blender
portupgrade -Npv -B 'make rmconfig' graphics/blender-doc

# Ogre3d, ember
portupgrade -Npv -B 'make rmconfig' graphics/ogred3
portupgrade -Npv -B 'make rmconfig' graphics/ember

# octave 処理系
portupgrade -Npv -B 'make rmconfig' math/octave

# R 処理系
portupgrade -Npv -B 'make rmconfig' math/R

# OpenOffice.org
portupgrade -Npv -B 'make rmconfig' editors/openoffice.org-3

# Eclipse
#   eclipse (skip on FreeBSD) 手動で入れるので
#   eclipse-jdt (skip on FreeBSD) 手動で入れるので
#   pleiades (skip on FreeBSD) 手動で入れるので

# git (Distributed source code management system)
portupgrade -Npv -B 'make rmconfig' devel/git
portupgrade -Npv -B 'make rmconfig' devel/giggle
portupgrade -Npv -B 'make rmconfig' devel/gitg

# virutal machine tools (仮想マシンツール)
#    ubuntu-vm-builder (skip on FreeBSD)
#    virt-manager (skip on FreeBSD)
#    virt-viewer (skip on FreeBSD)
portupgrade -Npv -B 'make rmconfig' security/openssh-askpass
portupgrade -Npv -B 'make rmconfig' emulators/qemu
portupgrade -Npv -B 'make rmconfig' emulators/qemu-launcher

# wine エミュレータ
portupgrade -Npv -B 'make rmconfig' emulators/wine
portupgrade -Npv -B 'make rmconfig' emulators/wine-doors

# Network security 
portupgrade -Npv -B 'make rmconfig' security/nmap
portupgrade -Npv -B 'make rmconfig' ecutiry/umit
portupgrade -Npv -B 'make rmconfig' security/knmap
portupgrade -Npv -B 'make rmconfig' security/klamav

# password security (パスワードセキュリティ)
portupgrade -Npv -B 'make rmconfig' security/medusa
portupgrade -Npv -B 'make rmconfig' net-mgmt/aricrack-ng

# system information and device management (システムに関する情報の取得)
portupgrade -Npv -B 'make rmconfig' sysutils/sysinfo
portupgrade -Npv -B 'make rmconfig' net/xprobe
portupgrade -Npv -B 'make rmconfig' net-mgmt/p0f
portupgrade -Npv -B 'make rmconfig' net-mgmt/satellite

# remote connection and file transfer, (リモート接続とファイル転送) VNC, vino, rdesktop, tsclient, filezilla
portupgrade -Npv -B 'make rmconfig' ftp/filezilla
portupgrade -Npv -B 'make rmconfig' net/x11vnc
portupgrade -Npv -B 'make rmconfig' net/vino
portupgrade -Npv -B 'make rmconfig' net/rdesktop
portupgrade -Npv -B 'make rmconfig' net/tsclient

# file tools, launcher (ファイル操作ツール, ランチャー)
portupgrade -Npv -B 'make rmconfig' x11-fm/gnome-commander2

# i386 用のデコーダ (decoders for i386) (only FreeBSD)
portupgrade -Npv -B 'make rmconfig' multimedia/win32-codecs

# バイナリエディタ, スクリーンショット,ペイント, 図,グラフ,スペルチェック,改行,ポストスクリプト,TeX 支援,scror, gwenview,動画像
portupgrade -Npv -B 'make rmconfig' editors/beav
portupgrade -Npv -B 'make rmconfig' graphics/scrot
portupgrade -Npv -B 'make rmconfig' graphics/gwenview
portupgrade -Npv -B 'make rmconfig' multimedia/mplayer
portupgrade -Npv -B 'make rmconfig' multimedia/smplayer
portupgrade -Npv -B 'make rmconfig' multimedia/avidemux2
portupgrade -Npv -B 'make rmconfig' graphics/dia
portupgrade -Npv -B 'make rmconfig' japanese/tgif
portupgrade -Npv -B 'make rmconfig' math/qgfe
portupgrade -Npv -B 'make rmconfig' textproc/ispell
portupgrade -Npv -B 'make rmconfig' converters/unix2dos
portupgrade -Npv -B 'make rmconfig' japanese/a2ps
portupgrade -Npv -B 'make rmconfig' print/pstotext

※ エラーメッセージが出る場合の対処。

エラーメッセージを読んで個別に対応する。これで間違いなく大丈夫.

※ よくあるエラーとして「FORCE_PKG_REGISTER システムをセットしてから make reinstall してくれ」というエラーが出る場合は,

Ruby 処理系と SQLite 3 関係のインストール (ポーツ・ツリーを使用)

# Sqlite3, sqliteman, Apache mod_ruby
portupgrade -Npv -B 'make rmconfig' databases/sqlite3
portupgrade -Npv -B 'make rmconfig' databases/spatialite
portupgrade -Npv -B 'make rmconfig' databases/sqlite-ext-inet
portupgrade -Npv -B 'make rmconfig' databases/sqlite-ext-miscfuncs
portupgrade -Npv -B 'make rmconfig' databases/sqlite-ext-mobigroup
portupgrade -Npv -B 'make rmconfig' databases/sqliteman

# Ruby
portupgrade -Npv -B 'make rmconfig' lang/ruby-pdflib
portupgrade -Npv -B 'make rmconfig' lang/ruby18
portupgrade -Npv -B 'make rmconfig' lang/ruby-extensions
portupgrade -Npv -B 'make rmconfig' devel/ruby-gems
portupgrade -Npv -B 'make rmconfig' www/rubygem-erubis
portupgrade -Npv -B 'make rmconfig' textproc/eruby
portupgrade -Npv -B 'make rmconfig' java/netbeans
portupgrade -Npv -B 'make rmconfig' databases/mod_ruby

gem update --system
portupgrade -Npv -B 'make rmconfig' www/rubygem-rails
portupgrade -Npv -B 'make rmconfig' www/rubygem-rails-app-installer
portupgrade -Npv -B 'make rmconfig' textproc/gnome-doc-utils
portupgrade -Npv -B 'make rmconfig' x11-toolkits/ruby-panelapplet
portupgrade -Npv -B 'make rmconfig' x11/ruby-gnome2
portupgrade -Npv -B 'make rmconfig' devel/rubygem-facets
portupgrade -Npv -B 'make rmconfig' graphics/ruby-rmagick
portupgrade -Npv -B 'make rmconfig' databases/ruby-mysql
portupgrade -Npv -B 'make rmconfig' databases/rubygem-sqlite3

portupgrade -Npv -B 'make rmconfig' devel/ruby-wirble
portupgrade -Npv -B 'make rmconfig' graphics/rubygem-gruff

cd /usr/lib/ruby/gems/1.8/gems/octave-ruby-1.0.9 ・・・ この部分は書きかけ(うまくいかない)
ruby setup.rb ・・・ この部分は書きかけ(うまくいかない) 

再び前準備

【注意】下記に挙げるソフトウェアの多くはフリーソフトウェアではない(ある限られた条件下でのみ,無償で使うことが許されているだけ)

ライセンス条項は各自で確認すること再配布は不可 などの決まりがそれぞれあるので、ライセンス条項をよく確認もせずにソースコードを再配布したり、知り合いのパソコンに代理でインストールしたり、などを避けておく(よくライセンス条項を確認)。

それぞれのインストールの前準備として, ソースコードを入手しておく。 入手先は、それぞれ、下記に記述している。

GotoBLAS2 バージョン 1.13 のインストール (ソースコードからビルド)

■ 前準備

ダウンロード GotoBLAS2-1.13.tar.gz http://www.tacc.utexas.edu/resources/software/

■ インストール手順の詳細

https://www.kkaneko.jp/tools/ubuntu/cblaslinux.html

■ インストール操作を記述したスクリプト

【特記事項】 FreeBSD では「quickbuild.64bit」を実行するとエラーが出るので,替わりに「gmake BINARY=64 CC="gcc44 -DDTB_ENTRIES=64"

【特記事項の2】gcc44, gfortran44 を使う

cd /tmp
rm -rf /tmp/GotoBLAS2
tar -xvzof GotoBLAS2-1.13.tar.gz
cd GotoBLAS2
echo ■ Makefile.rule の設定
echo =================================================================
rm -f /tmp/pp
echo '*** Makefile.rule.DIST    2010-07-03 11:40:43.657754091 -0400' > /tmp/pp
echo '--- Makefile.rule    2010-07-03 11:43:38.741566987 -0400' >> /tmp/pp
echo '***************' >> /tmp/pp
echo '*** 14,23 ****' >> /tmp/pp
echo '  ' >> /tmp/pp
echo '  # C compiler including binary type(32bit / 64bit). Default is gcc.' >> /tmp/pp
echo "  # Don't use Intel Compiler or PGI, it won't generate right codes as I expect." >> /tmp/pp
echo '! # CC = gcc' >> /tmp/pp
echo '  ' >> /tmp/pp
echo '  # Fortran compiler. Default is g77.' >> /tmp/pp
echo '! # FC = gfortran' >> /tmp/pp
echo '  ' >> /tmp/pp
echo '  # Even you can specify cross compiler' >> /tmp/pp
echo '  # CC = x86_64-w64-mingw32-gcc' >> /tmp/pp
echo '--- 14,23 ----' >> /tmp/pp
echo '  ' >> /tmp/pp
echo '  # C compiler including binary type(32bit / 64bit). Default is gcc.' >> /tmp/pp
echo "  # Don't use Intel Compiler or PGI, it won't generate right codes as I expect." >> /tmp/pp
echo '! CC = gcc44' >> /tmp/pp
echo '  ' >> /tmp/pp
echo '  # Fortran compiler. Default is g77.' >> /tmp/pp
echo '! FC = gfortran44' >> /tmp/pp
echo '  ' >> /tmp/pp
echo '  # Even you can specify cross compiler' >> /tmp/pp
echo '  # CC = x86_64-w64-mingw32-gcc' >> /tmp/pp
echo '***************' >> /tmp/pp
echo '*** 30,39 ****' >> /tmp/pp
echo '  # specify it.' >> /tmp/pp
echo '  # For force setting for single threaded, specify USE_THREAD = 0' >> /tmp/pp
echo '  # For force setting for multi  threaded, specify USE_THREAD = 1' >> /tmp/pp
echo '! # USE_THREAD = 0' >> /tmp/pp
echo '  ' >> /tmp/pp
echo "  # If you're going to use this library with OpenMP, please comment it in." >> /tmp/pp
echo '! # USE_OPENMP = 1' >> /tmp/pp
echo '  ' >> /tmp/pp
echo '  # You can define maximum number of threads. Basically it should be' >> /tmp/pp
echo "  # less than actual number of cores. If you don't specify one, it's" >> /tmp/pp
echo '--- 30,39 ----' >> /tmp/pp
echo '  # specify it.' >> /tmp/pp
echo '  # For force setting for single threaded, specify USE_THREAD = 0' >> /tmp/pp
echo '  # For force setting for multi  threaded, specify USE_THREAD = 1' >> /tmp/pp
echo '! USE_THREAD = 1' >> /tmp/pp
echo '  ' >> /tmp/pp
echo "  # If you're going to use this library with OpenMP, please comment it in." >> /tmp/pp
echo '! USE_OPENMP = 1' >> /tmp/pp
echo '  ' >> /tmp/pp
echo '  # You can define maximum number of threads. Basically it should be' >> /tmp/pp
echo "  # less than actual number of cores. If you don't specify one, it's" >> /tmp/pp
patch < /tmp/pp
echo =================================================================

gmake BINARY=64 CC="gcc44 -DDTB_ENTRIES=64"
cp *.a /usr/lib

CBLAS のインストール (ソースコードからビルド)

■ 前準備

CBLAS のソースコードのダウンロード, http://www.netlib.org/blas/blast-forum/

■ インストール手順の詳細

https://www.kkaneko.jp/tools/ubuntu/cblaslinux.html

■ インストール操作を記述したスクリプト

【特記事項】 FreeBSD では「gfortran」の替わりに「gfortran44gcc44 を使う

cd /tmp
rm -rf /tmp/CBLAS
tar -xvzf cblas.tgz
cd /tmp/CBLAS
ln -s Makefile.LINUX Makefile.in
echo ■ /tmp/CBLAS/Makefile.in の編集
echo =================================================================
rm -f /tmp/pp
echo '*** Makefile.in.DIST    2010-07-03 12:43:34.162601551 -0400' > /tmp/pp
echo '--- Makefile.in    2010-07-03 12:43:42.415691945 -0400' >> /tmp/pp
echo '***************' >> /tmp/pp
echo '*** 22,29 ****' >> /tmp/pp
echo '  # Libraries and includs' >> /tmp/pp
echo '  #-----------------------------------------------------------------------------' >> /tmp/pp
echo '   ' >> /tmp/pp
echo '! BLLIB = libblas.a' >> /tmp/pp
echo '! CBDIR = $(HOME)/CBLAS' >> /tmp/pp
echo '  CBLIBDIR = $(CBDIR)/lib/$(PLAT)' >> /tmp/pp
echo '  CBLIB = $(CBLIBDIR)/cblas_$(PLAT).a' >> /tmp/pp
echo '  ' >> /tmp/pp
echo '--- 22,29 ----' >> /tmp/pp
echo '  # Libraries and includs' >> /tmp/pp
echo '  #-----------------------------------------------------------------------------' >> /tmp/pp
echo '   ' >> /tmp/pp
echo '! BLLIB = /usr/lib/libgoto2.a -lpthread -lgomp' >> /tmp/pp
echo '! CBDIR = /tmp/CBLAS' >> /tmp/pp
echo '  CBLIBDIR = $(CBDIR)/lib/$(PLAT)' >> /tmp/pp
echo '  CBLIB = $(CBLIBDIR)/cblas_$(PLAT).a' >> /tmp/pp
echo '  ' >> /tmp/pp
echo '***************' >> /tmp/pp
echo '*** 32,46 ****' >> /tmp/pp
echo '  #-----------------------------------------------------------------------------' >> /tmp/pp
echo '  ' >> /tmp/pp
echo '! CC = gcc' >> /tmp/pp
echo '! FC = g77' >> /tmp/pp
echo '  LOADER = $(FC)' >> /tmp/pp
echo '  ' >> /tmp/pp
echo '  #-----------------------------------------------------------------------------' >> /tmp/pp
echo '  # Flags for Compilers' >> /tmp/pp
echo '  #-----------------------------------------------------------------------------' >> /tmp/pp
echo '  ' >> /tmp/pp
echo '! CFLAGS = -O3 -DADD_' >> /tmp/pp
echo '! FFLAGS = -O3  ' >> /tmp/pp
echo '  ' >> /tmp/pp
echo '  #-----------------------------------------------------------------------------' >> /tmp/pp
echo '  # Archive programs and flags' >> /tmp/pp
echo '--- 32,46 ----' >> /tmp/pp
echo '  #-----------------------------------------------------------------------------' >> /tmp/pp
echo '  ' >> /tmp/pp
echo '! CC = gcc44' >> /tmp/pp
echo '! FC = gfortran44' >> /tmp/pp
echo '  LOADER = $(FC)' >> /tmp/pp
echo '  ' >> /tmp/pp
echo '  #-----------------------------------------------------------------------------' >> /tmp/pp
echo '  # Flags for Compilers' >> /tmp/pp
echo '  #-----------------------------------------------------------------------------' >> /tmp/pp
echo '  ' >> /tmp/pp
echo '! CFLAGS = -m64 -O3 -DADD_' >> /tmp/pp
echo '! FFLAGS = -m64 -O3  ' >> /tmp/pp
echo '  ' >> /tmp/pp
echo '  #-----------------------------------------------------------------------------' >> /tmp/pp
echo '  # Archive programs and flags' >> /tmp/pp
patch < /tmp/pp
echo =================================================================

make all
cd /tmp/CBLAS/lib/LINUX
cp cblas_LINUX.a /usr/lib/libcblas.a
cp /tmp/CBLAS/src/cblas.h /usr/include/cblas.h

ATLAS 3.29.25 のインストール (ソースコードからビルド)

■ 前準備

◇ ATLAS のソースコードのダウンロード, http://math-atlas.sourceforge.net/

◇ LAPACK のソースコードのダウンロード, https://netlib.org/lapack/index.html

■ インストール手順の詳細

https://www.kkaneko.jp/tools/linuxtoolchain/atlaslinux.html

■ インストール操作を記述したスクリプト

【特記事項】 FreeBSD では「gfortran」の替わりに「gfortran44」,FreeBSD では「make」の替わりに「gmake」を使う場合がある(全てではない)

※ マルチスレッド版ライブラリがうまくビルドできない場合があります(2010/10)

cd /tmp
rm -rf /tmp/ATLAS3.9.25
tar -xvjof atlas3.9.25.tar.bz2
mv ATLAS ATLAS3.9.25
cd ATLAS3.9.25

../configure --prefix=/usr/atlas -Si nof77 1 -C if gfortran44 -C ac gcc44 -Fa alg -fopenmp -Fa alg -fPIC -omp 2 -Si latune 1
make
make check
make ptcheck
make time
make install
cd lib
make ptshared cptshared
rm -f /usr/atlas/lib/*.so
cp *.so /usr/atlas/lib
rm -f /usr/atlas/lib/liblapack.a
rm -f /usr/atlas/lib/liblapack.so