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

FreeBSD にデスクトップ環境(X.OrgGNOME)と,プログラミングや数値計算のための環境を導入する手順をまとめている。 記述は FreeBSD 15.1-RELEASE / 15.0-RELEASE / 14.4-RELEASE(2026年8月時点でセキュリティサポートの対象となっているリリース)と, その時点のポーツ・ツリー (Ports Collection) を前提とする。

◇ このページで扱う主なソフトウェア

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

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

* ポーツ・ツリーと pkg の混用について

pkg の公式リポジトリは既定でポーツ・ツリーの四半期ブランチ (quarterly) から作られている。 一方,ポーツ・ツリーを git で取得すると既定では main ブランチになる。 両者は依存関係のバージョンが異なることがあり,混用すると依存関係の不整合が起きる。 ポーツ・ツリーからビルドする場合は,ポーツ・ツリーと pkg のブランチを揃えるか, ビルドしたパッケージを ports-mgmt/poudriere で自前のリポジトリとして管理する。

前準備

基本設定とシステムの更新

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

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

  2. FreeBSD ベースシステムの更新

    端末で,次のコマンドを実行する(root 権限が必要)。バイナリリリースを使っている場合の標準的な更新方法である。

    freebsd-update fetch
    freebsd-update install
    
  3. ポーツ・ツリーの取得と更新

    portsnap は FreeBSD 14.0 で削除されたため,現在は git でポーツ・ツリーを取得する。 端末で,次のコマンドを実行する(root 権限が必要)。devel/git が未導入の場合は「pkg install git」で導入しておく。

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

    pkg の四半期ブランチに合わせる場合は,端末で,次のコマンドを実行する(2026Q3 の部分は使用する四半期ブランチ名に読み替える)。

    git clone --depth 1 -b 2026Q3 https://git.FreeBSD.org/ports.git /usr/ports
    

    ポーツ・ツリーを更新するときは,端末で,次のコマンドを実行する(root 権限が必要)。

    git -C /usr/ports pull
    
  4. ポーツを更新する前に /usr/ports/UPDATING を読む

    /usr/ports/UPDATING には,設定ファイルの位置の変更や,非互換な変更に対する手順が記載されている。 更新の前に,前回更新した日付までさかのぼって読む。

    less /usr/ports/UPDATING
    

ポーツを管理するソフトウェア

ports-mgmt/portupgrade は非推奨となっており,将来削除される予定である。現在の選択肢は次の3つである。

portmaster を導入する場合は,端末で,次のコマンドを実行する(root 権限が必要)。

cd /usr/ports/ports-mgmt/portmaster
make install clean

導入済みポーツのうち更新があるものを一覧するときは,端末で,次のコマンドを実行する。

pkg version -l "<"

ポーツからのインストールの基本操作

ポーツからインストールするときは,ポート・ディレクトリに移動して make を実行する。 オプションを持つポーツでは,依存するポーツのオプションもまとめて設定するために make config-recursive を先に実行する。 例として devel/gmake を導入する場合は,端末で,次のコマンドを実行する(root 権限が必要)。

cd /usr/ports/devel/gmake
make config-recursive
make install clean

オプション設定をやり直すときは,端末で,次のコマンドを実行する(root 権限が必要)。

cd /usr/ports/devel/gmake
make rmconfig
make config

アンインストールするときは,端末で,次のコマンドを実行する(root 権限が必要)。

cd /usr/ports/devel/gmake
make deinstall

既定バージョンの設定 (/etc/make.conf)

ポーツ・ツリーでは,コンパイラや言語処理系の既定バージョンが Mk/bsd.default-versions.mk で定義されている。 これを変更するときは /etc/make.confDEFAULT_VERSIONS を書く。個々のポーツで CC などを直接指定する方法は, ビルド済みライブラリとの ABI 不整合の原因になるため用いない。

/etc/make.conf の設定例

DEFAULT_VERSIONS+= gcc=14 python=3.12 ruby=3.4 java=25 ssl=base

JDK のインストール

Diablo Java の配布は終了している。現在は OpenJDK のポーツを使う。既定の Java バージョンは 25 である。 端末で,次のコマンドを実行する(root 権限が必要)。ビルドには長い時間がかかる。

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

インストール後,Java のバージョンを確認するときは,端末で,次のコマンドを実行する。

java -version

グラフィックスドライバのインストール

X.Org を動かす前に,GPU に対応するカーネルモジュールを導入する。 まず,搭載されている GPU を確認する。端末で,次のコマンドを実行する。

pciconf -lv | grep -B3 display

Intel または AMD の場合,端末で,次のコマンドを実行する(root 権限が必要)。

cd /usr/ports/graphics/drm-kmod
make install clean

