Linux

Comment installer Bazel sur CentOS 8 Linux ou Redhat 8/7

Bazel est un outil de construction, un outil qui peut exécuter, compiler et tester pour assembler des logiciels, tout comme Make, Ant, Gradle, Buck, Pants et Maven. Ici, nous verrons comment installer l'outil de création et de test de logiciels open source Bazel sur CentOS 8 Linux / Stream / RHEL 8.

Qu'est-ce que Bazel?

Bazel est un outil de compilation développé par Google dans le cadre de son initiative open-source, et Bazel utilise la mise en cache distribuée et des méthodes de construction incrémentielle pour accélérer la compilation. Il prend en charge nativement les langages Java et C ++ et dispose actuellement de règles liées à l'open source pour la compilation de projets Golang.

Installer Bazel sur CentOS ou Redhat pour la construction et le test de logiciels

    1. Ouvrez le terminal de commande sur CentOS ou RHEL. Si vous êtes sur le serveur CLI, vous y êtes déjà, cependant, pour l'interface graphique, allez à Activités, et dans le menu, cliquez sur l'icône Terminal.
    2. Connectez-vous en tant qu'utilisateur root ou standard avec accès sudo.
    3. Ajoutez le référentiel Bazel sur CentOS 8/7. Et même pour le Redhat.Pour CentOS 7 ou Redhat 7:
      yum config-manager --add-repo https://copr.fedorainfracloud.org/coprs/vbatts/bazel/repo/epel-7/vbatts-bazel-epel-7.repo

      Pour CentOS 8 Linux ou RHEL 8:

      dnf config-manager --add-repo https://copr.fedorainfracloud.org/coprs/vbatts/bazel/repo/epel-8/vbatts-bazel-epel-8.repo
    4. Commande pour installer Bazel sur CentOS
      dnf install bazel

      or

      miam installer bazel

      Sortie pour la commande:

      [[EMAIL PROTECTED] ~] # dnf install bazel Dernière vérification de l'expiration des métadonnées: il y a 0:00:57 le sam 05 oct. 2019 09:49:22 AM EDT. Dépendances résolues. ================================================== ================================================== =========== Package Arch Version Repository Size ================================== ================================================== =========================== Installation: bazel x86_64 0.29.1-0.el8 copr: copr.fedorainfracloud.org: vbatts: bazel 24 M Installation des dépendances: 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-8.el62 AppStream 2019 k tzdata-java noarch 1a-8.el188 AppStream 11 k xorg-x1-fonts-Type7.5 noarch 19-8.el522 AppStream 86 k lksctp-tools x64_1.0.18 3-8.el100 BaseOS 201801 k Activation des flux de module: javapackages-runtime 10 Résumé des transactions ========================================= = ================================================== ==================== Installer 67 packages Taille totale du téléchargement: 205 M Taille installée: XNUMX M Est-ce correct [o / N]:
    5. Acceptez l'importation de la clé Fedora COPR GPG. presse Y pour l'accepter et poursuivre le processus d'installation de Bazel.Sortie :
      avertissement: /var/cache/dnf/copr:copr.fedorainfracloud.org:vbatts:bazel-df36dce8e0c0e1d6/packages/bazel-0.29.1-0.el8.x86_64.rpm: en-tête V3 RSA / SHA1 Signature, ID clé eb2be214: NOKEY Copr repo pour bazel appartenant à vbatts 285 B / s | 961 B 00:03 Importation de la clé GPG 0xEB2BE214: ID utilisateur: "vbatts_bazel (Aucun) <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. Vérifier la version installée de Bazel
      bazel --version

      Sortie

      bazel 0.29.1
    7. L'installation est réussie. Pour commencer à construire un projet de base, vous pouvez voir le page de tutoriel officielle.

Quelle est la particularité de Bazel?

Bazel est un modèle de développement logiciel conçu pour fonctionner avec Google.

A les caractéristiques suivantes:

Support multilingue: Bazel prend en charge Java, Objective-C et C ++, et peut être étendu pour prendre en charge n'importe quel langage de programmation.

Langage de construction de haut niveau: L'ingénierie est décrite par le langage BUILD. Le langage BUILD décrit un projet composé de plusieurs petites bibliothèques, binaires et programmes de test interdépendants dans un format texte concis. En revanche, des outils comme Make doivent décrire les fichiers individuels et les commandes compilées.

Prise en charge multiplateforme: Le même ensemble d'outils et le même fichier BUILD peuvent être utilisés pour créer des logiciels pour différentes architectures et plates-formes. Chez Google, nous utilisons Bazel pour créer des programmes côté serveur qui s'exécutent sur nos systèmes de centre de données et des applications clientes qui s'exécutent sur des téléphones mobiles.

Reproductibilité: Dans un fichier BUILD, chaque bibliothèque, programme de test et binaire doit spécifier explicitement et explicitement les dépendances directes. Lorsque le fichier de code source est modifié, Bazel utilise ces informations de dépendance pour savoir lesquelles doivent être reconstruites et quelles tâches peuvent être exécutées en parallèle. Cela signifie que toutes les générations sont incrémentielles et peuvent produire les mêmes résultats à chaque fois.

Évolutivité: Bazel peut gérer d'énormes versions; chez Google, un programme côté serveur avec plus de 100k de code source est une chose courante. Si aucun fichier n'est modifié, le processus de génération prend environ 200 ms.

Pourquoi devrais-je utiliser Bazel?

Bazel peut doubler la vitesse de génération car il ne recompile que les fichiers qui doivent être recompilés. De même, il ignore les tests qui n'ont pas été modifiés.

Il produit un résultat déterminé. Cela élimine la différence de résultats de génération entre les versions incrémentielles et propres, les machines de développement et l'intégration continue.

Bazel peut utiliser les mêmes outils sous le même projet pour créer différentes applications client et serveur. Par exemple, vous pouvez modifier un protocole client / serveur dans une validation, puis tester que les programmes mobiles et côté serveur mis à jour fonctionnent correctement, en utilisant les mêmes outils lors de la construction, en utilisant le Bazel mentionné ci-dessus. caractéristique.

A propos de l'auteur

Equipe de rédaction

Ajouter un commentaire

Cliquez ici pour poster un commentaire