FreeBSD でプログラミング環境を整える(ポーツ・コレクションを使用)

FreeBSD に,エディタ,ブラウザ,画像処理,プログラミング言語処理系,数値計算ライブラリ,データベース管理システムなどをインストールする手順をまとめている. インストールには ポーツ・コレクション (ports collection)(ソースコードからビルド)と pkg(ビルド済みバイナリパッケージ)の 2 つの方法があり,本ページでは両方を扱う.

目次


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

* GPU 関連: NVIDIA の CUDA, cuDNN は FreeBSD 向けには提供されていない.GPU を用いた機械学習の環境が必要な場合は,Linux を使用する.

 

前準備

システムの更新

「FreeBSD システムの更新,ポーツコレクションの維持更新」 のページを参考に,次のことを行っておく.

ポーツ・コレクションの取得と更新

ポーツ・コレクションの配布は git で行われる(旧来の portsnap は FreeBSD 14.0 以降では提供されていない). 端末を開き,管理者権限で次のコマンドを実行する.

pkg install -y git
git clone --depth 1 https://git.FreeBSD.org/ports.git /usr/ports

すでに取得済みのポーツ・コレクションを最新の状態にするときは,端末を開き,管理者権限で次のコマンドを実行する.

git -C /usr/ports pull

ポーツからのビルドとインストールの手順

ポーツからインストールするときは,make config-recursive(オプション設定を依存ポーツも含めて先に済ませる)と make install clean(インストール後に作業ディレクトリを削除)を組み合わせる.

cd /usr/ports/<カテゴリ>/<ポーツ名>
make config-recursive
make install clean

オプション設定の画面を出さずに既定値でビルドするときは,端末を開き,管理者権限で次のコマンドを実行する.

cd /usr/ports/<カテゴリ>/<ポーツ名>
make BATCH=yes install clean

ポーツと pkg の併用についての注意

ポーツでビルドしたソフトウェアと,pkg でインストールしたバイナリパッケージは,同一のパッケージデータベースで管理される. そのため,pkg upgrade を実行すると,ポーツで独自のオプションを付けてビルドしたソフトウェアが,公式のバイナリパッケージで上書きされることがある.

これを避けるには,次のいずれかを行う.

* ロックされたパッケージが依存しているパッケージの更新も同時に妨げられるため,ロックしたままシステム全体を更新し続けると,依存関係の不整合が生じることがある.長期に運用する場合は poudriere の利用を検討する.  

基本ツール

ポーツを用いたインストール

端末を開き,管理者権限で次のコマンドを実行する.

cd /usr/ports/editors/emacs
make config-recursive
make install clean
pkg lock -y emacs

cd /usr/ports/editors/vim
make config-recursive
make install clean
pkg lock -y vim

cd /usr/ports/editors/nano
make config-recursive
make install clean
pkg lock -y nano

cd /usr/ports/editors/beav
make config-recursive
make install clean
pkg lock -y beav

cd /usr/ports/www/firefox
make config-recursive
make install clean
pkg lock -y firefox

cd /usr/ports/www/chromium
make config-recursive
make install clean
pkg lock -y chromium

cd /usr/ports/ftp/filezilla
make config-recursive
make install clean
pkg lock -y filezilla

cd /usr/ports/deskutils/flameshot
make config-recursive
make install clean
pkg lock -y flameshot

cd /usr/ports/graphics/blender
make config-recursive
make install clean
pkg lock -y blender

cd /usr/ports/cad/meshlab
make config-recursive
make install clean
pkg lock -y meshlab

cd /usr/ports/multimedia/vlc
make config-recursive
make install clean
pkg lock -y vlc

cd /usr/ports/multimedia/openshot
make config-recursive
make install clean
pkg lock -y openshot

* firefox の日本語表示は,本体に同梱の言語パックで行う.旧来の www/firefox-i18n は削除されている.

pkg を用いたインストール

ビルド時間を短縮したい場合は,ビルド済みバイナリパッケージを用いる. 端末を開き,管理者権限で次のコマンドを実行する.

pkg install -y emacs vim nano beav
pkg install -y firefox chromium filezilla
pkg install -y flameshot scrot
pkg install -y ImageMagick7 GraphicsMagick gdal qgis
pkg install -y blender meshlab
pkg install -y vlc openshot ffmpeg

* Windows 用の地理空間ソフトウェア集である OSGeo4W に相当するものとして,FreeBSD では gdal, proj, qgis を個別にインストールする.  

プログラミング

Java 開発環境 (OpenJDK) のインストール

FreeBSD の Java 開発環境は OpenJDK を用いる(旧来の Diablo JDK は提供が終了している). LTS 版である OpenJDK 21 と OpenJDK 25 がポーツにある. 端末を開き,管理者権限で次のコマンドを実行する.

pkg install -y openjdk25

OpenJDK は /procfdescfs のマウントを必要とする.端末を開き,管理者権限で次のコマンドを実行する.

mount -t fdescfs fdesc /dev/fd
mount -t procfs proc /proc
sysrc -f /etc/fstab.d/openjdk 2>/dev/null

起動時に自動でマウントするために,/etc/fstab に次の 2 行を追加する.

