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

FreeBSD でデスクトップ環境とプログラミング環境を整える(主にパッケージを活用)

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

◇ パッケージを活用してインストールするもの

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

※ FreeBSD のポーツ・ツリーを使ってのインストール手順については別ページで説明

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

※ 参考ファイル: hoge5.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

.xinitrc, .emacs の設定

avahi の設定

GNOME2 が avahi-gtk を含んでいるみたいなので, /etc/passwd と /etc/group に avahi ユーザと avahi グループが入っているか確認しておく

※ 無い場合には,下記の操作で avahi ユーザと avahi グループを作る.

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

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
    pkg_add -r  xorg
    pkg_add -r  libGL
    pkg_add -r  libGLU
    pkg_add -r  libGLw
    pkg_add -r  heimdal
    if [ ! -f /usr/local/lib/libk5crypto.so ]; then 
      cp /usr/local/lib/libkrb5.so /usr/local/lib/libk5crypto.so
    fi
    pkg_add -r  nss_mdns
    pkg_add -r  gnome2
    
    pkg_add -r  uim
    pkg_add -r  uim-gnome
    pkg_add -r  uim-gtk
    sync
    sync
    sync
    sync
    sync
    reboot
    

    [補足説明] security/krb5, dns/nss_mdns は x11/gnome2 が依存するソフトウェア

    Can't open data connection」というエラーメッセージが出ることがあります.

    このときは「setenv FTP_PASSIVE_MODE yes」または「export FTP_PASSIVE_MODE=yes}と操作することで解決する場合があります.詳しくは man pkg_add

  2. システムを再起動し gnome-session が起動することを確認

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

emacs のインストール (パッケージを使用)

pkg_add -r  emacs
pkg_add -r  tamago-emacs23
pkg_add -r  ja-scim-anthy
pkg_add -r  ja-uim-anthy
pkg_add -r  ja-anthy
pkg_add -r  yatex

種々のソフトウェアのインストール (パッケージを使用)

pkg_add -r  gmake
pkg_add -r  patch

pkg_add -r  autoconf262
pkg_add -r  automake110
pkg_add -r  autogen
pkg_add -r  bison
pkg_add -r  gawk
pkg_add -r  libtool
pkg_add -r  ccache
pkg_add -r  binutils

pkg_add -r  readline
pkg_add -r  openssl
pkg_add -r  gmp
pkg_add -r  mpfr
pkg_add -r  ppl
pkg_add -r  mpc

pkg_add -r  metis
pkg_add -r  suitesparse
pkg_add -r  glpk
pkg_add -r  gsl
pkg_add -r  fltk

# GNU コンパイラコレクション・バージョン 4.4 / 4.5 / 4.6 のインストール
pkg_add -r  gcc42
pkg_add -r  gcc44
pkg_add -r  gcc46
pkg_add -r  gcc45

pkg_add -r  libstdc++_stldoc_4.2.2

#
pkg_add -r  lapack

# 表示,変換など
pkg_add -r  freetype2
pkg_add -r  xpdf
pkg_add -r  ja-nkf
pkg_add -r  lv
pkg_add -r  xlhtml
pkg_add -r  libgsf
pkg_add -r  wv2

# Japanse Morphological Analyis
pkg_add -r  ja-chasen
pkg_add -r  ja-chasen-base
pkg_add -r  ja-p5-Text-ChaSen
pkg_add -r  ja-ruby18-chasen
pkg_add -r  ruby18-gyokuro
pkg_add -r  ja-ipadic
pkg_add -r  ja-mecab
pkg_add -r  ja-mecab-ipadic
pkg_add -r  ruby-mecab

# full text search
pkg_add -r  ja-namazu2
pkg_add -r  ruby18-search-namazu
pkg_add -r  ja-rbnamazu

# データベースクライアントライブラリ
pkg_add -r  mysql55-client

# SDL
pkg_add -r  sdl

# graphics
pkg_add -r  ImageMagick
pkg_add -r  GraphicsMagick
pkg_add -r  jpeg
pkg_add -r  png
pkg_add -r  tiff

# panoramic image
pkg_add -r  autopano-sift
pkg_add -r  hugin
pkg_add -r  panoglview

# ffmpeg
pkg_add -r  ffmpeg
pkg_add -r  avbin

