FreeBSD に種々のソフトウェアのインストールするための手順を記述しました(2010/8 に作成).
◇ ポーツ・ツリーを活用してインストールするもの
◇ ソースコードからビルドするもの
* FreeBSD のパッケージを使ってのインストール手順については 別ページで説明
* Ubuntu については別ページで説明
* 参考ファイル: hoge2.sh
* この Web ページでインストール手順を説明していない主要なソフトウェア
「FreeBSD 基本設定」の Web ページなどを参考に行う.
以下のようにコマンドを実行して,FreeBSD の全てのソースコードを更新します. このとき,同時に,ポーツ・ツリー (Ports Tree) の展開/更新も行われます(そのはずです)
cd /usr/src make update
下記の portupgrade に進む前に,FreeBSD のシステム更新を先に行っておく(決して必須ではありませんが,その方が作業が楽だと思います).
cd /usr/ports/ports-mgmt/portupgrade make clean deinstall rmconfig make -j4 make install
portsdb -uU pkgdb -aF
shutdown now portupgrade -aRv sync sync sync sync sync reboot
portupgrade -Npv -B 'make rmconfig' ports-mgmt/psearch
* pkg_add を使いたいときは, 環境変数 PACKAGEROOT, PACKAGESITE, FTP_PASSIVE_MODE を設定しておく. デフォルトのままでは海外からダウンロードしてしまうので,ネットワークの無駄遣いです.
* FTP_PASSIVE_MODE はファイヤウオールを超えてダウンロードするときのトラブルを減らすための設定
【設定例】
◆ .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 を使いたいときの設定.
かな漢字変換に関する次の設定を書き加える.
export XMODIFIERS='@im=SCIM' export LANG=ja_JP.UTF-8 export LC_ALL=ja_JP.UTF-8 export GTK_IM_MODULE=scim scim -d
* /usr/local/share/emacs/site-lisp のファイルを書き換えることにしてもよいでしょう.
(set-language-environment "Japanese") (push "/usr/local/share/emacs/site-lisp/anthy" load-path) (load-library "anthy") (setq default-input-method "japanese-anthy") (set-input-method 'japanese-egg-anthy)
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 の記録を消す操作.
前準備として, 「FreeBSD Foundation 版 Java を FreeBSD にインストール」の Web ページを参考にインストールを行っておく.
* 前準備
ダウンロード http://www.freebsdfoundation.org/
* インストール手順の詳細
* インストール操作を記述したスクリプト (FreeBSD 用)
cd /usr/ports/java/diablo-jdk16 make config make clean deinstall make -j4 make install portsdb -u
X.Org X Windows System と GNOME バージョン 2 のインストール
【関連する外部ページ】 http://www.freebsd.org/doc/ja_JP.eucJP/books/handbook/x11-wm.html
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
* 上記の手順で,gnome-session の配下に X サーバ・ソフトウェアが起動するはずです.
* 次のように/usr/local/lib/X11/xinit/xinitrc の設定すると scim がクラッシュする場合がある、ことが分かっています.
参考 にした Web ページ: http://homepage3.nifty.com/maikaze/xwinat1.html (現存しない)
FreeBSD で X.Org をインストールしたら,X サーバの画面は現れるのに,マウスもキーボードも効かない! という状態に陥ることがあります (何も操作が効かないので,一見して,OSが止まっているように見えます).ここでは,その解決のヒントを説明する.
X.Org バージョン 7,4 以上からは,デフォルトで hal を使うようになっています. つまり
* 「ALTキー」+「ファンクション F1」(同時押し)あるいは 「CTRLキー」+「ALTキー」+「ファンクション F2」(同時押し) で X サーバを抜け出すことができる場合があります.
これで,問題解決のヒントが得られます.
* 下の実行例の場合では,「(EE) config/hal: couldn't initialise context: unknown error (null)」というエラーが出ていることが分かります.
hal を使うために,dbus デーモンと hald (hal デーモン) が起動するように /etc/rc.conf に設定しておく必要がある. /etc/rc.conf が次の 2行を含むことを確認します(含んでいなければ修正する).
dbus_enable="YES" hald_enable="YES"
* (参考)GNOME2 の gdm を使いたいときには,/etc/rc.conf には,さらに,次の 4行を含めておきます.
gdm_enable="YES" gnome_enabl="YES" polkitd_enable="YES" system_tools_backends_enable="YES"
ls /usr/local/etc/rc.d
* FreeBSD では,X.Org をインストールするときに hal もインストールするはず(ポーツ・ツリーを使って「portupgrade -Npv -B 'make rmconfig' x11/xorg; make; make install」としたときは,hal は自動でインストールされます). ファイルがないとき は X.Org のインストール作業をやり直すべきでしょう.
hald が起動しているかの確認は,「lshal コマンド」で簡単にできる.
lshal
◇ エラーの例
下の図のように,「Could not initialise connection to hald.」というメッセージが出たときは 「hal のインストールは済んでいるけれど,hald (hal デーモン) は起動していない」ということになる.
の確証を得るために 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 がうまく動かない」という強い革新が得られます.
ここでは,X.Org の X サーバが hal を使わないように設定します.
/etc/rc.conf に次の 2行を追加します
* 逆に hal を使いたいときは,次の 2行を書いてはいけません.hald と moused が衝突します.
moused_enable="YES" moused_nondefault_enable="YES"
「Xorg -configure」により xorg.conf.new が自動生成される.
cd Xorg -configure
xorg.conf.new の ServerLayout セクション
* hal を使いたくない(hal が動かない)ときの設定
Option "AutoAddDevices" "False" Option "AutoEnableDevices" "False" # Option "AllowEmptyInput" "False"
xorg.conf.new での sysmouse 関係の設定
hal を使いたくない(hal が動かない)ときは, 引き続き,xorg.conf.new に「Option "Device" "/dev/sysmouse"」のような行があることを確認しておく (違う場合には修正しておく)
* hal を使いたいときの設定
Option "AutoAddDevices" "True" Option "AutoEnableDevices" "True" # Option "AllowEmptyInput" "True"
詳しくは,man xorg.conf を見てください
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 してくれ」というエラーが出る場合は,
# 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.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 のソースコードのダウンロード, http://www.netlib.org/blas/blast-forum/
* インストール手順の詳細
https://www.kkaneko.jp/tools/ubuntu/cblaslinux.html
* インストール操作を記述したスクリプト
【特記事項】 FreeBSD では「gfortran」の替わりに「gfortran44」 gcc44 を使う
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 のソースコードのダウンロード, 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