リナックス

CentOS 8 LinuxまたはRedhat 8/7にBazelをインストールする方法

ブランク

Bazelは、Make、Ant、Gradle、Buck、Pants、Mavenのように、ソフトウェアを実行するための実行、コンパイル、テストが可能なビルドツールです。 ここでは、CentOS 8 Linux / Stream / RHEL 8にBazelオープンソースソフトウェア構築およびテストツールをインストールする方法を説明します。

バゼルとは何ですか?

Bazelは、Googleがオープンソースイニシアチブで開発したコンパイルツールであり、Bazelは分散キャッシュとインクリメンタルビルドメソッドを使用してコンパイルを高速化します。 JavaおよびC ++言語をネイティブでサポートしており、現在Golangプロジェクトをコンパイルするためのオープンソース関連のルールがあります。

ソフトウェアのビルドとテストのために、CentOSまたはRedhatにBazelをインストールします

    1. CentOSまたはRHELでコマンドターミナルを開きます。 CLIサーバーを使用している場合は、既にGUIを使用しているため、 アクティビティ、メニューからターミナルアイコンをクリックします。
    2. ルートまたはsudoアクセスを持つ標準ユーザーとしてログインします。
    3. CentOS 8/7にBazelリポジトリを追加します。 Redhatについても同じです。CentOS 7またはRedhat 7の場合:
      yum config-manager --add-repo https://copr.fedorainfracloud.org/coprs/vbatts/bazel/repo/epel-7/vbatts-bazel-epel-7.repo

      CentOS 8 LinuxまたはRHEL 8の場合:

      dnf config-manager --add-repo https://copr.fedorainfracloud.org/coprs/vbatts/bazel/repo/epel-8/vbatts-bazel-epel-8.repo
    4. CentOSにBazelをインストールするコマンド
      dnfインストールバゼル

      or

      yum install bazel

      コマンドの出力:

      [[電子メールが保護された] 〜]#dnf install bazel最後のメタデータ有効期限チェック:0年00月57日土曜日の05:2019:09午前49:22:86 EDT。 依存関係が解決されました。 ================================================== ================================================== ===========パッケージアーチバージョンリポジトリサイズ================================== ================================================== ===========================インストール:bazel x64_0.29.1 0-8.el24 copr:copr.fedorainfracloud.org:vbatts:bazel 3.7 M依存関係のインストール:copy-jdk-configs noarch 1-8.el27 AppStream 11 k java-86-openjdk x64_1 11.0.4.11:0-8.el0_227 AppStream 11 k java-86-openjdk-devel x64_1 11.0.4.11:0- 8.el0_3.3 AppStream 11 M java-86-openjdk-headless x64_1 11.0.4.11:0-8.el0_39 AppStream 5.3.0 M javapackages-filesystem noarch 1-8.0.0.module_el11 + 5 + 8b10c30bd AppStream 86 k ttmkfdir x64_3.0.9 54。 8-62.el2019 AppStream 1 k tzdata-java noarch 8a-188.el11 AppStream 1 k xorg-x7.5-fonts-Type19 noarch 8-522.el86 AppStream 64 k lksctp-tools x1.0.18_3 8-100.el201801 BaseOS 10 kモジュールストリームを有効にする:javapackages-runtime 67 Transaction Summary ======================================== = ================================================== ==================== 205個のパッケージをインストールする合計ダウンロードサイズ:XNUMX Mインストールサイズ:XNUMX Mこれでいいですか[y / N]:
    5. Fedora COPR GPGキーのインポートを受け入れます。 押す Y キーを受け入れて、Bazelのインストールプロセスを続行します。出力:
      警告:/var/cache/dnf/copr:copr.fedorainfracloud.org:vbatts:bazel-df36dce8e0c0e1d6/packages/bazel-0.29.1-0.el8.x86_64.rpm:ヘッダーV3 RSA / SHA1シグネチャ、キーID eb2be214: vbatts 285 B / sが所有するバゼルのNOKEY Coprリポジトリ| 961 B 00:03 GPGキー0xEB2BE214のインポート:ユーザーID: "vbatts_bazel(なし)<vbatts#[電子メールが保護された]>"
      Fingerprint: 090F 9C8B BDB6 3200 807E 16C2 978A 4B98 EB2B E214
      From : https://copr-be.cloud.fedoraproject.org/results/vbatts/bazel/pubkey.gpg
      Is this ok [y/N]: y
      Key imported successfully
      Running transaction check
      Transaction check succeeded.
      Running transaction test
      Transaction test succeeded.
      Running transaction
      Running scriptlet: copy-jdk-configs-3.7-1.el8.noarch 1/1
      Running scriptlet: java-11-openjdk-headless-1:11.0.4.11-0.el8_0.x86_64 1/1
      Preparing : 1/1
      Installing : lksctp-tools-1.0.18-3.el8.x86_64 1/10
      Running scriptlet: lksctp-tools-1.0.18-3.el8.x86_64 1/10
      Installing : tzdata-java-2019a-1.el8.noarch 2/10
      Installing : ttmkfdir-3.0.9-54.el8.x86_64 3/10
      Installing : xorg-x11-fonts-Type1-7.5-19.el8.noarch 4/10
      Running scriptlet: xorg-x11-fonts-Type1-7.5-19.el8.noarch 4/10
      Installing : javapackages-filesystem-5.3.0-1.module_el8.0.0+11+5b8c10bd.noarch 5/10
      Installing : copy-jdk-configs-3.7-1.el8.noarch 6/10
      Installing : java-11-openjdk-headless-1:11.0.4.11-0.el8_0.x86_64 7/10
      Running scriptlet: java-11-openjdk-headless-1:11.0.4.11-0.el8_0.x86_64 7/10
      Installing : java-11-openjdk-1:11.0.4.11-0.el8_0.x86_64 8/10
      Running scriptlet: java-11-openjdk-1:11.0.4.11-0.el8_0.x86_64 8/10
      Installing : java-11-openjdk-devel-1:11.0.4.11-0.el8_0.x86_64 9/10
      Running scriptlet: java-11-openjdk-devel-1:11.0.4.11-0.el8_0.x86_64 9/10
      Installing : bazel-0.29.1-0.el8.x86_64 10/10
      Running scriptlet: copy-jdk-configs-3.7-1.el8.noarch 10/10
      Running scriptlet: java-11-openjdk-1:11.0.4.11-0.el8_0.x86_64 10/10
      Running scriptlet: java-11-openjdk-devel-1:11.0.4.11-0.el8_0.x86_64 10/10
      Running scriptlet: bazel-0.29.1-0.el8.x86_64 10/10
      Verifying : copy-jdk-configs-3.7-1.el8.noarch 1/10
      Verifying : java-11-openjdk-1:11.0.4.11-0.el8_0.x86_64 2/10
      Verifying : java-11-openjdk-devel-1:11.0.4.11-0.el8_0.x86_64 3/10
      Verifying : java-11-openjdk-headless-1:11.0.4.11-0.el8_0.x86_64 4/10
      Verifying : javapackages-filesystem-5.3.0-1.module_el8.0.0+11+5b8c10bd.noarch 5/10
      Verifying : ttmkfdir-3.0.9-54.el8.x86_64 6/10
      Verifying : tzdata-java-2019a-1.el8.noarch 7/10
      Verifying : xorg-x11-fonts-Type1-7.5-19.el8.noarch 8/10
      Verifying : lksctp-tools-1.0.18-3.el8.x86_64 9/10
      Verifying : bazel-0.29.1-0.el8.x86_64 10/10
      
      Installed:
      bazel-0.29.1-0.el8.x86_64
      copy-jdk-configs-3.7-1.el8.noarch
      java-11-openjdk-1:11.0.4.11-0.el8_0.x86_64
      java-11-openjdk-devel-1:11.0.4.11-0.el8_0.x86_64
      java-11-openjdk-headless-1:11.0.4.11-0.el8_0.x86_64
      javapackages-filesystem-5.3.0-1.module_el8.0.0+11+5b8c10bd.noarch
      ttmkfdir-3.0.9-54.el8.x86_64
      tzdata-java-2019a-1.el8.noarch
      xorg-x11-fonts-Type1-7.5-19.el8.noarch
      lksctp-tools-1.0.18-3.el8.x86_64
      
      Complete!
    6. Bazelのインストールバージョンを確認する
      バゼル-バージョン

      出力

      バゼル0.29.1
    7. インストールが成功しました。 基本的なプロジェクトの構築を開始するには、 公式チュートリアルページ.