fdesc   /dev/fd     fdescfs     rw  0   0
proc    /proc       procfs      rw  0   0

インストールの確認のため,端末を開き,次のコマンドを実行する.

java -version

Eclipse IDE のインストール

端末を開き,管理者権限で次のコマンドを実行する.

pkg install -y eclipse

ポーツからビルドする場合は,端末を開き,管理者権限で次のコマンドを実行する.

cd /usr/ports/java/eclipse
make config-recursive
make install clean

* java/eclipse のビルドには Maven による多数の依存ソフトウェアの取得が必要で,長い時間がかかる.pkg でのインストールを勧める.

Python 開発環境と Python パッケージのインストール

端末を開き,管理者権限で次のコマンドを実行する.

pkg install -y python3 py311-pip
pkg install -y py311-jupyterlab py311-notebook py311-spyder
pkg install -y py311-numpy py311-scipy py311-pandas py311-matplotlib
pkg install -y py311-scikit-learn py311-sympy
pkg install -y py311-opencv

* パッケージ名の先頭の py311 の部分は,そのシステムでの Python の既定バージョンによって変わる.既定バージョンは,端末を開き,次のコマンドで確認する.

python3 --version

* pkg で提供されていない Python パッケージは,Python の仮想環境を作り,その中で pip を用いてインストールする.端末を開き,次のコマンドを実行する.

python3 -m venv ~/venv
~/venv/bin/python3 -m pip install -U pip
~/venv/bin/python3 -m pip install <パッケージ名>

R システム,Octave のインストール

端末を開き,管理者権限で次のコマンドを実行する.

pkg install -y R
pkg install -y octave

R のパッケージは,R を起動して install.packages を用いてインストールする.端末を開き,次のコマンドを実行する.

R

R のプロンプトで次を実行する.

install.packages(c("ggplot2", "dplyr", "data.table"))

SQLite 3 と GUI ツールのインストール

端末を開き,管理者権限で次のコマンドを実行する.

pkg install -y sqlite3
pkg install -y sqlitebrowser

* GUI ツールは DB Browser for SQLite(ポーツ名 databases/sqlitebrowser)を用いる.旧来の sqliteman は Qt4 の提供終了に伴いポーツから削除されている.

開発用ツール,ライブラリのインストール

FreeBSD の基本システムには,C/C++ コンパイラとして clang,ビルドツールとして make (BSD make) が含まれている. GNU 系のツールや追加のライブラリは次のようにインストールする. 端末を開き,管理者権限で次のコマンドを実行する.

# ビルドツール
pkg install -y git gmake cmake ninja meson pkgconf autoconf automake libtool bison gawk ccache swig

# コンパイラ
pkg install -y gcc

# 数値計算ライブラリ
pkg install -y openblas lapack suitesparse metis glpk gsl mpfr gmp mpc

# 可視化,画像処理,GUI
pkg install -y vtk9 opencv wxgtk32 sdl2 fltk tcl86 tk86 freetype2

# 文書,文字コード変換
pkg install -y nkf lv xpdf a2ps

* OpenBLAS は GotoBLAS2 を引き継いで開発されている最適化 BLAS 実装で,CBLAS インタフェースと LAPACK ルーチンを含む. GotoBLAS2 および ATLAS はいずれも開発が終了しており,これらをソースコードからビルドする代わりに OpenBLAS を用いる.

* OpenBLAS を用いてプログラムをコンパイルするときは,端末を開き,次のコマンドを実行する.

cc -I/usr/local/include -o a.out foo.c -L/usr/local/lib -lopenblas
 

その他のアプリケーション

オフィススイート,日本語処理

端末を開き,管理者権限で次のコマンドを実行する.

# オフィススイート
pkg install -y libreoffice

# 日本語入力
pkg install -y ja-anthy fcitx5 fcitx5-anthy fcitx5-qt fcitx5-gtk

# 形態素解析
pkg install -y ja-mecab ja-mecab-ipadic

* 日本語入力は,かつての SCIM や uim-anthy に代わり fcitx5 を用いる. 利用するには,シェルの設定ファイル(例: ~/.xprofile)に次を記述する.

export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
fcitx5 -d

仮想化,リモート接続

端末を開き,管理者権限で次のコマンドを実行する.

# 仮想マシン
pkg install -y qemu

# リモートデスクトップ,ファイル転送
pkg install -y tigervnc-server tigervnc-viewer freerdp remmina filezilla

# Windows 用アプリケーションの実行
pkg install -y wine

ネットワークの調査

自分が管理するホストやネットワークの状態を調べるために用いる. 端末を開き,管理者権限で次のコマンドを実行する.

pkg install -y nmap

* ネットワーク調査ツールは,自身が管理権限をもつ機器に対してのみ使用する.

ライセンスについての注意

ポーツやパッケージで導入されるソフトウェアのライセンスは一様ではない. 再配布の可否,商用利用の可否などはソフトウェアごとに異なるため,使用前にライセンス条項を確認する. ポーツのライセンスは,端末を開き,次のコマンドで確認できる.

cd /usr/ports/<カテゴリ>/<ポーツ名>
make -V LICENSE

インストール済みパッケージのライセンスは,端末を開き,次のコマンドで確認できる.

pkg info <パッケージ名>