FedoraでRustをプロフェッショナルにインストール:DNFではなくRustupを使おう!

Fedora tutorial - IT technology blog
Fedora tutorial - IT technology blog

インストールコマンドを打ち込んで準備万端だと思いましたか?現実はそう甘くはありません

Fedoraに乗り換えたばかりの多くの開発者は、必要なものがあれば sudo dnf install するという習慣をそのまま持ち込みがちです。手軽に sudo dnf install rust cargo と入力すれば終わり、そう思っていませんか?実際には、このやり方は後々「行き止まり」に突き当たることがよくあります。

VS Codeを立ち上げ、Rust拡張機能をインストールして魔法を期待するでしょう。しかし、スムーズなコード補完の代わりに、至る所に赤いエラーが表示されます。rust-src が足りない、rust-analyzer がライブラリを認識できない、あるいは最悪の場合、プロジェクトが先週リリースされたばかりの最新のRustバージョンを要求しているためにコンパイルできない、といった具合です。FedoraのリポジトリにあるRustは更新が速い方ですが、それでも公式リリースより1〜2週間遅れることが一般的です。

私は過去2年間、Fedoraをメインのマシンとして使用してきました。DNF経由でRustをインストールする最大の欠点は、言語のエコシステムを自らコントロールする代わりに、オペレーティングシステムのパッケージマネージャーに自分を縛り付けてしまうことです。

なぜDNF経由のRustインストールが開発者にとって「後退」なのか?

核心はスピードにあります。Rustは6週間(ちょうど42日)ごとに新しいStable(安定版)がリリースされます。Fedoraはシステム全体の安定性を優先しますが、開発者はパフォーマンスを最適化するために最新の機能を必要とします。

「DNFを使用した場合」に遭遇する3つの厄介なポイントは以下の通りです:

  • ツールチェーンの固定: プロジェクトAがRust 1.75を必要とし、プロジェクトBが新しい機能を試すためにNightly版を要求している場合、DNFでは完全にお手上げ状態になります。
  • 「クリーン」なツールセットの不足: 20以上の一般的なロジックエラーを検出してくれる clippyrustfmt などのツールが付属していなかったり、バラバラにインストールするとIDEとの同期が難しかったりします。
  • 権限の競合: DNF経由のインストールにはroot権限が必要です。Rustは、Rustに依存しているFedoraのシステムスクリプトを壊さないよう、ユーザー空間(ホームディレクトリ)へのインストールを推奨しています。

3つのセットアップ方法:スピード重視か、標準重視か?

通常、開発者はこれら3つの道のいずれかを通ります:

  1. DNFを使う: いくつかの基本的なスクリプトを試すのには向いていますが、実際のプロジェクト開発用ではありません。
  2. バイナリを手動でダウンロードする: これは時間の無駄です。更新のたびに再ダウンロードし、PATHを最初から設定し直さなければなりません。
  3. Rustupを使用する: これがコミュニティのゴールドスタンダード(標準)です。バージョン、追加コンポーネントからツールチェーンの切り替えまで、すべてをコマンド一行で管理できます。

標準的な手順:Fedora 40/41向けのRustup + VS Codeコンボ

スムーズなコーディング環境を手に入れるために、私が念入りにテストした以下の手順に従ってください。セットアップにかかる時間は、ネット環境にもよりますが、わずか5〜10分程度です。

ステップ1:基盤となる依存関係のインストール

Rustが動作するには、リンカーとCコンパイラが必要です。Fedoraでは、個別にインストールするのではなく、以下のコマンドで開発ツールセットをまとめてインストールしましょう:

sudo dnf groupinstall "Development Tools"
sudo dnf install openssl-devel gcc-c++

注意:openssl-devel は、Actix-webやRocketを使ってWebバックエンドを開発する場合に必須です。これを忘れると、最初のビルドで「OpenSSL not found」というエラーに直面することになります。

ステップ2:公式マネージャーRustupのインストール

ターミナルを開き、以下の魔法のコマンドを貼り付けてください:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

メニューが表示されたら、1 を押してEnterを叩きます。スクリプトが自動的に ~/.rustup~/.cargo ディレクトリを作成します。すべてが個人のディレクトリ内に収まるため、非常に安全です。

ステップ3:環境変数の有効化

マシンを再起動する代わりに、現在のシェルに新しい設定を読み込ませるだけで済みます:

source $HOME/.cargo/env

rustc --version を入力して確認してください。バージョン(例:1.78.0)が表示されれば、半分は成功です。

ステップ4:IDEのための「究極の武器」を装備する

コンパイラをインストールしただけで満足しないでください。コーディングを2倍速くするための3つの補助ツールを追加しましょう:

rustup component add rust-analyzer rust-src rustfmt clippy

この中で、rust-analyzer はVS CodeがRustの複雑なコード構造を理解するために最も重要なコンポーネントです。

ステップ5:VS CodeをプロフェッショナルなRust IDEに変える

VS Codeを開き、以下の3つの拡張機能を正しくインストールしてください(余計なものは入れないようにしましょう):

  • rust-analyzer: 必ずrust-lang公式のものを選んでください。古い「Rust」という名前の拡張機能は避けてください。
  • CodeLLDB: デバッグに必須のツールです。WindowsのVisual Studioを使っているかのように、ブレークポイントを設定して変数の値を調査できます。
  • Even Better TOML: Cargo.toml ファイル内でのライブラリバージョンの補完を助けてくれます。新しい依存関係を追加する際に非常に便利です。

ステップ6:成果の確認

ツールチェーンが同期されているか確認するために、新しいプロジェクトを作成してみましょう:

cargo new hello-fedora && cd hello-fedora && code .

rust-analyzer のロードが終わるまで5秒ほど待ちます。セミコロンを削除したり、変数名をわざと間違えてみてください。VS Codeが詳細な説明とともに即座に赤いエラーを表示すれば、あなたの環境はプロフェッショナルな基準に達しています。

FedoraでRustを使う際の実体験に基づくアドバイス

長期間使用してきた中で、いくつかのアドバイスがあります:

  • 定期的なアップデート: 月に一度は rustup update を実行してください。Rust의 進化は非常に速いため、取り残されないようにしましょう。
  • RAMが決定的な要因: 大きなプロジェクトをビルドする際、Rustは多くのRAMを消費します。コンパイル中にFedoraがフリーズしないよう、少なくとも16GBのRAMを搭載することをお勧めします。
  • Fedoraカーネルの活用: Fedoraは常に最新のカーネルを使用しているため、Cargoのファイル読み書き速度は古いカーネルを使用しているディストリビューションよりも大幅に高速です。

最初から正しくセットアップすることで、環境エラーの修正ではなく、本来の課題解決に完全に集中できるようになります。FedoraでのRust開発が素晴らしい体験になることを願っています!

Share: