FreeBSD14でRustのビルド環境を整える

Rustのビルド環境を構築しているときの覚書。
Gemini 3 Pro Previewと対話。

環境: FreeBSD 14.3-RELEASE-p8 arm64


1. Rustをインストール

ARM64の環境ではrustupは提供されていない。
pkg経由で検索。
# pkg search rust

Rust開発支援ツール

  • rust-analyzer: Rust言語用の「言語サーバー(LSP)」。
  • rust-mode: テキストエディタ Emacs 用のプラグイン。
  • rust-script: Rustのコードを、PythonやShellスクリプトのように「コンパイル手順なしで」実行できるようにするツール。

C言語連携ツール(高度な開発用)

  • rust-bindgen-cli: C言語(および一部C++)のヘッダーファイル(.h)を読み込み、Rustから呼び出せるようにするためのバインディングコード(ラッパー)を自動生成するツール
  • rust-cbindgen: 上記とは逆で、RustのコードからC言語用のヘッダーファイル(.h)を生成するツール

ユーティリティ(Rust製コマンド)

  • rust-coreutils: GNU coreutils(ls, cp, mv, cat など)をRust言語で書き直すプロジェクト(uutils)の成果物。通常はインストール不要。
  • rust-findutils: GNU findutils(find, xargs, locate)をRust言語で書き直したもの。通常はインストール不要。


ビルドするだけなので、rustだけインストール。
# pkg install rust

確認。
# rustc --version

rustc 1.92.0 (ded5c06cf 2025-12-08) (built from a source tarball)

# cargo --version

cargo 1.92.0 (344c4567c 2025-10-21) (built from a source tarball)



2.Rustツールの解説

コンパイラ・基本ツール

  • rustc: Rustコンパイラ本体。
    通常は cargo build や cargo run コマンドを実行すると、裏側でこの rustc が自動的に実行される。
  • rustfmt: コードフォーマッター(整形ツール)。
    プロジェクトディレクトリで cargo fmt と打つと、裏側でこれが動き、全ファイルを整形してくれる。
  • rustdoc: ドキュメント生成ツール。
    cargo doc --open と打つと、裏側でこれが動き、ドキュメントを生成してブラウザで開いてくれる。

デバッガ(ラッパーコマンド)

  • rust-gdb: GNU Debugger (GDB) のRust用ラッパー。
    FreeBSDではシステム標準のデバッガとして lldb が好まれる傾向がありますが、GDBに慣れているならこちらを使います。
  • rust-lldb: LLVM Debugger (LLDB) のRust用ラッパー。
    FreeBSD(特にarm64環境)はLLVM/Clangベースのシステムなので、デバッグには こちら(rust-lldb)を使う方が相性が良い 場合が多い。
  • rust-gdbgui: GDBのGUIフロントエンド(ブラウザベースのデバッガ)をRust用に起動するもの。
    実際に使うには、別途 gdbgui というPythonツールなどがインストールされている必要がある場合がある。


開発者が直接コマンドラインに入力するのは、ほとんどの場合 cargo コマンドだけ。


3. cargoコマンド

cargo は Rust の開発における司令塔のようなツール。

cargo 

Rust開発の統合マネージャー。

開発に必要なこと(プロジェクト作成、ライブラリのダウンロード、ビルド、テスト、実行)のほぼ全てをこのコマンド一つで行う。

よく使うコマンド

  • cargo new プロジェクト名: 新しいプロジェクトを作成
  • cargo run: ビルドして実行
  • cargo build: ビルドのみ行う(target/ フォルダに生成)
  • cargo check: コンパイルできるかチェックだけ行う(高速なので頻繁に使う)
  • cargo test: テストコードを実行


cargo-fmt

コードフォーマッター(整形ツール)の実体。

ソースコードの書き方(インデント、スペース、改行など)を Rust の標準ルールに合わせて自動的に綺麗にしてくれる。

直接 cargo-fmt と打つのではなく、以下のように実行する。
# cargo fmt


cargo-clippy

高機能なリンター(静的解析ツール)の実体。

コンパイルエラーにはならないけれど、「書き方が悪い」「バグの元になる」「もっと効率的に書ける」といった箇所を指摘してくれる。

直接 cargo-clippy と打つのではなく、以下のように実行する。
# cargo clippy



▼ 関連記事