Feutre

C Développement sur Linux - Emballage pour Debian et Fedora - xi.

C Développement sur Linux - Emballage pour Debian et Fedora - xi.

Introduction

Vous êtes déjà au courant du langage de programmation C. Vous en avez le goût et vous aviez l'impression de vouloir aller plus loin et écrire le vôtre. Ou peut-être aider la communauté et l'emballage de votre logiciel préféré pour la distribution que vous aimez et utilisez. Quelle que soit la situation, cette partie de la série de développement C vous montrera comment créer des packages pour deux des distributions les plus populaires, Debian et Fedora. Si vous lisez nos articles jusqu'à présent et que vous avez une solide connaissance de la ligne de commande, et vous pouvez dire que vous connaissez votre distribution de choix, vous êtes prêt.

Avant d'aller plus loin…

Écartons des concepts et des idées générales, juste pour nous assurer que nous sommes sur la même longueur d'onde. Ce que nous allons décrire ici est disponible quel que soit le projet pour lequel vous décidez d'emballer (ou de contribuer), que ce soit Arch, NetBSD ou Opensolaris. L'idée est: soyez prudent. Vérifiez le code, que ce soit le vôtre ou non, et assurez-vous que vous vous souvenez que peut-être que beaucoup de gens utiliseront votre code. Vous avez une responsabilité entre vos mains, et un assez grand. Si vous en doutez, les lieux inversés une seconde: un mainteneur de package ne fait pas attention lors de l'inspection du code et d'un bug sournois, mais un grave bug se dirige vers votre ordinateur. Il est sournois, car il ne se manifeste que sur certains matériels et dans certaines situations, mais il est assez grave pour supprimer tous les fichiers résidant dans votre dossier à domicile. Vous avez cette combinaison exacte de matériel et de chaos s'ensuit, car vous avez oublié d'écrire à DVD ces photos de vos vacances. Vous vous fâchez, votre première réaction est de manifester un sentiment négatif envers le système d'exploitation (ou la distribution) et donc, après votre décision de modifier immédiatement les distributions, cette distribution perd un utilisateur, tout cela parce que le manque d'attention et de minutie d'une personne d'une personne.

Debian

Compte tenu de l'excellente documentation de Debian, nous ne pourrons pas couvrir tous les choses dont on a besoin pour devenir développeur. Après tout, ce n'est pas ce que nous voulions. Ce que nous voulions, c'est vous montrer essentiellement comment passer d'un tarball à un .deb. Devenir un développeur Debian prend beaucoup de temps et vous implique d'aider la communauté via IRC ou des listes de diffusion, des rapports et des aides à la réparation des bogues, etc., donc ce n'est pas l'objet de notre article. Jetez un œil à la documentation que le projet prévoit plus d'informations. La politique Debian, le guide du nouveau maintener et la référence du développeur sont plus que importants pour le démarrage, ils doivent être comme une sorte de livre avec lequel vous dormez sous l'oreiller avec.

Votre premier arrêt devrait être, comme indiqué ci-dessus, la politique, où vous devez vous familiariser avec la hiérarchie du système de fichiers, les archives, les champs d'un fichier de contrôle et des éléments spécifiques à retenir concernant les différentes catégories de logiciels: binaires, bibliothèques, source, jeux, documentation,… rappelez-vous qu'un .Le fichier DEB n'est rien d'autre qu'une archive, et il est composé de deux parties: la partie de contrôle, avec le fichier de contrôle et les scripts d'installation / de désinstallation, et la charge utile, où les fichiers à installer résident réside. Ce n'est pas aussi difficile que l'on pense que c'est. C'est une très bonne idée que vous téléchargez un .Fichier Deb, encore mieux s'il emballe des logiciels que vous connaissez et commencez à chercher à l'intérieur pour voir ce que. [Indice] - Vous pouvez utiliser le fichier de contrôle pour créer le vôtre, tant que vous êtes prudent. Par exemple, prenons vim. Les fichiers DEB ne sont que des archives AR (1), ils peuvent donc simplement être déballés en utilisant la commande Linux suivante:

 $ ar vx vim-nox_7.3.547-5_AMD64.deb 

Bien sûr, V signifie Verbose, et X signifie extrait. Après cette opération, nous verrons trois fichiers: contrôle.le goudron.gz, données.le goudron.XZ et un petit fichier texte appelé Debian-Binary, qui n'est rien d'autre qu'un fichier disant DPKG, le gestionnaire de package Debian, quel format binaire est utilisé. Mais ce n'est aucun intérêt pour le moment. L'archive de données n'est pas non plus, qui se compose des fichiers qui doivent être déballés sur votre système: les pages binaires, manuelles, les bibliothèques, etc., selon le logiciel dont nous parlons. Les archives de contrôle sont de la plus haute importance ici. Si vous le déballer, vous verrez le fichier essentiel, nommé Control, le MD5Sums des fichiers à installer et deux scripts, l'un qui prend soin des problèmes d'installation et l'autre qui s'occupe de la pré-reménagement. Puisque nous avions Yest comme exemple logiciel, prenons-le et voyons à quoi ressemblerait le fichier de contrôle. C'est à vous de décider, cher lecteur, si vous avez besoin de ces deux scripts et si oui, comment devraient-ils être modifiés. Voici donc un fichier de contrôle, pris à Vim-Nox et modifié pour Yest.

Package: Yest Source: Yest Version: 2.7.0.5 Architecture: AMD64 HEntellerner: Rares Aioanei Installed-Size: 40355 dépend: libc6 (> = 2.11) suggère: Fourni: Section Yest: Autre priorité: page d'accueil normale: sourceforge.Net / Projects / Yest Description: Ceci est un programme de manipulation et de formatage de date de commande de ligne de commande, très utile dans les scripts. Vous pouvez facilement ajouter ou soustraire des jours, des heures et / ou des minutes à partir d'une date spécifiée. Prend en charge tous les formats de sortie de la date (1) plus. 

Vous y allez, les amis. Pensez-vous qu'il y a autre chose dont vous avez besoin pour créer un package? Vérifiez si tous vos fichiers sont en place, alors vous pouvez utiliser une méthode plus ancienne, d'autant plus que le logiciel est petit et simple et inquiet, si de tels mots existent.

 $ dpkg -b yestdir yest.deb 

Maintenant, beaucoup de gens me diront, et j'ai hâte, bien sûr, que ce soit une ancienne méthode de faire et ainsi de suite. Et ils ont raison. Je suggère de regarder à travers le dpkg-buildpackage Page manuelle, ainsi que Lintan pour vérifier la qualité de votre .Deb, et n'oubliez pas de le faire avant de démarrer quoi que ce soit, vous pouvez donc vous assurer que tout cela installé:

 # APT-Get Installer Build-Essential AutoConf Automake Autotools-Dev Dh-Make Debhelper DevScripts Fakeroot Xutils Lintian Pbuilder 

Feutre

À mon avis, Fedora / Red Hat facilite l'emballage des gens par rapport à Debian et des dérivés. Cela étant dit, plus facile ne signifie pas toujours mieux, du moins dans le monde informatique. Vous pourrez faire un avis instruit après cet article, nous espérons.

Encore une fois, assurez-vous que tous les outils sont installés, ce qui peut être fait en tapant ceci:

 # yum install @ development-tools fedora-packager 

Créez maintenant un utilisateur nommé makerpm, Assurez-vous qu'il est dans le groupe simulé et attribuez un mot de passe:

 # userAdd -m -g simule Makerpm && Passwd Makerpm 

Connectez-vous en tant qu'utilisateur et émettez la commande

 $ rpmdev-setuptree 

dans le répertoire de la maison. Vous verrez, après la commande de la commande, une nouvelle structure de répertoire nommée RPMBuild. Prenez le temps de l'examiner et de déterminer les objectifs de chaque répertoire et de fichier. Maintenant, tout comme Debian utilise les fichiers de contrôle, Fedora utilise SpecFiles. Ils sont appelés comme c'est le cas parce qu'ils ont le .Extension de spécification, donc l'utilisateur sait qu'il spécifie les paramètres de la construction de packages: version, nom, auteur, mainteneur, dépend, etc. Quoi qu'il en soit, je deviens de l'avance sur moi. Commençons comme nous l'avons fait auparavant et téléchargez un package source (encore une fois Vim, pour la cohérence) pour voir où est où. Pour cela, il faut installer le package Yum-Utils, qui propose Yumdownloader:

 $ yumdownloader - 

Maintenant, pour installer dans ~ / rpmbuild, nous tapons

 $ rpm -ivh vim-enhancé […].SRC.RPM 

N'oubliez pas qu'un fichier RPM est une archive, tout comme .Les fichiers DEB sont. La différence est le format: tandis que Debian utilise AR, Fedora / RH utilise CPIO comme format de choix. Sachant cela, quelle serait la méthode à utiliser pour déballer manuellement .RPM?

Vous avez peut-être remarqué qu'il existe un répertoire nommé Spécifications dans votre ~ / rpmbuild. CD à lui et créez un fichier à l'aide de VIM ou EMACS, un fichier nommé orest.spécifier. Vous serez agréablement surpris de constater que ces deux éditeurs sont modifiés par Fedora de manière à vous offrir un «squelette» d'un spécifile (tant que le fichier que vous souhaitez créer a le .. Maintenant, votre affectation est, sur la base du fichier de contrôle ci-dessus et de vos connaissances jusqu'à présent, pour rédiger un SpecFile complet pour Yest et, bien sûr, en créer un régime. . Nous ne vous aiderons qu'avec le bâtiment et la vérification réels du colis. Bref, utilisez Yest.Les spécifications sont un argument à RPMLINT pour vérifier la conformité du fichier avec les directives de l'emballage Fedora, puis, lorsque tout s'avère être en ordre, et après avoir lu le manuel RPMBUILD, faites quelque chose comme ceci:

 $ rpmbuild -ba yest.spécifier 

Les options données à RPMBuild représentent «Build All», mais vous pouvez également créer uniquement le package source, en utilisant -BS. N'oubliez pas que Mock et Koji sont deux outils très utiles, et n'oubliez pas que RPMlint est votre billet pour des spécifiles de qualité.

Conclusion

Une chose à retenir est que si vous avez créé le logiciel que vous emballez ou non, le mainte-tension est très important, parfois encore plus important que l'acte de création lui-même. Alors assurez-vous de savoir quelle responsabilité vous assumez sur vous-même: si vous n'êtes pas prêt à donner du temps, il vaut mieux que vous ne commenciez pas du tout, ou assurez-vous de pouvoir donner le colis à quelqu'un d'autre pour maintenir. Nous espérons que vous avez apprécié notre petite visite de Linux Packaging.

Tous les articles de cette série:

Soumission de formulaire HTML automatique à l'aide de wwwmecanize
Voici un court astuce sur la façon de soumettre automatiquement un formulaire HTML à l'aide d'une ligne de commande Linux et d'un script Perl. Pour ce...
Définir et récupérer un cookie en utilisant Perl et CGI
Il existe plusieurs paramètres qui peuvent être définis lors de la création d'un cookie. Cela ne s'applique pas uniquement à Perl et CGI mais à tous l...
Page chmod- manuelle
Nom Chmod - Modifier les bits de mode de fichier Synopsis Chmod [Option]… Mode [, mode]… Fichier… Chmod [Option]… Fichier en mode octal… Chmod [Option...