RPM: Création d'un dépôt personnel
Le présent article est actuellement en cours de rédaction ou de modification. Adressez-vous à la personne en charge pour toute proposition ou modification. |
Auteur / Editeur : Adadov |
Dernière édition : 15/11/2018 |
Un dépôt personnel devient très utile dés lors qu'on souhaite diffuser des RPM sur plusieurs machines.
Il peut contenir aussi bien des RPM fait maison que des RPM récupérés ailleurs et simplement diffusés ...
On oubliera pas d'installer la nouvelle version d'un RPM sur une machine vu que DNF s'en occupera ...
Structure des dépôts
Pour se laisser la possibilité d'héberger plusieurs dépôt, on va créer un dossier dans /export/repos
dans mon cas je l'ai simplement nommé adadov.
Il faut ensuite créer dans ce dossier l'arborescence qui permettra de séparer les différentes versions de la distribution. J'ai choisi de coller au fonctionnement de Fedora.
Ce qui nous donne la structure suivante:
adadov ├── 27 │ ├── i386 │ └── x86_64 ├── 28 │ ├── i386 │ └── x86_64 └── 29 ├── i386 └── x86_64
SELinux
Les fichiers du dépôt se trouveront dans /export/repos
il faut donc dire à SELinux que ce dossier sera autorisé pour Apache:
[root@linux] # | semanage fcontext -a -t httpd_sys_content_t '/export/repos(/.*)?' | dblclick to copy |
[root@linux] # | restorecon -rv /export/repos |
Création des métadonnées
Une fois les RPM en place, il faut générer les métadonnées pour chaque dépôt que vous souhaitez rendre accessible.
La commande createrepo s'occupe de ça, il suffit de lui passer en paramètre la racine du dépôt.
[root@linux] # | createrepo /export/repos/<chemin_du_repos> | dblclick to copy |
Chaque dossier i386 et x86_64 sera à considérer comme un dépôt séparé. Il faudra donc penser à mettre à jour les métadonnées du dépôt lors d'une modification.
Ce script mettra à jour les métadonnées de chaque dossier nommé i386 ou x86_64.
#!/usr/bin/env bash
find /export/repos -type d -regextype posix-egrep -regex '^.*/(i386|x86_64)$'