Bazelの特別な点は何ですか?

Bazelは、Googleと連携するように設計されたソフトウェア開発モデルです。

次のような特徴があります。

多言語サポート: BazelはJava、Objective-C、C ++をサポートし、任意のプログラミング言語をサポートするように拡張できます。

高レベルのビルド言語: エンジニアリングはBUILD言語で記述されます。 BUILD言語は、相互に関連する複数の小さなライブラリ、バイナリ、およびテストプログラムで構成されるプロジェクトを簡潔なテキスト形式で記述します。 対照的に、Makeのようなツールは、個々のファイルとコンパイルされたコマンドを記述する必要があります。

マルチプラットフォームのサポート: 同じツールセットと同じBUILDファイルを使用して、異なるアーキテクチャとプラットフォーム用のソフトウェアを構築できます。 Googleでは、Bazelを使用して、データセンターシステムで実行されるサーバー側プログラムと、携帯電話で実行されるクライアントアプリケーションを構築しています。

再現性: BUILDファイルでは、各ライブラリ、テストプログラム、およびバイナリは直接依存関係を明示的および明示的に指定する必要があります。 ソースコードファイルが変更されると、Bazelはこの依存関係情報を使用して、再構築する必要があるものと並行して実行できるタスクを特定します。 これは、すべてのビルドがインクリメンタルであり、毎回同じ結果を生成できることを意味します。

スケーラビリティ: Bazelは巨大なビルドを処理できます。 Googleでは、100k以上のソースコードを持つサーバー側プログラムが一般的です。 ファイルが変更されていない場合、ビルドプロセスには約200ミリ秒かかります。

バゼルを使用する理由

Bazelは、再コンパイルが必要なファイルのみを再コンパイルするため、ビルド速度をXNUMX倍にすることができます。 同様に、変更されていないテストをスキップします。

決定された結果を生成します。 これにより、インクリメンタルビルドとクリーンビルド、開発マシン、および継続的インテグレーションのビルド結果の違いがなくなります。

Bazelは、同じプロジェクトで同じツールを使用して、異なるクライアントおよびサーバーアプリケーションを構築できます。 たとえば、コミットでクライアント/サーバープロトコルを変更し、上記のBazelを使用して、ビルド時に同じツールを使用して、更新されたモバイルおよびサーバー側プログラムが適切に動作することをテストできます。 特性。

著者について

ブランク

編集スタッフ

コメントを追加

コメントを投稿するにはここをクリックしてください