FreeBSD でプログラミング環境を整える(ポーツ・コレクションを使用)
【目次】
- 前準備(ポーツ・コレクションの取得,ビルド手順,pkg との併用)
- 基本ツール
- エディタ: emacs, vim, nano, beav
- インターネット: firefox, chromium, filezilla
- スクリーンショット: flameshot, scrot
- 画像,地理空間データ: ImageMagick, GDAL, QGIS
- 3次元グラフィックス: Blender, MeshLab
- ビデオ: VLC, OpenShot, FFmpeg
- プログラミング
- Java 開発環境 (OpenJDK), Eclipse IDE
- Python 開発環境 (JupyterLab, Spyder), Python パッケージ
- R システム, Octave
- データベース管理システム: SQLite 3, DB Browser for SQLite
- ツール,ライブラリ: git, gmake, cmake, ninja, swig, OpenBLAS, LAPACK, VTK, OpenCV
- その他のアプリケーション
- オフィススイート,日本語処理,仮想化,リモート接続
* Ubuntu については別ページで説明
* GPU 関連: NVIDIA の CUDA, cuDNN は FreeBSD 向けには提供されていない.GPU を用いた機械学習の環境が必要な場合は,Linux を使用する.
前準備
システムの更新
「FreeBSD システムの更新,ポーツコレクションの維持更新」 のページを参考に,次のことを行っておく.
- FreeBSD のセキュリティパッチの適用
- ポーツ・コレクション (ports collection) の取得,更新
ポーツ・コレクションの取得と更新
ポーツ・コレクションの配布は 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 を実行すると,ポーツで独自のオプションを付けてビルドしたソフトウェアが,公式のバイナリパッケージで上書きされることがある.
これを避けるには,次のいずれかを行う.
- pkg lock でパッケージを更新対象から除外する(ポーツでビルドした直後に実行する)
pkg lock -y <パッケージ名>ロックを解除するときは,端末を開き,管理者権限で次のコマンドを実行する.
pkg unlock -y <パッケージ名> - poudriere (ports-mgmt/poudriere) を用いて自前のパッケージリポジトリを作り,システム全体を pkg で一元管理する
* ロックされたパッケージが依存しているパッケージの更新も同時に妨げられるため,ロックしたままシステム全体を更新し続けると,依存関係の不整合が生じることがある.長期に運用する場合は 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 は /proc と fdescfs のマウントを必要とする.端末を開き,管理者権限で次のコマンドを実行する.
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 <パッケージ名>