Rust 1.99.1 Toolset の使用


Red Hat Developer Tools 1

Rust 1.99.1 Toolset のインストールおよび使用

Jacob Valdez

Red Hat Developer Group Documentation Team

概要

Rust Toolset は、Red Hat Enterprise Linux (RHEL) オペレーティングシステム上の開発者向けの Red Hat 製品です。本書では、Rust Toolset の概要、さまざまなバージョンの Rust ツールを起動して使用する方法、および詳細な情報を含むリソースを検索する方法を説明します。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、今後の複数のリリースで段階的に用語の置き換えを実施して参ります。詳細は、Red Hat CTO である Chris Wright のメッセージ をご覧ください。

第1章 Rust Toolset

Rust Toolset は、Red Hat Enterprise Linux (RHEL) 上の開発者向けの Red Hat 製品です。Rust プログラミング言語、Rust パッケージマネージャー Cargo、rustfmt フォーマットツール、および必要なライブラリーに rustc コンパイラーを提供します。

Red Hat Enterprise Linux 8 では、Rust Toolset はモジュールとして利用できます。Rust Toolset は、Red Hat Enterprise Linux 9 のパッケージとして利用できます。

1.1. Rust Toolset コンポーネント

以下のコンポーネントは、Rust Toolset の一部として利用できます。

Expand
名前バージョン説明

rust

1.75.0

LLVM 用の Rust コンパイラーフロントエンド。

cargo

1.75.0

Rust のビルドシステムおよび依存関係マネージャー。

rustfmt

1.75.0

Rust コードの自動フォーマットを行うためのツール。

1.2. Rust Toolset の互換性

Rust Toolset は、Red Hat Enterprise Linux 8 および Red Hat Enterprise Linux 9 では、以下のアーキテクチャーで利用できます。

  • AMD および Intel 64 ビット
  • 64-bit ARM
  • IBM Power Systems、リトルエンディアン
  • 64 ビット IBM Z

1.3. Rust Toolset のインストール

すべての開発ツール、デバッグツール、および依存パッケージを含む Rust Toolset をインストールするには、以下の手順を実行します。Rust Toolset には、LLVM Toolset の依存関係があることに注意してください。

前提条件

  • 利用可能な Red Hat Enterprise Linux のすべての更新がインストールされている。

手順

Red Hat Enterprise Linux 8 で、以下のコマンドを実行して rust-toolset モジュールをインストールします。

# yum module install rust-toolset
Copy to Clipboard Toggle word wrap

Red Hat Enterprise Linux 9 で、以下のコマンドを実行して rust-toolset パッケージをインストールします。

# dnf install rust-toolset
Copy to Clipboard Toggle word wrap

1.4. Rust ドキュメントのインストール

The Rust Programming Language ガイドは、インストール可能なドキュメントとして利用できます。

前提条件

手順

rust-doc パッケージをインストールするには、以下のコマンドを実行します。

  • Red Hat Enterprise Linux 8 の場合

    # yum install rust-doc
    Copy to Clipboard Toggle word wrap

    The Rust Programming Language ガイドは、/usr/share/doc/rust/html/index.html にあります。
    すべての Rust コードパッケージの API ドキュメントは、/usr/share/doc/rust/html/std/index.html にあります。

  • Red Hat Enterprise Linux 9 の場合

    # dnf install rust-doc
    Copy to Clipboard Toggle word wrap

    The Rust Programming Language ガイドは、/usr/share/doc/rust/html/index.html にあります。
    すべての Rust コードパッケージの API ドキュメントは、/usr/share/doc/rust/html/std/index.html にあります。

1.5. Cargo ドキュメントのインストール

Cargo (Rust のパッケージマネージャー) ガイドは、Cargo のインストール可能なドキュメントとして利用できます。

注記

Rust Toolset 1.99 以降、cargo-doc パッケージは rust-doc パッケージに同梱されています。

前提条件

手順

  • cargo-doc パッケージをインストールするには、以下のコマンドを実行します。

    • Red Hat Enterprise Linux 8 の場合

      # yum install cargo-doc
      Copy to Clipboard Toggle word wrap

      Cargo (Rust のパッケージマネージャー) のガイドは、/usr/share/doc/cargo/html/index.html にあります。

    • Red Hat Enterprise Linux 9 の場合

      # dnf install cargo-doc
      Copy to Clipboard Toggle word wrap

      Cargo (Rust のパッケージマネージャー) のガイドは、/usr/share/doc/cargo/html/index.html にあります。

第2章 Cargo ビルドツール

Cargo は、Rust コンパイラー rustc と、パッケージおよび依存関係マネージャーのビルドツールおよびフロントエンドです。これにより、Rust プロジェクトは、特定のバージョン要件での依存関係の宣言、完全な依存関係グラフの解決、パッケージのダウンロード、プロジェクト全体のビルドとテストが可能となります。

Rust Toolset には、Cargo 1.99.1 が同梱されています。

2.1. Cargo ディレクトリー構造およびファイルの配置

Cargo ビルドツールは、セット規則を使用して Cargo パッケージ内のディレクトリー構造とファイル配置を定義します。cargo new コマンドを実行すると、マニフェストとプロジェクトファイル両方のパッケージディレクトリー構造とテンプレートが生成されます。デフォルトでは、パッケージの root ディレクトリーで新しい Git リポジトリーも初期化します。

バイナリープログラムの場合、Cargo は、Cargo.toml という名前のテキストファイルを含むディレクトリー project_name と、main.rs という名前のテキストファイルを含むサブディレクトリー src を作成します。

2.2. Rust プロジェクトの作成

Cargo の規則に従って設定される新しい Rust プロジェクトを作成します。Cargo の規則に関する詳細は、Cargo ディレクトリー構造およびファイルの配置 を参照してください。

手順

以下のコマンドを実行して Rust プロジェクトを作成します。

  • Red Hat Enterprise Linux 8 の場合

    $ cargo new --bin <project_name>
    Copy to Clipboard Toggle word wrap
    • <project_name> をプロジェクト名に置き換えます。
  • Red Hat Enterprise Linux 9 の場合

    $ cargo new --bin <project_name>
    Copy to Clipboard Toggle word wrap
    • <project_name> をプロジェクト名に置き換えます。
注記

プロジェクトコードを編集するには、メインの実行可能ファイル main.rs を編集し、src サブディレクトリーに新しいソースファイルを追加します。

関連情報

2.3. Rust ライブラリープロジェクトの作成

Cargo ビルドツールを使用して Rust ライブラリープロジェクトを作成するには、次の手順を行います。

手順

Rust ライブラリープロジェクトを作成するには、次のコマンドを実行します。

  • Red Hat Enterprise Linux 8 の場合

    $ cargo new --lib <project_name>
    Copy to Clipboard Toggle word wrap
    • <project_name> を Rust プロジェクトの名前に置き換えます。
  • Red Hat Enterprise Linux 9 の場合

    $ cargo new --lib <project_name>
    Copy to Clipboard Toggle word wrap
    • <project_name> を Rust プロジェクトの名前に置き換えます。
注記

プロジェクトコードを編集するには、src サブディレクトリー内のソースファイル lib.rs を編集します。

2.4. Rust プロジェクトのビルド

Cargo ビルドツールを使用して Rust プロジェクトをビルドします。Cargo は、プロジェクトのすべての依存関係を解決し、不足している依存関係をダウンロードして、rustc コンパイラーを使用してコンパイルします。

デフォルトでは、プロジェクトはデバッグモードでビルドおよびコンパイルされます。リリースモードでのプロジェクトのコンパイルに関する情報は、リリースモードでの Rust プロジェクトのビルド を参照してください。

前提条件

手順

  • Cargo によって管理される Rust プロジェクトを構築するには、プロジェクトディレクトリーで実行します。

    • Red Hat Enterprise Linux 8 の場合

      $ cargo build
      Copy to Clipboard Toggle word wrap
    • Red Hat Enterprise Linux 9 の場合

      $ cargo build
      Copy to Clipboard Toggle word wrap
  • 実行ファイルをビルドする必要がない場合に Rust プログラムをビルドするには、以下を実行します。
$ cargo check
Copy to Clipboard Toggle word wrap

2.5. リリースモードでの Rust プロジェクトのビルド

Cargo ビルドツールを使用して、リリースモードで Rust プロジェクトをビルドします。リリースモードはソースコードの最適化を行うため、コンパイルされたバイナリーの実行速度が速くなる一方で、コンパイル時間を増やすことができます。このモードを使用して、リリースと実稼働環境に適した最適化されたアーティファクトを生成します。
Cargo は、プロジェクトのすべての依存関係を解決し、不足している依存関係をダウンロードして、rustc コンパイラーを使用してコンパイルします。

デバッグモードでプロジェクトをコンパイルする方法は、Rust プロジェクトのビルド を参照してください。

前提条件

手順

  • リリースモードでプロジェクトをビルドするには、以下を実行します。

    • Red Hat Enterprise Linux 8 の場合

      $ cargo build --release
      Copy to Clipboard Toggle word wrap
    • Red Hat Enterprise Linux 9 の場合

      $ cargo build --release
      Copy to Clipboard Toggle word wrap
  • 実行ファイルをビルドする必要がない場合に Rust プログラムをビルドするには、以下を実行します。
$ cargo check
Copy to Clipboard Toggle word wrap

2.6. Rust プログラムの実行

Cargo ビルドツールを使用して Rust プロジェクトを実行します。Cargo はまずプロジェクトを再ビルドし、作成された実行ファイルを実行します。開発中に使用される場合、cargo run コマンドはビルドモードとは独立して出力パスを正しく解決します。

前提条件

手順

Cargo によってプロジェクトとして管理される Rust プログラムを実行するには、プロジェクトディレクトリーで実行します。

  • Red Hat Enterprise Linux 8 の場合

    $ cargo run
    Copy to Clipboard Toggle word wrap
  • Red Hat Enterprise Linux 9 の場合

    $ cargo run
    Copy to Clipboard Toggle word wrap
注記

プログラムがビルドされていない場合、Cargo は実行する前にプログラムをビルドします。

2.7. Rust プロジェクトのテスト

Cargo ビルドツールを使用して Rust プログラムをテストします。Cargo はまずプロジェクトを再ビルドし、次にプロジェクトにあるテストを実行します。テストできるのは、自由で単相的で引数を取らない関数のみであることに注意してください。関数の戻り値のタイプは () または Result<(), E> where E: Error のいずれかでなければなりません。

デフォルトでは、Rust プロジェクトはデバッグモードでテストされています。リリースモードでプロジェクトをテストする方法は、リリースモードでの Rust プロジェクトのテスト を参照してください。

前提条件

手順

  • 関数の前にテスト属性 #[test] を追加します。
  • Cargo が管理する Rust プロジェクトのテストを実行するには、プロジェクトディレクトリーで実行します。

    • Red Hat Enterprise Linux 8 の場合

      $ cargo test
      Copy to Clipboard Toggle word wrap
    • Red Hat Enterprise Linux 9 の場合

      $ cargo test
      Copy to Clipboard Toggle word wrap

2.8. リリースモードでの Rust プロジェクトのテスト

Cargo ビルドツールを使用して、リリースモードで Rust プログラムをテストします。リリースモードはソースコードの最適化を行うため、コンパイルされたバイナリーの実行速度が速くなる一方で、コンパイル時間を増やすことができます。このモードを使用して、リリースと実稼働環境に適した最適化されたアーティファクトを生成します。
Cargo はまずプロジェクトを再ビルドし、次にプロジェクトにあるテストを実行します。テストできるのは、自由で単相的で引数を取らない関数のみであることに注意してください。関数の戻り値のタイプは () または Result<(), E> where E: Error のいずれかでなければなりません。

デバッグモードでプロジェクトをテストする方法は、Rust プロジェクトのテスト を参照してください。

前提条件

手順

  • 関数の前にテスト属性 #[test] を追加します。
  • Cargo が管理する Rust プロジェクトのテストを実行するには、プロジェクトディレクトリーで実行します。

    • Red Hat Enterprise Linux 8 の場合

      $ cargo test --release
      Copy to Clipboard Toggle word wrap
    • Red Hat Enterprise Linux 9 の場合

      $ cargo test --release
      Copy to Clipboard Toggle word wrap

2.9. Rust プロジェクト依存関係の設定

Cargo ビルドツールを使用して Rust プロジェクトの依存関係を設定します。Cargo が管理するプロジェクトの依存関係を指定するには、プロジェクトディレクトリーの Cargo.toml ファイルを編集して、プロジェクトを再ビルドします。Cargo は、Rust コードパッケージとその依存関係のダウンロード、それらのローカルへの保存、依存関係コードパッケージを含むすべてのプロジェクトソースコードのビルド、生成される実行ファイルの実行を行います。

前提条件

手順

  1. プロジェクトディレクトリーで Cargo.toml ファイルを開きます。
  2. セクションラベル [dependencies] に移動します。
    各依存関係は、次の形式で新しい行にリスト表示されます。

    crate_name = version
    Copy to Clipboard Toggle word wrap

    Rust コードパッケージは crates と呼ばれます。

  3. 依存関係を編集します。
  4. 以下を実行してプロジェクトを再構築します。

    • Red Hat Enterprise Linux 8 の場合

      $ cargo build
      Copy to Clipboard Toggle word wrap
    • Red Hat Enterprise Linux 9 の場合

      $ cargo build
      Copy to Clipboard Toggle word wrap
  5. 以下のコマンドを使用してプロジェクトを実行します。

    • Red Hat Enterprise Linux 8 の場合

      $ cargo run
      Copy to Clipboard Toggle word wrap
    • Red Hat Enterprise Linux 9 の場合

      $ cargo run
      Copy to Clipboard Toggle word wrap

2.10. Rust プロジェクトのドキュメントのビルド

Cargo ツールを使用して、抽出用にマークされたソースコードのコメントからドキュメントを生成します。ドキュメントのコメントは、パブリック関数、変数、メンバーに対してのみ抽出されることに注意してください。

前提条件

手順

  • 抽出用のコメントをマークするには、3 つのスラッシュ /// を使用して、ドキュメント化された行頭にコメントを配置します。
    Cargo は、コメントのマークダウン言語をサポートしています。
  • Cargo を使用してプロジェクトのドキュメントをビルドするには、プロジェクトディレクトリーで実行します。

    • Red Hat Enterprise Linux 8 の場合

      $ cargo doc --no-deps
      Copy to Clipboard Toggle word wrap
    • Red Hat Enterprise Linux 9 の場合

      $ cargo doc --no-deps
      Copy to Clipboard Toggle word wrap

生成されたドキュメントは .target/doc ディレクトリーにあります。

WebAssembly 標準ライブラリーをインストールするには、以下の手順を実行します。

前提条件

手順

  • WebAssembly 標準ライブラリーをインストールするには、以下を実行します。

    • Red Hat Enterprise Linux 8 の場合

      # yum install rust-std-static-wasm32-unknown-unknown
      Copy to Clipboard Toggle word wrap
    • Red Hat Enterprise Linux 9 の場合

      # dnf install rust-std-static-wasm32-unknown-unknown
      Copy to Clipboard Toggle word wrap
  • Cargo で WebAssembly を使用するには、以下を実行します。

    • Red Hat Enterprise Linux 8 の場合

      # cargo <command> --target wasm32-unknown-unknown
      Copy to Clipboard Toggle word wrap

      <command> を、実行する Cargo コマンドに置き換えます。

    • Red Hat Enterprise Linux 9 の場合

      # cargo <command> --target wasm32-unknown-unknown
      Copy to Clipboard Toggle word wrap

      <command> を、実行する Cargo コマンドに置き換えます。

2.12. Rust プロジェクトの依存関係のベンダー化

オフライン再分配用に、Rust プロジェクトの依存関係のローカルコピーを作成し、Cargo ビルドツールを使用して再利用します。この手順は、プロジェクトの依存関係のベンダー化と呼ばれます。Windows オペレーティングシステムでプロジェクトをビルドする Rust コードパッケージを含むベンダー化された依存関係は、vendor ディレクトリーにあります。ベンダー化された依存関係は、インターネットに接続せずに Cargo で使用できます。

前提条件

手順

Cargo を使用して依存関係で Rust プロジェクトのベンダーに対して、プロジェクトディレクトリーで実行します。

  • Red Hat Enterprise Linux 8 の場合

    $ cargo vendor
    Copy to Clipboard Toggle word wrap
  • Red Hat Enterprise Linux 9 の場合

    $ cargo vendor
    Copy to Clipboard Toggle word wrap

第3章 rustfmt フォーマットツール

rustfmt フォーマットツールで、Rust プログラムのソースコードを自動的にフォーマットできます。rusftmt は、スタンドアロンツールまたは Cargo で使用できます。

3.1. rustfmt のインストール

rustfmt フォーマットツールをインストールするには、以下の手順を実行します。

前提条件

手順

以下のコマンドを実行して rustfmt をインストールします。

  • Red Hat Enterprise Linux 8 の場合

    # yum install rustfmt
    Copy to Clipboard Toggle word wrap
  • Red Hat Enterprise Linux 9 の場合

    # dnf install rustfmt
    Copy to Clipboard Toggle word wrap

3.2. スタンドアロンツールとしての rustfmt の使用

rustfmt をスタンドアロンツールとして使用し、Rust ソースファイルとそのすべての依存関係をフォーマットします。別の方法として、Cargo ビルドツールで rustfmt を使用します。詳細は、Cargo ビルドツールでの rustfmt の使用 を参照してください。

前提条件

手順

rustfmt をスタンドアロンツールとして使用して Rust ソースファイルをフォーマットするには、以下のコマンドを実行します。

  • Red Hat Enterprise Linux 8 の場合

    $ rustfmt <source-file>
    Copy to Clipboard Toggle word wrap
    • <source_file> をソースファイルの名前に置き換えます。
      <source_file> を標準入力に置き換えることもできます。次に、rustfmt は標準出力に出力を提供します。
  • Red Hat Enterprise Linux 9 の場合

    $ rustfmt <source-file>
    Copy to Clipboard Toggle word wrap
    • <source_file> をソースファイルの名前に置き換えます。
      <source_file> を標準入力に置き換えることもできます。次に、rustfmt は標準出力に出力を提供します。
注記

デフォルトでは、rustfmt は詳細を表示したりバックアップを作成したりせずに、影響を受けるファイルを変更します。詳細を表示してバックアップを作成するには、--write-mode value を指定して rustfmt を実行します。

3.3. Cargo ビルドツールでの rustfmt の使用

Cargo で rustfmt ツールを使用して、Rust ソースファイルとそのすべての依存関係をフォーマットします。
別の方法として、rustfmt をスタンドアロンツールとして使用します。詳細は、スタンドアロンツールとしての rustfmt の使用 を参照してください。

前提条件

手順

Cargo コードパッケージのすべてのソースファイルをフォーマットするには、以下のコマンドを実行します。

  • Red Hat Enterprise Linux 8 の場合

    $ cargo fmt
    Copy to Clipboard Toggle word wrap
  • Red Hat Enterprise Linux 9 の場合

    $ cargo fmt
    Copy to Clipboard Toggle word wrap
注記

rustfmt フォーマットオプションを変更するには、プロジェクトディレクトリーに設定ファイル rustfmt.toml を作成し、設定をファイルに追加します。

第4章 RHEL 8 の Rust Toolset を使用したコンテナーイメージ

RHEL 8 では、Containerfiles を使用して、独自の Rust Toolset コンテナーイメージを Red Hat Universal Base Images (UBI) コンテナー上にビルドできます。

4.1. RHEL 8 での Rust Toolset のコンテナーイメージの作成

RHEL 8 では、Rust Toolset パッケージは、Red Hat Universal Base Images (UBI) リポジトリーの一部です。コンテナーのサイズを小さく保つには、Rust Toolset 全体ではなく、個々のパッケージのみをインストールします。

前提条件

  • 既存の Containerfile がある。
    Containerfiles 作成の詳細は、Dockerfile reference ページを参照してください。

手順

  • Red Hat Container Catalog にアクセスします。
  • UBI を選択します。
  • Get this image をクリックして、指示に従います。
  • Rust Toolset を含むコンテナーを作成するには、以下の行を Containerfile に追加します。
FROM registry.access.redhat.com/ubi8/ubi:latest

RUN yum install -y rust-toolset
Copy to Clipboard Toggle word wrap
  • 個々のパッケージのみを含むコンテナーイメージを作成するには、以下の行を Containerfile に追加します。
RUN yum install <package-name>
Copy to Clipboard Toggle word wrap
  • <package_name> をインストールするパッケージの名前に置き換えます。

第5章 Rust 1.99.1 Toolset の変更点

Rust Toolset が、RHEL 8 および RHEL 9 でバージョン 1.71.1 から 1.75.0 に更新されました。

主な変更点は、以下のとおりです。

  • 定数評価時間が無制限になる
  • よりクリーンなパニックメッセージ
  • Cargo レジストリー認証
  • async fn と特性内の不透明な戻り値のタイプ

法律上の通知

Copyright © 2024 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat