Cara menginstal Bazel di CentOS 8 Linux atau Redhat 8/7

Bazel adalah sebuah alat build, alat yang dapat menjalankan, mengkompilasi, dan menguji untuk merakit perangkat lunak, seperti Make, Ant, Gradle, Buck, Pants, dan Maven. Di sini kita akan melihat cara menginstal Bazel open-source software building dan alat pengujian di CentOS 8 Linux / Stream / RHEL 8.

What is Bazel?

Bazel adalah alat kompilasi yang dikembangkan oleh Google di bawah inisiatif sumber terbuka, dan Bazel menggunakan caching terdistribusi dan metode build inkremental untuk membuat kompilasi lebih cepat. Ini secara native mendukung bahasa Java dan C++, dan saat ini memiliki aturan terkait sumber terbuka untuk mengkompilasi proyek Golang.

Instal Bazel di CentOS atau Redhat untuk membangun dan menguji perangkat lunak

    1. Buka command terminal di CentOS atau RHEL. Jika Anda berada di server CLI maka Anda sudah menggunakannya, namun, untuk GUI, buka
      Activities

      , dan dari menu, klik ikon Terminal.

    2. Login sebagai Root atau user standar dengan akses sudo.
    3. Tambahkan repositori Bazel di CentOS 8/7. Dan sama untuk Redhat.
      For CentOS 7 or Redhat 7:
      yum config-manager --add-repo https://copr.fedorainfracloud.org/coprs/vbatts/bazel/repo/epel-7/vbatts-bazel-epel-7.repo

      For CentOS 8 Linux or RHEL 8:

      dnf config-manager --add-repo https://copr.fedorainfracloud.org/coprs/vbatts/bazel/repo/epel-8/vbatts-bazel-epel-8.repo
    4. Perintah untuk menginstal Bazel di CentOS
      dnf install bazel

      atau

      yum install bazel

      Output for the command:

      [[email protected] ~]# dnf install bazel Last metadata expiration check: 0:00:57 ago on Sat 05 Oct 2019 09:49:22 AM EDT. Dependencies resolved. =============================================================================================================== Package Arch Version Repository Size =============================================================================================================== Installing: bazel x86_64 0.29.1-0.el8 copr:copr.fedorainfracloud.org:vbatts:bazel 24 M Installing dependencies: copy-jdk-configs noarch 3.7-1.el8 AppStream 27 k java-11-openjdk x86_64 1:11.0.4.11-0.el8_0 AppStream 227 k java-11-openjdk-devel x86_64 1:11.0.4.11-0.el8_0 AppStream 3.3 M java-11-openjdk-headless x86_64 1:11.0.4.11-0.el8_0 AppStream 39 M javapackages-filesystem noarch 5.3.0-1.module_el8.0.0+11+5b8c10bd AppStream 30 k ttmkfdir x86_64 3.0.9-54.el8 AppStream 62 k tzdata-java noarch 2019a-1.el8 AppStream 188 k xorg-x11-fonts-Type1 noarch 7.5-19.el8 AppStream 522 k lksctp-tools x86_64 1.0.18-3.el8 BaseOS 100 k Enabling module streams: javapackages-runtime 201801 Transaction Summary =============================================================================================================== Install 10 Packages Total download size: 67 M Installed size: 205 M Is this ok [y/N]:
    5. Terima Pengimporan kunci GPG Fedora COPR. tekan
      Y

      untuk menerimanya dan melanjutkan proses instalasi Bazel.

      Output:
      warning: /var/cache/dnf/copr:copr.fedorainfracloud.org:vbatts:bazel-df36dce8e0c0e1d6/packages/bazel-0.29.1-0.el8.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID eb2be214: NOKEY Copr repo for bazel owned by vbatts 285 B/s | 961 B 00:03 Importing GPG key 0xEB2BE214: Userid : "vbatts_bazel (None) <vbatts#[email protected]>" 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. Periksa Versi yang diinstal Bazel
      bazel --version

      OutPut

      bazel 0.29.1
    7. Instalasi berhasil. Untuk mulai membangun beberapa proyek dasar, Anda dapat melihat halaman tutorial resmi.
What is special about Bazel?

Bazel adalah model pengembangan perangkat lunak yang dirancang untuk bekerja dengan Google.

 Has the following characteristics:

Multi-language support:

Bazel mendukung Java, Objective-C dan C++, dan dapat diperluas untuk mendukung bahasa pemrograman apa pun.

High-level build language:

Rekayasa dijelaskan oleh bahasa BUILD. Bahasa BUILD menjelaskan sebuah proyek yang terdiri dari beberapa perpustakaan kecil yang saling terkait, binari, dan program pengujian dalam format teks yang ringkas. Sebaliknya, alat seperti Make perlu menjelaskan file individual dan perintah yang dikompilasi.

Multi-platform support:

Kumpulan alat yang sama dan file BUILD yang sama dapat digunakan untuk membangun perangkat lunak untuk arsitektur dan platform yang berbeda. Di Google, kita menggunakan Bazel untuk membuat program sisi server yang berjalan di sistem pusat data kita dan aplikasi client yang berjalan di ponsel.

Reproducibility:

Dalam file BUILD, setiap perpustakaan, program pengujian, dan biner harus secara eksplisit dan eksplisit menentukan dependensi langsung. Ketika file kode sumber dimodifikasi, Bazel menggunakan informasi ketergantungan ini untuk mengetahui mana yang harus dibangun kembali dan tugas mana yang dapat dijalankan secara paralel. Ini berarti bahwa semua build bersifat inkremental dan dapat menghasilkan hasil yang sama setiap saat.

Scalability:

Bazel dapat menangani bangunan besar; di Google, program sisi server dengan lebih dari 100k kode sumber adalah hal yang umum. Jika tidak ada file yang diubah, proses pembuatan memakan waktu sekitar 200 md.

Why should I use Bazel?

Bazel dapat menggandakan kecepatan build karena hanya mengkompilasi ulang file yang perlu dikompilasi ulang. Demikian pula, ia melewatkan tes yang belum diubah.

Ini menghasilkan hasil yang ditentukan. Ini menghilangkan perbedaan dalam hasil build antara build inkremental dan clean build, engine pengembangan, dan integrasi berkelanjutan.

Bazel dapat menggunakan alat yang sama di bawah proyek yang sama untuk membangun aplikasi client dan server yang berbeda. Misalnya, Anda dapat memodifikasi protokol client/server dalam komit dan kemudian menguji bahwa program seluler dan sisi server yang diperbarui berfungsi dengan baik, menggunakan alat yang sama saat membangun, menggunakan Bazel yang disebutkan di atas. ciri.