Comment créer un référentiel RPM personnalisé sur Linux

Comment créer un référentiel RPM personnalisé sur Linux

RPM est l'acronyme de RPM Package Manager: Il s'agit du gestionnaire de packages de bas niveau utilisé dans toute la famille de distributions Red Hat, telles que Fedora et Red Hat Enterprise Linux.

Un package RPM est un logiciel contenant un package qui est destiné à être installé à l'aide de ce système de gestion des packages, et les packages RPM sont généralement distribués via des référentiels logiciels. Dans ce tutoriel, nous apprenons à créer un référentiel RPM personnalisé et à configurer notre distribution pour l'utiliser comme source logicielle.

Dans ce tutoriel, vous apprendrez:

  • Comment créer un référentiel RPM
  • Comment utiliser le référentiel comme source de logiciel

Exigences et conventions logicielles utilisées

Exigences logicielles et conventions de ligne de commande Linux
Catégorie Exigences, conventions ou version logicielle utilisée
Système Toute distribution de la famille Red Hat
Logiciel DNF, Createrepo
Autre Privilèges administratifs pour configurer le référentiel
Conventions # - nécessite que les commandes Linux sont exécutées avec des privilèges racine soit directement en tant qu'utilisateur racine, soit par l'utilisation de Sudo commande
$ - Exige que les commandes Linux sont exécutées en tant qu'utilisateur non privilégié régulier

Installation du logiciel



Pour le bien de ce tutoriel, nous créerons notre référentiel personnalisé sur une machine locale avec IP 192.168.0.39 qui utilisera comme serveur HTTP. Sur cette machine, la première chose que nous devons faire est d'installer le createrepo emballer. La distribution installée sur la machine distante n'a pas besoin d'être une distribution basée sur RPM elle-même, tant que ledit package est disponible. Dans notre cas, par exemple, le système installé sur le serveur est Debian, donc pour installer le package, nous devons exécuter la commande suivante:

$ sudo apt-get update && sudo apt-get install createpo 

Comme nous l'avons dit précédemment, dans notre exemple spécifique, nous voulons rendre le logiciel hébergé sur notre référentiel personnalisé pour être accessible via le protocole HTTP, nous devons donc installer un serveur HTTP; Dans ce cas, nous travaillerons avec Apache. L'installation sur Debian, ce n'est qu'une question de course:

$ sudo apt-get install apache2 

Une fois les packages installés, nous pouvons procéder et créer notre référentiel RPM en quelques étapes très simples.

Création du référentiel

L'Apache virtualhost par défaut Document de document créé lorsque Apache est installé sur Debian est / var / www / html. À ce stade, nous pouvons choisir de créer un VirtualHost pour notre référentiel, ou simplement créer le répertoire du référentiel dans le cadre
de la par défaut. Par souci de simplicité, dans ce tutoriel, nous explorerons cette dernière option:

$ sudo mkdir / var / www / html / repo 

Le repo répertoire que nous avons créé avec la commande ci-dessus, à l'intérieur du VirtualHost par défaut Document de document, hébergera nos packages et sera la base de notre référentiel. Pour mieux le structurer, nous voulons maintenant créer des sous-répertoires
Nommé d'après la distribution, sa version et l'architecture des packages que nous voulons mettre à disposition. Supposons, par exemple, nous voulons utiliser le référentiel sur Fedora 33 x68_64, Nous devons exécuter la commande suivante:

$ sudo mkdir -p / var / www / html / repo / fedora / sorties / 33 / x86_64 


L'étape suivante consiste à remplir le référentiel. Tout ce que nous avons à faire est de placer les forfaits que nous voulons mettre à disposition, dans le répertoire du référentiel approprié. Dans ce cas, par exemple, je vais remplir le référentiel avec un package obtenu en compilant l'éditeur VScode à partir de la source. Le package est appelé code-1.56.0-1617183449.EL8.x86_64.RPM. Une fois copié, notre structure de fichiers devrait ressembler à celle:

Repo └── Fedora └fique.56.0-1617183449.EL8.x86_64.RPM 

Avec notre référentiel peuplé, tout ce que nous voulons faire est d'exécuter le createrepo commande à l'intérieur du répertoire contenant les packages. Dans ce cas, nous courions:

$ sudo createpo / var / www / html / repo / fedora / sorties / 33 / x86_64 

La commande créera les métadonnées du référentiel à l'intérieur d'un répertoire nommé rapace, Sur la base des packages contenus dans le répertoire de destination et doit être relancée à chaque fois que le référentiel est mis à jour avec de nouveaux packages ou anciens packages est supprimé. Une fois la commande lancée, notre structure de répertoire ressemblera à:

Repo └── Fedora └fique.56.0-1617183449.EL8.x86_64.RPM └fique.xml.GZ ├fique.sqlite.BZ2 ├fique.sqlite.BZ2 ├fique.xml.GZ ├── AF2FA9EA5DEAFFCA5FFC9F3E524155DEFA8CFA5656962845A45C8B0E984F3E19-FileListes.sqlite.BZ2 ├fique.xml.gz └fique.xml 

Notre référentiel a été créé avec succès. Nous devons maintenant configurer notre distribution pour l'utiliser comme source de logiciel.

Ajout du référentiel comme source de logiciel



Passons à notre distribution basée sur RPM et voyons comment la configurer afin d'utiliser notre référentiel personnalisé comme source de logiciel. Les fichiers de configuration du référentiel se trouvent sous le / etc / yum.se soustraire.d répertoire, et doit avoir le
.repo extension. En regardant à l'intérieur du répertoire, nous pouvons voir ceux déjà existants:

$ ls / etc / yum / repos.D Fedora-Cisco-OpenH264.repo fedora met datte testing-modulaire.repo fedora-modulaire.repo fedora-updates-test.repo fedora.repo rpmfusion sans.repo fedora-updates-modulaire.repo rpmfusion sans dates.repo fedora-updates.Repo rpmfusion-libre-updates-test.repo 

Maintenant, créons notre configuration de référentiel personnalisé. À l'intérieur du fichier, comme un ensemble minimum d'informations, nous devons fournir:

  • L'ID du référentiel
  • Le nom du référentiel
  • Une bûcheurl de référentiel
  • Le statut du référentiel
  • Que ce soit pour vérifier la signature GPG des packages ou non

Nous enregistrerons ces informations dans un fichier appelé propriétaire.repo, Voici son contenu:

[OwnRepo] name = propre référentiel BasiseUrl = http: // 192.168.0.39 / repo / fedora / sorties / $ releasever / $ basearch activé = 1 gpgcheck = 0 

La définition rapportée à l'intérieur des supports ([OwnRepo]) est l'ID de référentiel et doit être unique dans toutes les définitions du référentiel. Avec le nom clé, nous avons fourni un nom lisible par l'homme pour le référentiel en tant que chaîne. Ceci est facultatif; Si un nom n'est pas fourni, l'ID de référentiel sera également utilisé comme nom.

Avec le balise clé Nous spécifions une liste des URL du référentiel. Les URL doivent être séparées par un espace ou une virgule. Dans notre exemple, nous venons de fournir une seule URL, mais vous pouvez remarquer que nous y avons utilisé deux variables:

  • $ libéré
  • $ Basearch


L'expansion du premier, $ libéré, entraînera la version de version du système d'exploitation, dans ce cas 33, Puisque nous installons notre référentiel sur un système Fedora 33. La deuxième variable, $ Basearch, sera étendu dans une chaîne représentant l'architecture de base du système, ce qui dans notre cas est x86_64.

Le activé La clé nécessite un booléen valeur qui détermine si le référentiel doit être considéré comme actif ou non. La dernière clé que nous avons utilisée est gpcheck: il nécessite également une valeur booléenne et est utilisé pour déterminer si un contrôle de signature GPG doit être effectué sur les packages installés à partir du référentiel. Dans notre exemple, nous avons simplement désactivé le chèque, car le référentiel est destiné à un usage personnel uniquement.

Maintenant que notre référentiel est configuré, nous pouvons essayer d'installer le code Package à partir de celui-ci, simplement en fonctionnant:

$ sudo dnf installer le code propre référentiel 451 kb / s | 13 kb 00:00 dépendances résolues. ==============================================. ==============================================. ============== Package Architecture Version Repository Taille ============================================== ==============================================. ================================ Installation: code x86_64 1.56.0-1617183449.El8 OwnerRepo 100 m Résumé des transactions ======================================================================================== ==============================================. ==================== Installer 1 package Total Téléchargement Taille: 100 m Taille installée: 294 m est-ce OK [O / N]: 

Une fois que nous avons fourni une réponse affirmative à l'invite et la confirmer, le package sera installé sur notre système.

Conclusions

Dans cet article, nous avons appris à quel point il est facile de créer un référentiel RPM personnalisé avec le createrepo utilitaire, et nous avons vu comment créer un fichier de configuration DNF sur notre distribution pour l'utiliser une source logicielle. Nous avons vu un sous-ensemble minimal de
les touches qui peuvent être utilisées dans la configuration du référentiel; Pour une liste plus détaillée, vous pouvez consulter la documentation officielle du DNF.

Tutoriels Linux connexes:

  • Choses à installer sur Ubuntu 20.04
  • Une introduction à l'automatisation Linux, des outils et des techniques
  • Choses à faire après l'installation d'Ubuntu 20.04 Focal Fossa Linux
  • Téléchargement Linux
  • Mint 20: Mieux que Ubuntu et Microsoft Windows?
  • Linux peut-il obtenir des virus? Exploration de la vulnérabilité de Linux…
  • Masterring Bash Script Loops
  • Choses à faire après l'installation d'Ubuntu 22.04 Jammy Jellyfish…
  • Ubuntu 20.04 astuces et choses que vous ne savez peut-être pas
  • Choses à installer sur Ubuntu 22.04