続いて,起動時にモジュールが読み込まれるように設定する。Intel の場合は端末で,次のコマンドを実行する(root 権限が必要)。

sysrc kld_list+=i915kms

AMD の場合は端末で,次のコマンドを実行する(root 権限が必要)。旧世代(HD7000/Tahiti より前)では amdgpu ではなく radeonkms を指定する。

sysrc kld_list+=amdgpu

NVIDIA の場合は端末で,次のコマンドを実行する(root 権限が必要)。

cd /usr/ports/graphics/nvidia-drm-kmod
make install clean
sysrc kld_list+=nvidia-drm

NVIDIA で Wayland や PRIME を使う場合は,/boot/loader.conf に次の行を書き加える。

hw.nvidiadrm.modeset="1"

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

関連する外部ページhttps://docs.freebsd.org/ja/books/handbook/x11/

  1. X.Org のインストール

    端末で,次のコマンドを実行する(root 権限が必要)。ビルドには長い時間がかかる。

    cd /usr/ports/x11/xorg
    make config-recursive
    make install clean
    

    * 最小構成でよい場合は x11/xorg-minimal を使う。ただし,一部のアプリケーションは追加のライブラリを必要とする。

  2. ユーザを video グループに追加

    グラフィカル環境を使うユーザは video グループに属している必要がある。端末で,次のコマンドを実行する(root 権限が必要。username は実際のユーザ名に読み替える)。

    pw groupmod video -m username
    
  3. 動作確認

    x11/xinit が導入されていれば,端末で,次のコマンドを実行することで X サーバを起動できる。

    startx
    
* xorg.conf は原則として作らない

現在の X.Org は,GPU も入力デバイスも自動構成される。 自動構成で問題が出た場合にのみ,/usr/local/etc/X11/xorg.conf.d/ の下に,設定項目ごとの小さなファイルを置く。 単一の xorg.conf を作る方法や「Xorg -configure」は,自動構成と競合するため,最後の手段とする。

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

関連する外部ページhttps://docs.freebsd.org/ja/books/handbook/desktop/

  1. GNOME のインストール

    端末で,次のコマンドを実行する(root 権限が必要)。ビルドには非常に長い時間がかかる。

    cd /usr/ports/x11/gnome
    make config-recursive
    make install clean
    

    * 基本構成だけでよい場合は x11/gnome-lite を使う。

  2. procfs のマウント設定

    GNOME は /proc がマウントされていることを必要とする。/etc/fstab に次の行を書き加える。

    proc                    /proc           procfs  rw              0       0
    
  3. D-Bus と GDM の有効化

    端末で,次のコマンドを実行する(root 権限が必要)。

    sysrc dbus_enable="YES"
    sysrc gdm_enable="YES"
    
  4. 再起動して GDM のログイン画面が出ることを確認

    端末で,次のコマンドを実行する(root 権限が必要)。

    shutdown -r now
    

    * ディスプレイマネージャを使わずに起動する場合は,~/.xinitrc に次の1行だけを書き,startx で起動する。

    exec gnome-session
    

X.Org でキーボードとマウスが動作しないときの対処

X サーバの画面は表示されるのに,キーボードもマウスも反応しない状態になることがある。 ここでは,その確認手順を説明する。

* かつて X.Org の入力デバイス検出には hal が使われていたが, hal のサポートは X.Org サーバ 1.12 で削除されている。 現在の FreeBSD では,入力デバイスは devdx11/libinput(xf86-input-libinput ドライバ)によって扱われる。 古い解説にある hald_enable の設定や lshal による確認は,現在のシステムには当てはまらない。
  1. (前準備)仮想端末への切り替え

    「CTRLキー」+「ALTキー」+「ファンクションキー F1〜F8」(同時押し)で,テキストの仮想端末に切り替えられる場合がある。

  2. ログの確認

    端末で,次のコマンドを実行し,エラー行 (EE) と警告行 (WW) を確認する。

    cat /var/log/Xorg.0.log | grep -E "\(EE\)|\(WW\)"
    

    「no screens found」であればグラフィックスドライバの問題であり, 「no input devices」や「AutoAddDevices」に関する行であれば入力デバイスの問題である。

  3. 入力ドライバの確認

    端末で,次のコマンドを実行し,xf86-input-libinput が導入されていることを確認する。

    pkg info | grep xf86-input
    

    導入されていない場合は,端末で,次のコマンドを実行する(root 権限が必要)。

    cd /usr/ports/x11-drivers/xf86-input-libinput
    make install clean
    
  4. devd の動作確認

    端末で,次のコマンドを実行する(root 権限が必要)。

    service devd status
    

    停止している場合は,端末で,次のコマンドを実行する(root 権限が必要)。

    sysrc devd_enable="YES"
    service devd start
    
  5. X セッション内でのデバイス確認

    X が起動している状態で端末を開き,次のコマンドを実行すると,X サーバが認識している入力デバイスの一覧が表示される。

    xinput
    
  6. 古い設定ファイルの退避

    過去に作成した設定ファイルが自動構成と競合していることがある。端末で,次のコマンドを実行して,設定ファイルの有無を確認する(root 権限が必要)。

    ls /usr/local/etc/X11/xorg.conf.d /usr/local/etc/X11/xorg.conf /etc/X11/xorg.conf
    

    これらが存在する場合は,別名に変更して退避し,自動構成だけで起動するか試す。

  7. (オプション)moused を使う場合の設定

    libinput ではなく moused 経由でマウスを扱う場合は,X サーバの自動デバイス追加を無効にする。 /usr/local/etc/X11/xorg.conf.d/10-input.conf を作成し,次の内容を書く。

    Section "ServerFlags"
            Option "AutoAddDevices" "false"
    EndSection
    
    Section "InputDevice"
            Identifier  "Mouse0"
            Driver      "mouse"
            Option      "Device" "/dev/sysmouse"
    EndSection
    

    あわせて,端末で,次のコマンドを実行する(root 権限が必要)。

    sysrc moused_enable="YES"
    service moused start
    