# vtk
pkg_add -r  cmake
pkg_add -r  vtk
pkg_add -r  vtk-data
pkg_add -r  vtk-examples
pkg_add -r  vtk-headers
pkg_add -r  vtk-java

# OpenCV
pkg_add -r  opencv

# irrlicht (3D ゲームエンジン)
pkg_add -r  irrlicht

# wxWidgets
pkg_add -r  wxgtk28
pkg_add -r  wxgtk28-contrib

# tcl/tk 処理系
pkg_add -r  tcl85
pkg_add -r  tclX
pkg_add -r  tk85

# blender
pkg_add -r  blender
pkg_add -r  blender-doc

# Ogre3d, ember
pkg_add -r  ogre3d
pkg_add -r  ember

# octave 処理系
pkg_add -r  octave

# R 処理系
pkg_add -r  R

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

# git (Distributed source code management system)
pkg_add -r git
pkg_add -r giggle
pkg_add -r gitg

# virutal machine tools (仮想マシンツール)
#    ubuntu-vm-builder (skip on FreeBSD)
#    virt-manager (skip on FreeBSD)
#    virt-viewer (skip on FreeBSD)
pkg_add -r openssh-askpass
pkg_add -r qemu
pkg_add -r qemu-launcher

# wine エミュレータ
pkg_add -r wine
pkg_add -r wine-doors

# Network security 
pkg_add -r nmap
pkg_add -r umit
pkg_add -r knmap
pkg_add -r klamav

# password security (パスワードセキュリティ)
pkg_add -r medusa
pkg_add -r aricrack-ng

# system information and device management (システムに関する情報の取得)
#   gnome-device-manager (skip on FreeBSD)
pkg_add -r sysinfo
pkg_add -r xprobe
pkg_add -r p0f
pkg_add -r satellite

# remote connection and file transfer, (リモート接続とファイル転送) VNC, vino, rdesktop, tsclient, filezilla
pkg_add -r filezilla
pkg_add -r x11vnc
pkg_add -r vino
pkg_add -r rdesktop
pkg_add -r tsclient

# file tools, launcher (ファイル操作ツール, ランチャー)
pkg_add -r gnome-commander2

# i386 用のデコーダ (decoders for i386) (only FreeBSD)
pkg_add -r win32-codecs

# バイナリエディタ, スクリーンショット,ペイント, 図,グラフ,スペルチェック,改行,ポストスクリプト,TeX 支援,scror, gwenview,動画像
pkg_add -r beav
pkg_add -r scrot
pkg_add -r gwenview
pkg_add -r mplayer
pkg_add -r smplayer
pkg_add -r avidemux2
pkg_add -r dia
pkg_add -r tgif
pkg_add -r qgfe
pkg_add -r ispell
pkg_add -r unix2dos
pkg_add -r a2ps
pkg_add -r pstotext

Ruby 処理系と SQLite 3 関係のインストール (パッケージを使用)

# Sqlite3, sqliteman, Apache mod_ruby
pkg_add -r  sqlite3
pkg_add -r  spatialite
pkg_add -r  sqlite-ext-inet
pkg_add -r  sqlite-ext-miscfuncs
pkg_add -r  sqlite-ext-mobigroup
pkg_add -r  sqliteman
pkg_add -r  mod_ruby

# Ruby
pkg_add -r  ruby18-pdflib
pkg_add -r  ruby
#
pkg_add -r  ruby18-extensions
pkg_add -r  ruby18-gems
pkg_add -r  eruby
pkg_add -r  rubygem-erubis
#
pkg_add -r  netbeans

gem update --system
pkg_add -r  rubygem-rails
pkg_add -r  rubygem-rails-app-installer
pkg_add -r  gnome-doc-utils
pkg_add -r  ruby18-panelapplet
pkg_add -r  ruby18-gnome2
pkg_add -r  rubygem-facets
pkg_add -r  ruby18-rmagick
pkg_add -r  ruby18-mysql
pkg_add -r  rubygem-sqlite3

pkg_add -r  ruby18-wirble
pkg_add -r  rubygem-gruff

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

pkg_add -r  beav

# VNC, rdesktop, vncviewer
pkg_add -r  vnc
pkg_add -r  vino
pkg_add -r  rdesktop
pkg_add -r  tsclient

再び前準備

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

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

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

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/

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

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 -Ss flapack /tmp/lapack-3.2.2/SRC -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