# CENTOS: Construire des paquets RPM avec Mock {{INLINETOC}} mock est un outil de construction de paquetages RPM que l'on peut utiliser pour créer des packages pour différentes versions de CentOS/Red Hat et de Fedora. Le principal avantage de l'utilisation de mock pour créer des RPM est que rpmbuild des RPM dans l'environnement système d'exécution. mock le fait en créant un chroot et en effectuant la construction de RPM dans le chroot. Cet article explique comment configurer une maquette et comment créer des RPM à l'aide de celle-ci. # Pré requis ## Installer et configurer mock Installer mock et placer l'utilisateur dans le groupe de mock. ## préparer le RPM source à construire. mock construit des RPM binaires à partir des RPM sources. Donc, avant de pouvoir construire, on doit soit générer un RPM source, soit télécharger le RPM source du paquet que l'on souhaite construire. Pour générer un RPM source, il faut écrire un fichier Spec puis créer une SRPM à partir du fichier Spec à l'aide de rpmbuild : $ rpmbuild -bs mypackage.spec # Construire un RPM avec mock ## Les fichiers de configuration de mock Lors de l'exécution de mock, on doit spécifier un fichier de configuration à utiliser lors de la génération du chroot et de l'exécution de la construction. Les fichiers de configuration fictifs spécifient l'architecture de la CPU et la version Linux du chroot. Les fichiers de configuration fictifs résident dans /etc/mock/ , par exemple: $ ls -alhrt /etc/mock/epel-* -rw-r--r-- 1 root mock 1.7K Feb 13 02:58 /etc/mock/epel-7-x86_64.cfg -rw-r--r-- 1 root mock 1.5K Feb 13 02:58 /etc/mock/epel-6-x86_64.cfg -rw-r--r-- 1 root mock 1.3K Feb 13 02:58 /etc/mock/epel-6-ppc64.cfg -rw-r--r-- 1 root mock 1.5K Feb 13 02:58 /etc/mock/epel-6-i386.cfg -rw-r--r-- 1 root mock 1.6K Feb 13 02:58 /etc/mock/epel-5-x86_64.cfg -rw-r--r-- 1 root mock 1.6K Feb 13 02:58 /etc/mock/epel-5-ppc.cfg -rw-r--r-- 1 root mock 1.6K Feb 13 02:58 /etc/mock/epel-5-i386.cfg Il existe des fichiers de configuration permettant de créer des RPM sous x86_64, PowerPC et i386 pour Red Hat et CentOS 5, 6 et 7. Les exemples dans les sections suivantes utilisent le fichier de configuration CentOS/Red Hat 7 x86_64, mais tout autre fichier de configuration peut être utilisé à la place. ## Initialiser et supprimer le faux chroot Initialiser le faux chroot avant d'effectuer la première construction. Mock va réutiliser le chroot de base après son initialisation. Cela aide à réduire le temps de construction. Pour initialiser le chroot pour epel-7-x86_64 exécuter la commande suivante: $ mock -r epel-7-x86_64 --init De même, on peut supprimer le chroot en exécutant la commande: $ mock -r epel-7-x86_64 --clean ## Effectuer la construction Effectuer la construction en lançant: $ mock -r epel-7-x86_64 rebuild package-1.1-1.src.rpm La construction peut prendre un certain temps si on n'a pas déjà initialisé un chroot CentOS/ Hat 7. Une fois la construction terminée, on trouvera les résultats et les journaux dans /var/lib/mock/epel-7-x86_64/result . On peut modifier le répertoire dans lequel les RPM sont écrits en passant l'option --resultdir à mock.