日本語入力の設定

入力メソッドフレームワークには fcitx5 を,かな漢字変換エンジンには mozc または anthy-unicode を使う。 scim は開発が終了しており,ポーツ・ツリーの scim 関連のポーツも古い。

  1. fcitx5 と変換エンジンのインストール

    端末で,次のコマンドを実行する(root 権限が必要)。

    cd /usr/ports/textproc/fcitx5
    make install clean
    cd /usr/ports/textproc/fcitx5-configtool
    make install clean
    cd /usr/ports/japanese/mozc-server
    make install clean
    cd /usr/ports/japanese/mozc-tool
    make install clean
    cd /usr/ports/japanese/fcitx-mozc
    make install clean
    

    * mozc の代わりに anthy を使う場合は,japanese/anthy-unicodejapanese/fcitx5-anthy を導入する。

  2. 日本語フォントのインストール

    端末で,次のコマンドを実行する(root 権限が必要)。

    cd /usr/ports/japanese/font-ipaex
    make install clean
    cd /usr/ports/japanese/font-vlgothic
    make install clean
    
  3. 環境変数の設定

    ~/.xprofile(GDM からのログイン時にも読み込まれる)または ~/.xinitrc に次の内容を書き加える。

    export LANG=ja_JP.UTF-8
    export XMODIFIERS=@im=fcitx
    export GTK_IM_MODULE=fcitx
    export QT_IM_MODULE=fcitx
    fcitx5 -d
    

    * GNOME で Wayland セッションを使う場合,GTK アプリケーションは環境変数なしで動作するが, X11 アプリケーションのために XMODIFIERS の設定は残しておく。

  4. 入力メソッドの追加

    ログインし直したあと,端末で,次のコマンドを実行し,「Mozc」を入力メソッドの一覧に追加する。

    fcitx5-configtool
    

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

端末で,次のコマンドを実行する(root 権限が必要)。

cd /usr/ports/editors/emacs
make config-recursive
make install clean
cd /usr/ports/japanese/mozc-el
make install clean
cd /usr/ports/print/yatex
make install clean

* tamago (Egg V4) はポーツ・ツリーに残っているが,メンテナンスは活発ではない。emacs 上でのかな漢字変換には mozc-el を使う。

~/.emacs(または ~/.emacs.d/init.el)の設定例

(set-language-environment "Japanese")
(prefer-coding-system 'utf-8)
(require 'mozc)
(setq default-input-method "japanese-mozc")

開発用ツールとライブラリのインストール (ポーツ・ツリーを使用)

以下は,それぞれのポート・ディレクトリで「make install clean」を実行する。 多数のポーツをまとめて扱う場合は portmaster を使うと,依存関係の更新もあわせて行われる。 portmaster を使う場合は,端末で,次の形式のコマンドを実行する(root 権限が必要)。

portmaster devel/gmake

GNU の開発用ツール類

devel/gmake
devel/patch
devel/autoconf
devel/automake
devel/bison
lang/gawk
devel/libtool
devel/ccache
devel/binutils
devel/git

コンパイラ

FreeBSD のベースシステムのコンパイラは Clang/LLVM である。 GCC が必要な場合は lang/gcc(既定バージョンへのメタポート,現在は GCC 14)を導入する。 特定のバージョンが必要なときは lang/gcc14, lang/gcc15 のようにバージョン付きのポートを指定する。 gfortran は同じポートに含まれる。

lang/gcc

ライブラリ類

devel/readline
security/openssl
math/gmp
math/mpfr
math/mpc
math/metis
math/suitesparse
math/glpk
math/gsl
x11-toolkits/fltk

表示,変換など

print/freetype2
japanese/xpdf
japanese/nkf
misc/lv
devel/libgsf
graphics/poppler-utils
converters/unix2dos
textproc/ispell
japanese/a2ps

日本語形態素解析

japanese/chasen-base
japanese/ipadic
japanese/p5-Text-ChaSen
japanese/mecab
japanese/mecab-ipadic

全文検索,データベースクライアント

japanese/namazu2
databases/mysql84-client
databases/sqlite3

グラフィックス,マルチメディア

devel/sdl20
graphics/ImageMagick7
graphics/GraphicsMagick
graphics/jpeg-turbo
graphics/png
graphics/tiff
multimedia/ffmpeg
graphics/hugin
graphics/scrot
graphics/gwenview
graphics/dia
japanese/tgif
multimedia/mplayer
multimedia/smplayer

* パノラマ画像の合成は,かつて autopano-sift と組み合わせて使われていたが, 現在は特徴点抽出器 (cpfind) が graphics/hugin に同梱されている。

可視化,画像処理,3D

devel/cmake
math/vtk9
graphics/opencv
x11-toolkits/irrlicht
graphics/ogre3d
graphics/blender
x11-toolkits/wxgtk32
lang/tcl86
x11-toolkits/tk86
math/gnuplot

数値計算処理系,オフィス,IDE

math/octave
math/R
editors/libreoffice
editors/vscode
java/eclipse
editors/vim

仮想化,リモート接続,ファイル転送

emulators/qemu
emulators/wine
security/openssh-askpass
ftp/filezilla
net/tigervnc-server
net/tigervnc-viewer
net/freerdp
net/remmina

* rdesktop と tsclient は開発が終了している。RDP クライアントには net/freerdp または net/remmina を使う。

* ビルドが失敗したときの対処

エラーメッセージの末尾に出る失敗した段階(fetch, patch, configure, build, stage のいずれか)を確認し,個別に対応する。 記録を残すには,端末で「script /tmp/build.log」を実行してからビルドを行う。 共有ライブラリのバージョン不整合が原因の場合は,端末で,次のコマンドを実行して依存関係を確認する(root 権限が必要)。

pkg check -Ba

古い共有ライブラリを参照しているポーツを再ビルドするときは,端末で,次のコマンドを実行する(root 権限が必要)。

portmaster -r ライブラリを提供するポート名

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

既定の Ruby は 3.4 である。端末で,次のコマンドを実行する(root 権限が必要)。

cd /usr/ports/lang/ruby34
make install clean
cd /usr/ports/devel/ruby-gems
make install clean

SQLite 3 と関連ツールを導入するときは,端末で,次のコマンドを実行する(root 権限が必要)。

cd /usr/ports/databases/sqlite3
make install clean
cd /usr/ports/databases/spatialite
make install clean
cd /usr/ports/databases/sqlitebrowser
make install clean

Ruby のライブラリを導入するときは,端末で,次のコマンドを実行する(root 権限が必要)。

cd /usr/ports/databases/rubygem-sqlite3
make install clean
cd /usr/ports/databases/rubygem-mysql2
make install clean
cd /usr/ports/graphics/rubygem-rmagick
make install clean
cd /usr/ports/x11-toolkits/rubygem-gtk3
make install clean

Ruby on Rails は,ポーツではなく RubyGems で導入する方が,バージョンの選択が容易である。端末で,次のコマンドを実行する(root 権限が必要)。

gem install rails
rails --version

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

GotoBLAS2 は 2010 年に開発が終了しており,その後継が OpenBLAS である。 ATLAS も含めて,現在はいずれもポーツ・ツリーから導入できるため,ソースコードからビルドする必要はない。

OpenBLAS を導入するときは,端末で,次のコマンドを実行する(root 権限が必要)。

cd /usr/ports/math/openblas
make config
make install clean

リファレンス実装と C インタフェースを導入するときは,端末で,次のコマンドを実行する(root 権限が必要)。

cd /usr/ports/math/lapack
make install clean
cd /usr/ports/math/cblas
make install clean

複数の BLAS 実装を切り替えて使いたい場合は,端末で,次のコマンドを実行する(root 権限が必要)。

cd /usr/ports/math/flexiblas
make install clean

* リンク時は「-lopenblas」または「-lblas -llapack」を指定する。 OpenBLAS のスレッド数は,環境変数 OPENBLAS_NUM_THREADS で制御する。

リンク集