Programme de création de packages deb. Création de packages RPM ou DEB avec Checkinstall sous Linux

Maison / Systèmes d'exploitation

le fichier deb est une archive au format ar contenant fichiers d'installation programmes, des informations sur le programme, ainsi que des scripts ( fichiers batch), effectué avant et après l'installation et la désinstallation du programme (la présence de scripts n'est pas obligatoire - ils peuvent ne pas faire partie du package).

Le format de fichier deb est décrit dans les pages de manuel deb(5) - cette aide s'affiche si vous tapez man deb dans un terminal. Il existe également de nombreuses pages sur Internet contenant ces informations - il suffit de rechercher deb(5) pour les trouver. Ce guide n'est pas inclus ici car le Guide officiel du développeur Debian, Aide sur le format de paquet (qui, au moment de la rédaction de ce guide, se trouve à l'adresse http://www.debian.org/doc/manuals/debian-faq/ch-pkg_basics. en.html), il est écrit que le format des packages peut changer, et il est donc recommandé d'utiliser l'utilitaire dpkg-deb pour travailler avec eux. De l'aide sur l'utilisation de l'utilitaire dpkg-deb peut être obtenue en tapant la commande man dpkg-deb dans le terminal.

Le programme GUI-deb fonctionne en créant un répertoire contenant les données nécessaires et en exécutant le programme dpkg-deb, en spécifiant ce répertoire et d'autres paramètres nécessaires.

Le répertoire correct pour que dpkg-deb crée un package d'installation doit d'abord contenir un sous-répertoire "DEBIAN". Ce répertoire doit contenir toutes les données qui ne sont pas copiées sur le système, mais utilisées directement par les programmes pour travailler avec des packages - informations sur le package, scripts exécutés avant et après l'installation, etc. Aucun fichier contenu dans le répertoire DEBIAN ne sera ajouté au système de fichiers de l'ordinateur sur lequel le package est installé lors de l'installation du package.

En dehors du répertoire "DEBIAN" contient les fichiers qui seront copiés dans le système de fichiers de l'ordinateur sur lequel le package sera installé. Les fichiers doivent se trouver dans les répertoires dans lesquels ils seront placés lors de l'installation du package. Autrement dit, dans le répertoire créé pour dpkg-deb, une copie des parties du système de fichiers dont nous avons besoin devrait être créée - comme si ce répertoire était sa racine ("/"). C'est-à-dire, par exemple, si le nom du répertoire sur la base duquel le package sera créé est « ~/TMP_DEBS/MyProgram », et il est nécessaire que lors de l'installation dans système de fichiers le fichier "MyProgram.png" a été écrit dans le répertoire "/usr/share/pixmaps" - vous devez créer un répertoire "usr" dans le répertoire "~/TMP_DEBS/MyProgram", dans celui-ci - un répertoire "share", à l'intérieur de "share" - un répertoire "pixmaps" ", et placez le fichier "MyProgram.png" dans le répertoire "pixmaps". Par conséquent, le chemin complet du fichier sera "~/TMP_DEBS/MyProgram/usr/share/pixmaps/MyProgram.png". Lors de la création d'un package, une partie du répertoire "~/TMP_DEBS/MyProgram" sera coupée, et lors de l'installation le fichier "MyProgram.png" se retrouvera à l'adresse souhaitée "/usr/share/pixmaps". Ainsi, les répertoires nécessaires doivent être créés pour chaque fichier.

Après avoir créé le répertoire, il ne reste plus qu'à exécuter dpkg-deb en passant les paramètres nécessaires. Les paramètres dpkg-deb les plus nécessaires pour créer des packages sont décrits dans la section « Paramètres de ligne de commande pour l'utilitaire dpkg-deb ». S'il n'y a aucune erreur dans le fichier de contrôle, le package d'installation sera créé.

Créez une liste de packages :

$dpkg-scanpackages. /dev/null | gzip -9c > ./Packages.gz
Nous pourrions recevoir un message du type :

Dpkg-scanpackages : avertissement : paquets dans l'archive mais manquants dans le fichier de remplacement : dpkg-scanpackages : avertissement : fossil linux-headers-3.8.0-avl9-pae linux-image-3.8.0-avl9-pae pdfsam sublimetext virtualbox-4.2 xserver -xorg-input-wacom zotero dpkg-scanpackages : info : écriture de 8 entrées dans le fichier Packages de sortie.
Il y a maintenant 8 packages dans notre référentiel. Super, ajoutons notre référentiel au fichier :

ligne comme :

Fichier Deb:///home/username/zips/virensdebianrepository ./
Vous devez maintenant mettre à jour la liste des packages afin qu'ils soient disponibles pour l'installation :

Ça y est, vous pouvez maintenant installer, par exemple, l'éditeur de texte fraîchement assemblé Sublime Text 2 (excellentes instructions là-bas) comme toujours : Maintenant, pour installer SublimeText, faites simplement :
# apt-get install sublimetext

Lecture des listes de packages... Terminé Construction de l'arborescence des dépendances Lecture des informations sur l'état... Terminé Les NOUVEAUX packages suivants seront installés : sublimetext 0 mis à niveau, 1 nouvellement installé, 0 à supprimer et 245 non mis à niveau.

Besoin d'obtenir 0 B/11,4 Mo d'archives.

Après cette opération, 17,4 Mo d'espace disque supplémentaire seront utilisés.

AVERTISSEMENT : les packages suivants ne peuvent pas être authentifiés ! sublimetext Installer ces paquets sans vérification ? Y Sélection du package sublimetext précédemment désélectionné.(Lecture de la base de données... 247813 fichiers et répertoires actuellement installés.) Déballage de sublimetext (depuis ..././sublimetext_2.0.2_i386.deb)... Configuration de sublimetext (2.0.2)... Ça y est, le package sera décompressé et installé, et le fait qu'il provienne du référentiel local peut être vu ici : (à partir de ..././sublimetext_2.0.2_i386.deb)

Conclusion

Les recettes décrites dans cet article sont des repas rapides, pas du foie gras aux truffes. Pour les dépôts volumineux ou les packages complexes, vous devrez quand même lire la documentation et les manuels. Vous pouvez également utiliser un programme capable non seulement de créer des référentiels, mais également de les graver sur des disques CD/DVD.

Un merci spécial au camarade.
flux cérébral

, qui a signalé un bug dans le message concernant le rendu de l'environnement PRE. Cela se produit lorsque vous faites confiance aux métiers Haskell comme Pandoc :-)

Les recettes décrites dans cet article sont des repas rapides, pas du foie gras aux truffes. Pour les dépôts volumineux ou les packages complexes, vous devrez quand même lire la documentation et les manuels. Vous pouvez également utiliser un programme capable non seulement de créer des référentiels, mais également de les graver sur des disques CD/DVD.

Oui, si vous avez quelque chose à ajouter, écrivez dans les commentaires, mais gardez à l'esprit qu'il s'agit d'un article rapide, sans qu'il soit nécessaire de relire les directives d'empaquetage Debian et d'autres principes de physique quantique.
Commentaires anonymes...

Les recettes décrites dans cet article sont des repas rapides, pas du foie gras aux truffes. Pour les dépôts volumineux ou les packages complexes, vous devrez quand même lire la documentation et les manuels. Vous pouvez également utiliser un programme capable non seulement de créer des référentiels, mais également de les graver sur des disques CD/DVD.

Il y a une erreur dans votre texte :

"Maintenant, pour installer Skype, faites simplement :

# apt-get install sublimetext "

Vous pouvez décompresser les packages en utilisant dpkg-deb :

2. Avez-vous assemblé, installé et pensez que c'est tout ? Pas de chance, une bonne aptitude peut détruire le paquet en enfer lors de l'installation de quelque chose d'autre. Connaissez-vous ce sentiment : comment ? Où? Quoi? J'ai déjà installé ce package !!! Eh bien, c’est son aptitude : il est entièrement orthodoxe, ce qui signifie qu’il est patriarcal et ne permet pas la libre pensée.

3. Une manœuvre urgente s’impose donc : aptitude hold package. "Quoi, est-ce que ça tient bien ? Maintenant, ayez la gentillesse de le décoller !" (c) Parce qu'à partir de maintenant, aptitude se plaindra de ne pas être en mesure de résoudre les dépendances sans détruire votre package.

4. À ce moment-là, mes nerfs ont lâché... Et j'ai découvert Gentoo, et mes cheveux sont redevenus doux et soyeux !

"Maintenant, pour installer Skype, faites simplement :

@iv_vl commentaires...
Et j'ai découvert Gentoo, et mes cheveux...
Relations publiques effrontées de Genta ?! DANS le mien un blog ??? Il n'y a aucun moyen ! ;-)

1. Le paquet deb doit contenir le responsable et d'autres bêtises
Politique standard - vous devez savoir à qui frapper au visage pour un colis cassé :-) Et puis, c'est en tout cas mieux que le chaos qui se déroule dans les fedoras et les zyuzas RPM.

2. Avez-vous assemblé, installé et pensez que c'est tout ? Pas de chance, une bonne aptitude peut détruire le paquet en enfer lors de l'installation de quelque chose d'autre.
Seulement si tu mets le colis ancienne version- par exemple, j'ai installé IceWM, que j'ai installé depuis Lenny (le responsable idiot a fourré une glace avec un plateau cassé dans Squeeze). Aptitude vous avertira avant de telles manœuvres, le cas échéant.

3. Une manœuvre s'impose donc de toute urgence : aptitude hold package.... aptitude jurera qu'elle n'est pas capable de résoudre les dépendances
C'est un mensonge et une provocation : seulement si vous n'avez pas mis la main sur quelque chose comme gcc ou glibc, cela résoudra les dépendances normalement. Contrairement aux RPM, qui aiment abandonner tout de suite à la manière de « Eh bien, je ne pouvais pas, je ne pouvais pas » :-)

Il peut y avoir des problèmes avec la résolution des dépendances, c'est un fait, mais c'est mieux que de faire frire du bacon et des œufs sur le processeur en attendant la fin du téléchargement par Genta du nouveau KDE...

4. À ce stade, mes nerfs ont cédé...
D'une manière ou d'une autre, vous avez été rapidement époustouflé. Au fait, qu’en est-il des dépendances à Gand ? Comment vivre là-bas avec une toux à chaque éternuement ?
Je veux dire ça... pas pour troller... les gens sont intéressés.

iv_vl

Allez belle langue. L’un de ses super pouvoirs est la capacité de tout compiler en un seul binaire. Et c'est très pratique, vous pouvez emporter ce fichier partout et l'utiliser sur n'importe quelle machine. Mais je veux pouvoir installer notre programme de manière simple.

Avec l'aide des packages deb, vous pouvez facilement organiser le déploiement sur vos serveurs. En même temps, vous aurez le versioning et tout ça. J'utilise le plus souvent Ubuntu, nous parlerons donc spécifiquement des packages deb qui peuvent être installés/supprimés à l'aide des utilitaires apt.

Que devez-vous faire pour créer votre propre référentiel avec des packages ? Vous pouvez utiliser le même launchpad.net, par exemple. Mais, dernièrement, il ne se développe pas très bien et semble peu fiable. De plus, il est pratique de l’utiliser pour vos développements non commerciaux, mais son utilisation pour distribuer des logiciels d’entreprise sera problématique.

Abordons le problème de l'autre côté. Tout d'abord, nous devons collecter les packages deb, et cela est très simple à faire nous-mêmes à l'aide de l'utilitaire dpkg-deb. Deuxièmement, nous devons placer ces packages quelque part, et pour cela nous utiliserons le super simple

Forfaits de construction

Pour tous mes projets, j'utilise . La structure du projet ressemble à ceci :

Projet/ |- bin/ | |- projet |- src/ | |- github.com/ | |- 4gophers/ | |- projet/ | |- main.go |- vendeur/

Lorsque j'exécute gb build, tous les binaires sont construits dans le dossier bin. Ainsi, il nous suffit simplement d’ajouter la spécification de notre futur package deb directement dans le dossier du projet :

Projet Mkdir/projet DEBIAN touch/DEBIAN/contrôle

Le résultat sera une structure comme celle-ci :

Projet/ |- DEBIAN/ | |- contrôle |- poubelle/ | |- projet |- src/ |- fournisseur/

Dans le fichier de contrôle, nous devons spécifier des informations sur notre package. N'oubliez pas la dernière ligne vide :

Package : project Priorité : facultative Section : devel Taille installée : 100 Responsable : Ivan Ivanov Architecture : i386 Version : 1.0 Dépend : libc6 (>= 2.1) Description : Brève description ici Description longue ici

  • Forfait - le nom de votre forfait
  • Priorité - priorité du package (facultatif, supplémentaire, standard, important, obligatoire) pour les programmes ordinaires, il est préférable de définir facultatif
  • Section - la section à laquelle il appartient ce paquet(admin, base, comm, contrib, devel, doc, éditeurs, électronique, embarqué, jeux, gnome, graphiques, hamradio, interprètes, kde, libs, libdevel, mail, math, divers, net, news, non-free, oldlibs , otherosfs, perl, python, science, shells, son, tex, texte, utils, web, x11)
  • Installed-Size - taille des fichiers du package en kilo-octets
  • Responsable - nom et e-mail du créateur du package
  • Architecture - architecture du processeur à laquelle le package est destiné (i386, amd64, all, source, all)
  • Version - version du package
  • Dépend - dans ce champ, vous devez spécifier les noms des packages dont dépend votre package (par exemple, les bibliothèques)
  • Description - dans la première ligne, nous écrivons une brève description du colis, dans le reste plus en détail

Tout ce qui se trouve dans le dossier du projet ira dans le package. Et le dossier bin aussi. Ce dossier contient notre fichier binaire qui doit être installé. Pour que vos fichiers se retrouvent dans le répertoire souhaité sur l'ordinateur de l'utilisateur, vous devez créer la structure de répertoires appropriée dans le dossier de votre projet.

Il convient de noter que cette approche de création de packages deb n'est pas la plus correcte. Bien sûr, dans notre cas, nous prenons consciemment cette étape, mais vous devez comprendre que le package deb contiendra tout le contenu du dossier du projet, y compris les dossiers src, supplier, etc. Bien sûr, vous pouvez copier des fichiers dans un autre dossier et même écrire un script pour cela, mais tout a déjà été inventé avant nous. Plus la bonne façon- il s'agit d'utiliser les utilitaires dh_make et dpkg-buildpackage.

Vous pouvez maintenant assembler le package. Pour ce faire, exécutez la commande un niveau supérieur :

Dpkg-deb -z8 -Zgzip --build projet

Un niveau plus haut, un fichier project.deb sera créé, qui pourra être installé à l'aide de la commande :

Sudo dpkg -i projet.deb

Votre propre référentiel de packages

Passons maintenant à la partie amusante. Comment distribuons-nous nos colis ? Lançons bien sûr notre propre serveur de référentiel. Et pour cela, nous utiliserons le serveur de référentiel apt deb-simple.

Il s'agit d'un serveur très simple qui peut être installé avec une seule commande :

Allez chercher github.com/esell/deb-simple

Si go n'est pas installé sur la machine sur laquelle vous allez exécuter le serveur avec des référentiels, vous pouvez alors créer le binaire localement et simplement le copier. Vous pouvez également utiliser Docker.

Ensuite, vous devez démarrer le serveur. Cela peut être fait en utilisant Docker, mais je préfère utiliser Supervisord. Voici un exemple de configuration de mon service :

Command=/home/user/go1.5/bin/deb-simple directory=/home/user/deb-simple/ autorestart=true stdout_logfile=none

Ici, il est important d'indiquer le chemin d'accès au binaire (commande) et au dossier de travail (répertoire) dans lequel nous placerons notre config.

Le serveur deb-simple prend en charge https, mais nous n'en avons pas encore besoin. Pour les référentiels, vous devez créer un dossier repo. Notre configuration conf.json ressemblera à ceci :

( "listenPort" : "9090", "rootRepoPath" : "/home/user/deb-simple/repo", "supportedArch" : ["all","i386","amd64"], "enableSSL" : false, "SSLcert" : "server.crt", "SSLkey" : "server.key" )

Pour télécharger un package sur votre référentiel, vous devez utiliser l'API HTTP du service lui-même :

Curl -XPOST "http://localhost:9090/upload?arch=amd64" -F " [email protégé]"

De même pour supprimer :

Curl -XDELETE "http://localhost:9090/delete" -d "("filename": "project.deb", "arch": "amd64")"

Tout ce que nous avons à faire est d'ajouter notre serveur de référentiel à la liste dans /etc/apt/source.list.d/ . Vous pouvez créer fichier séparé avec contenu :

Deb http://my-hostname:9090/ stable main

Exécutez maintenant sudo apt-get update et installez vos programmes à votre guise.


Auteur : Michael Reed
Date de publication : 4 janvier 2014
Traduction : N. Romodanov
Date de transfert : juin 2014

Nous vous expliquerons comment créer les deux types de packages Linux les plus courants pour la distribution logiciel, et vous pouvez distribuer vous-même vos propres packages.

Nous allons vous guider tout au long du processus de création de packages logiciels pour les deux systèmes de packages les plus populaires, DEB et RPM. Vous pouvez utiliser ces techniques pour empaqueter vos propres logiciels, ou même gérer des packages pour des logiciels qui, selon vous, passent inaperçus.

Nous commencerons par un guide sur la création de fichiers DEB ((.deb) pour les distributions dérivées de Debian - pour cela, nous utilisons Xubuntu comme base. Après cela, nous détaillerons les techniques nécessaires pour créer des packages RPM à utiliser sur Red Hat. -distributions dérivées, et nous utiliserons Fedora pour cela. Il est souvent possible de créer un paquet sur une distribution, puis de l'installer sur une distribution associée (par exemple Ubuntu> Debian), mais si cela est important, vous voudrez peut-être essayer. c'est vous-même.

En ce qui concerne le programme, nous allons utiliser le navigateur Web léger Dillo comme exemple de package construit à partir du code source. Lors de la compilation à partir des sources, si la compilation ne fonctionne pas comme prévu, vous pouvez, comme d'habitude, rechercher des solutions sur Internet. Par exemple, dans le cas de Dillo 3.0.3, suite à un oubli dans l'archive du code source, nous avons dû ajouter "LIBS = -lX11" avant les commandes de build pour que les commandes fonctionnent.

La construction s'effectue en ligne de commande

Ressources

Installation (ou machine virtuelle) Ubuntu et Fedora

Description étape par étape

Étape 01 : Utiliser une machine virtuelle

L'utilisation d'outils de virtualisation tels que VirtualBox ou Vmware constitue souvent la meilleure approche pour créer des packages pour d'autres systèmes. D'une part, cette approche vous permet de maintenir une installation de base relativement propre, comparable aux paramètres avec lesquels d'autres sont susceptibles de travailler. Cela signifie également que vous pouvez obtenir une collection de systèmes cibles utilisant différentes distributions. De plus, la plupart des outils de virtualisation vous permettent d'émuler différentes architectures et, par conséquent, une plate-forme 32 bits peut exécuter des systèmes d'exploitation 64 bits, même si les performances en pâtiront.

Étape 02 : Commençons à zéro

Si quelque chose ne va pas dans Ubuntu ou Fedora, il est parfaitement sûr de simplement supprimer le répertoire source et de recommencer. Notez que les outils Debian modifient l'archive originale, vous devrez donc repartir d'une nouvelle copie.

Partie 1 : Debian

Étape 03 : Installer l'environnement de construction

Nous commencerons par installer la plupart des outils dont nous avons besoin pour créer des programmes à partir du code source. Cadran:

$ sudo apt-get install build-essential autoconf automake autotools-dev

Nous devons maintenant installer les outils utilisés pour travailler avec les packages DEB. Faites cela avec la commande suivante...

$ sudo apt-get install dh-make debhelper devscripts fakeroot xutils lintian pbuilder

Étape 04 : Créer une clé GPG

Si vous n'avez pas créé de clé publique GPG par le passé, vous devez en créer une maintenant afin de pouvoir signer des packages. Entrez d’abord le texte gpg –gen-key. Sélectionnez les valeurs par défaut et, lorsque vous y êtes invité, entrez votre vrai nom et vos coordonnées. Notez soigneusement toutes les données, car nous devrons plus tard les faire correspondre exactement dans le fichier de configuration. Après cela, tapez la commande ls ~/.gnupg pour vous assurer que la nouvelle clé existe (il s'agit du fichier prénom_nom.gpg). Créez-en une clé publique :

Gpg -a --output ~/.gnupg/.gpg --export "[votre nom]"

Importez-le avec :

Gpg --import ~/.gnupg/.gpg

Étape 05 : Téléchargez le package

Dans cet exemple, nous allons télécharger et créer la dernière version du navigateur Web Dillo. Accédez au site Web de Dillo (www.dillo.org) et téléchargez la dernière archive.tar.bz. Utilisez la commande mkdir ~/srcand pour créer un répertoire pour le code source et y déplacer l'archive.

Étape 06 : Décompressez l'archive

Décompressez l'archive à l'aide de la commande tar -xjvf [nom de l'archive].tar.bz2. Notez que suivre les conventions de dénomination des répertoires (nom du package-version) est important pour nos besoins, et heureusement le package Dillo les suit. Il est également important que l'archive du code source se trouve un niveau au-dessus du répertoire du code source.

Étape 07 : Configuration pour Debian

Placez le script dh_make dans le répertoire nouvellement décompressé, qui se chargera de la majeure partie du travail - ajout du fichier de configuration et création de la structure des répertoires, et qui fait partie de la boîte à outils de développement que nous avons ajoutée précédemment.

Dh_make -e -c licence -f ../

Dans notre exemple, ligne de commande cela ressemblera à ceci :

Dh_make -c gpl3 -e [email protégé]-f ../dillo-3.0.3.tar.bz2

Lorsque vous y êtes invité, sélectionnez un fichier binaire. Le script d'assistance au script doit créer un répertoire nommé Debian dans le répertoire du code source.

Étape 08 : Ouvrir le fichier de contrôle

Ouvrir dans éditeur de texte fichier de contrôle dans le sous-répertoire Debian. Remplissez la section Page d'accueil (utilisez Google pour compléter une liste des sections du programme Debian) et les champs de description de ce fichier.

Étape 09 : Explorez vos dépendances existantes

Vous pouvez rechercher les dépendances nécessaires pour exécuter un programme fourni sous forme de package. Accédez au répertoire contenant le code source et tapez la commande dpkg-depcheck -d ./configure dans le terminal. Si vous faites cela, vous recevrez des erreurs indiquant quel package est manquant et requis pour construire le programme (fourni séparément). Vous pouvez ouvrir ce package en tapant sudo apt-get build-dep [nom du package], ce qui devrait vous aider si le référentiel de votre distribution prend en charge le package. S'il n'est pas pris en charge, vous devrez exécuter à plusieurs reprises dpkg-depcheck -d ./configur et ajouter des packages manuellement en tapant psudo apt-get install [nom du package].

Étape 10 : Ajouter des dépendances au fichier de contrôle

Lorsque toutes les étapes de l’étape précédente sont terminées, vous devriez avoir une liste de tous les packages requis. Ajoutez cette liste de dépendances à la section depend: du fichier de contrôle. Les éléments de la liste doivent être séparés par une virgule et un espace.

Essayez de terminer cette étape autant que possible et ne la sautez pas. Source : - c'est généralement page d'accueil projet. Dans la section Fichiers : * remplacez les informations de copyright par les noms des auteurs du projet. Vous pouvez voir un exemple de remplissage de la section Files: debian/*, dans laquelle les informations pertinentes doivent être saisies. Vous devrez peut-être être un peu détective pour trouver les informations dont vous avez besoin. Recherchez dans le répertoire source des fichiers tels que AUTEURS et COPIE.

Étape 12 : Modifier le fichier journal des modifications

Ouvrez le fichier journal des modifications et assurez-vous que le nom et l'adresse sont e-mail sont les mêmes que ceux que vous avez saisis lors de la création de la clé GPG. Généralement, le script d'assistance peut ajouter votre nom d'utilisateur au fichier plutôt que votre vrai nom. Comme pour le fichier de droits d'auteur, ne sautez pas cette section car cela pourrait entraîner l'arrêt du processus de création du package ou la création d'un package incorrect.

Étape 13 : Créer un forfait

Si tout est configuré correctement, nous pouvons enfin construire le package DEB. Accédez au répertoire source et exécutez dpkg-buildpackage -b pour construire le package, qui sera placé dans le répertoire ~/src/. Par exemple, créez un package à l'aide de la commande dpkg -I [package]. Pour vérifier la conformité aux politiques Debian, exécutez le programme Lintian à l'aide de la commande lintian [package]. Veuillez noter que cet outil est notoirement strict et c'est à vous de décider si certains avertissements mineurs de non-conformité vous conviennent. Enfin, installez le pacte à l'aide de la commande sudo dpgk -i [package].

Partie 2 : Création de packages RPM dans Fedora

Étape 14 : Ouvrir le fichier de contrôle

Passez en mode utilisateur root en tapant su. Commencez par le groupe d'installation des outils de développement dans yum, puis utilisez yum pour installer le packager fedora gcc-c++. Tapez la commande usermod -a -G mock pour ajouter votre utilisateur au groupe mock. Cela nous permet d'effectuer la procédure de construction sans avoir à devenir root.

Étape 15 : Créer un environnement de construction

Appuyez sur Ctrl + D pour quitter le rôle root. Tapez rpmdev-setuptree pour créer l'arborescence de répertoires (sous ~/rpmbuild) dont nous avons besoin.

Étape 16 : Téléchargez l'archive et déplacez-la vers l'emplacement souhaité

Téléchargez le package Dillo depuis le site Web de Dillo et déplacez l'archive vers le répertoire approprié - tapez mv [nom de l'archive] ~/rpmbuild/SOURCES.

Étape 17 : Créer un fichier .spec

Les distributions basées sur Red Hat, telles que Fedora, utilisent des fichiers .spec pour spécifier le processus de construction. Accédez au répertoire contenant ces fichiers à l'aide de cd ~/rpmbuild/SPECS/andcreateablank.spec et créez un fichier .spec vide à l'aide du dillo rpmdev-newspec.

Étape 18 : Modifier le fichier .spec

Tapez la commande gedit dillo.spec. Remplissez les champs Version, Résumé et Licence (dans dans ce cas- GPLv3+). L'URL indique page d'accueil projet; Source0 spécifie l'adresse du code source. Fournissez des commentaires dans les champs BuildRequires et Requires. Ajouter description complèteà la zone %description.

Étape 19 : Construire le code source

Si le package est pris en charge sur le système, exécutez la commande yum-builddep [nom du package]. DANS sinon, vous devrez répéter la commande build afin de recevoir des messages d'erreur, ou rechercher de la documentation dans l'archive du code source. Dans le répertoire SPEC, tapez rpmbuild -ba[nom du package].spec. Si cette build échoue et signale des fichiers non compressés supplémentaires, mettez en surbrillance et copiez cette liste de fichiers dans la section %files du fichier.spec et réexécutez la commande build. Le package sera désormais situé dans le répertoire RPMS. Tapez rpm -ivh [package] pour l'installer. Tapez la commande rpm -qa | grep [package] pour vous assurer qu'il est installé.

Cet article n'est pas complet. Vous pouvez aider à l'écrire

    Correction du style de l'article

    En ajoutant plus d'informations sur la préparation des codes sources pour la débianisation

Les distributions basées sur Debian disposent non seulement d'un excellent système de gestion de paquets APT qui résout lui-même les dépendances, mais également d'outils pratiques pour créer des paquets et leurs propres référentiels. Si vous avez déjà décidé de construire un programme à partir du code source, alors je vous conseille d'étudier également comment débianiser le code source. Cela prendra un peu plus de temps que la norme

./ configurer && make && make install make désinstaller

mais toutes les sources ne le prennent pas en charge, et ce qui est encore plus courant, c'est que les sources sont supprimées après l'installation, le programme ne peut alors être supprimé que manuellement. Mais pour ce faire, vous devez savoir exactement ce qui est installé et où. Et personne ne le sait avec certitude, à l'exception des développeurs du programme eux-mêmes (enfin, ou de ceux qui ont plus ou moins compris le code source du programme).

Classification des cas d'assemblage

Possible cas suivants versions de packages :

    Construire à partir des sources ;

    Assemblage à partir de fichiers binaires ;

les codes sources ou les fichiers binaires sont extraits :

    Pas du référentiel ;

    Depuis le référentiel d'une autre distribution ;

    Depuis le référentiel d'une autre version d'Ubuntu, depuis un PPA ou depuis Debian ;

débianisation :

    Pas disponible;

    Extrait du dépôt Ubuntu, du PPA ou de Debian :

    • À partir d'une autre version du programme ;

      À partir de la version actuelle du programme :

      • Pas du référentiel de la version actuelle d'Ubuntu ;

        À partir du référentiel de la version actuelle d'Ubuntu ;

raison du montage :

    Ni le référentiel Ubuntu actuel ni le PPA ne contiennent la version requise du programme ;

    Pour une raison quelconque, vous n'êtes pas satisfait de la version disponible du programme (vous n'êtes pas satisfait du code ou des données du programme, des paramètres de configuration ou informations de contrôle emballer);

    Les deux.

Construire à partir des sources

Ce qui est nécessaire

Le Guide complet du développeur Debian pour débutants est disponible.

Malheureusement, les informations en russe sont un peu obsolètes, les dernières instructions sont disponibles en anglais. Mais les principes n'ont pas changé, donc si les détails vous intéressent, mieux vaut lire attentivement le manuel.

Nous aurons besoin au minimum de programmes installés par la commande

sudo apt-get install autoconf automake libtool autotools-dev dpkg-dev fakeroot

Vous pouvez également réserver automatiquement - il s'agit de la documentation des utilitaires GNU Autoconf, Automake et Libtool. Et bien sûr, ce dont ils ont eux-mêmes besoin codes sources pour un montage correct.

Création d'une clé de cryptage

Cette étape est facultative et peut être ignorée.

Pour créer une clé, accédez à Applications → Accessoires → Mots de passe et clés de cryptage. Dans la fenêtre qui s'ouvre, dans le menu Clé → Nouvelle clé, sélectionnez la clé pgp. Remplir les champs Nom et prénom Et Adresse email.

Dans le monde du logiciel libre, pour éviter le « vol » ou la « contrefaçon », il est d'usage de signer ses objets « de valeur » clé électronique, dont la partie publique est stockée sur des serveurs publics et permet aux autres utilisateurs de déterminer facilement l'authenticité et l'intégrité d'une chose particulière.
Soyez donc très responsable lors de la création d’une clé.
Personne ne vous oblige à saisir ici votre vrai nom et prénom, ni toute autre donnée personnelle, mais si vous n'êtes pas recherché par Interpol, je pense que saisir votre nom et votre prénom sera la bonne décision, même si vous pouvez simplement utiliser votre pseudo. . En général, décidez par vous-même. Mais veuillez indiquer la véritable adresse postale, que vous ne modifierez pas.

Vous pouvez créer une boîte, si vous n’en avez pas déjà une, sur certains sites populaires. serveur de messagerie: par exemple, gmail.com ou yandex.ru.
Cela permettra à quelqu'un qui ne vous connaît pas, mais qui, pour une raison ou une autre, est tombé sur une « chose » signée par vous, pourra plus facilement vous contacter à l'avenir.
Ensuite, il vous sera demandé de saisir un mot de passe comme protection supplémentaire. Cela peut être utile si vous utilisez la clé privée sur des machines auxquelles vous ne pouvez pas faire confiance à 100 %. Verso- vous devrez saisir votre mot de passe à chaque fois que vous signerez quelque chose.

Bien que dernière version programmes hippocampe possède un démon qui démarre automatiquement dans une session GNOME et peut « mémoriser le mot de passe » pendant toute la durée de la session, mais tous les programmes ne peuvent pas encore fonctionner avec lui.

Vous avez donc créé une clé - elle peut désormais être utilisée lors de la création de packages.
Pour ce faire, dans le fichier ~/.bashrc, ou dans un autre script de démarrage de votre shell préféré (pour zsh ~/.zshrc), vous devez saisir des variables

Exporter DEBEMAIL=votre@email

Sur la base de l'e-mail, la clé sera recherchée dans pgp lors de la signature du package.
Vous devez vous déconnecter et vous reconnecter pour que les modifications prennent effet.
N'oubliez pas que si vous rétroportez un paquet que vous n'avez pas debianisé, vous devez changer la version avec la commande

dch -je

afin que votre e-mail soit inclus dans les modifications. Et pour que votre clé publique parvienne au serveur, vous devez « hippocampe→ Mots de passe et clés de cryptage », établissez une connexion au serveur de clés publiques.
Pour cela, dans le menu Édition → Options sur le marque-page Publication des clés tu dois cocher la case Publier les clés....
Vous pouvez maintenant sélectionner la clé dans le menu en bouton droit choisir Synchroniser et publier des clés.

La débianisation n'est pas disponible

Nous n'avons donc que gcoolprog-0.5.3.tar.gz.

Je fais habituellement ce qui suit :

Préparer le répertoire de travail

" http://<путь до файла>" #Vous pouvez bien sûr simplement le télécharger via un navigateur, mais c'est généralement plus rapide

Nous recevons le fichier gcoolprog-0.5.3.tar.gz. Décompressons-le et allons dans le répertoire résultant :

tar zxvf gcoolprog-0.5.3.tar.gz cd gcoolprog-0.5.3

Pour un assemblage correct, le répertoire racine doit contenir non seulement le nom, mais aussi la version !

./ configure --prefix =/ usr && make

Si la commande s'est terminée avec succès, il ne reste plus qu'à débianiser.

Débianisation

Il n'y a rien de mal à cela, comme je l'ai déjà dit, il existe des scripts qui simplifient grandement ce processus.
En général, le but de toute cette procédure est de créer un répertoire Debian à la racine des sources, avec les fichiers nécessaires configuration et script(s).
Pour ce faire, à la racine des textes sources, on exécute

Dh_make --createorig

Pourquoi devrions-nous obtenir le dialogue suivant ?

Type de package : binaire unique, binaire multiple, bibliothèque, module noyau ou cdbs ? [email protégé] Date : lundi 13 août 2007 12:40:33 +0400 Nom du package : gcoolprog Version : 0.5.3 Licence : vide Type de package : Single Hit pour confirmer :

Ici, nous indiquons de créer un package pour un seul fichier binaire.

Mais vous et moi sommes formidables et tout s'est déroulé sans erreur - un répertoire Debian est apparu à la racine du code source, en regardant son contenu, vous verrez un tas de fichiers (extension .ex) avec des exemples pour toutes les occasions.

Description:

Au lieu de Et (sans les guillemets), vous devez saisir une description du type de programme dont il s'agit.
Ce sont les informations que l’utilisateur verra lorsqu’il consultera la description du package.
Le deuxième point est de corriger le fichier debian/règles
en coupe arche binaire: doit être décommenté (c'est-à-dire supprimer le # au début de la ligne)

Dh_install

sans cela, nous obtiendrons un paquet vide.
Parfois debian/règles contient uniquement :

%:dh$@

Qu'est-ce qui est acceptable en utilisant Debhelper.
Ces paramètres seront suffisants pour construire un package avec un programme qui ne contient pas de bibliothèques partagées, c'est-à-dire uniquement le binaire dans /usr/bin et les données dans /usr/share.

Construire le paquet

Maintenant, assemblons le package :

Dans le répertoire ci-dessus, c'est à dire. dans ~/src/gcoolprog/0.5.3, nous obtiendrons les fichiers

Gcoolprog_0.5.3-1.diff.gz gcoolprog_0.5.3-1_i386.changes gcoolprog_0.5.3-1_i386.deb gcoolprog_0.5.3.orig.tar.gz

Nous pouvons maintenant installer le package

dpkg -i *.deb

La débianisation est extraite du référentiel Ubuntu, d'un PPA ou de Debian

La débianisation est tirée d'une autre version du programme

Dans ce cas, il est très pratique de prendre la débianisation à partir de là et de la corriger pour la nouvelle version.

Comme je l'ai déjà dit, nous aurons peut-être de la chance et il suffira de changer de version. Mais ne devinons pas.

Ci-dessous, je ne commenterai pas ce qui est décrit dans la solution précédente.

mkdir ~/ src/ gcoolprog mkdir ~/ src/ gcoolprog/ 0.5.3 cd ~/ src/ gcoolprog/ 0.5.3 wget " http://<путь до файла>"

on obtient le fichier gcoolprog-0.5.3.tar.bz2

bunzip2 gcoolprog-0.5.3.tar.bz2 gzip gcoolprog-0.5.3.tar mv gcoolprog-0.5.3.tar.gz gcoolprog_0.5.3.orig.tar.gz

maintenant, décompressons-le

tar zxvf ./ gcoolprog_0.5.3.orig.tar.gz

télécharger version précédente depuis http://packages.ubuntu.com ou http://packages.debian.org, fichier gcoolprog_0.5.1.diff.gz(tout en bas dans la section Plus d'informations sur gcoolprog)

wget "http://archive.ubuntu.com/ubuntu/pool/universe/g/gcoolprog/gcoolprog_0.5.1.diff.gz" gunzip gcoolprog_0.5.1.diff.gz patch -p0< ./ gcoolprog_0.5.1.diff

obtenir le répertoire

~/ src/ gcoolprog/ 0.5.3/ gcoolprog-0.5.1/ debian

copiez le répertoire gcoolprog-0.5.1/debian dans le répertoire ~/src/gcoolprog/0.5.3/gcoolprog-0.5.3

cp -a ~/ src/ gcoolprog/ 0.5.3/ gcoolprog-0.5.1/ debian ~/ src/ gcoolprog/ 0.5.3/ gcoolprog-0.5.3 dch -i

cette commande modifie le fichier debian/changelog, par exemple nous verrons

Gcoolprog (0.5.1-1ubuntu2) fougueux ; urgence =faible * -- denis< ubuntu_user@ mail.ru>

mais comme nous avons la version 0.5.3, nous devons changer les valeurs en

Gcoolprog (0.5.3-1ubuntu1) fougueux ; urgence = faible * Nouvelle version en amont.< ubuntu_user@ mail.ru>--denis

Lun. 13 août 2007 14:13:27 +0400

enregistrer les modifications. Vous pouvez maintenant exécuter la commande build dans un package.

Dpkg-buildpackage -rfakeroot

récupérer les fichiers

cd .. ls -1 gcoolprog_0.5.3-1 .diff.gz gcoolprog_0.5.3-1 _i386.changes gcoolprog_0.5.3-1 _i386.deb gcoolprog_0.5.3.orig.tar.gz dpkg -i * .deb

La débianisation est extraite de la version actuelle du programme

La débianisation n'est pas extraite du référentiel de la version actuelle d'Ubuntu Pour Debian, vous devez utiliser le site http://packages.debian.org, pour Ubuntu - http://packages.ubuntu.com. Ensuite, par exemple, dans Ubuntu, nous recherchons le package gcoolprog

dans le référentiel pour une prochaine version.

Préparons d'abord le répertoire de travail

mkdir ~/ src/ gcoolprog mkdir ~/ src/ gcoolprog/ 0.5.3 cd ~/ src/ gcoolprog/ 0.5.3

maintenant téléchargez trois fichiers

wget http:// archive.ubuntu.com/ ubuntu/ pool/ Universe/ g/ gcoolprog/ gcoolprog_0.5.3-1 .dsc wget http:// archive.ubuntu.com/ ubuntu/ pool/ Universe/ g/ gcoolprog/ gcoolprog_0 .5.3.orig.tar.gz wget http:// archive.ubuntu.com/ ubuntu/ pool/ Universe/ g/ gcoolprog/ gcoolprog_0.5.3-1 .diff.gz

ou la même chose, mais avec une seule commande

Dget http:// archive.ubuntu.com/ ubuntu/ pool/ Universe/ g/ gcoolprog/ gcoolprog_0.5.3-1 .dsc du paquet
scripts de développement

puis décompressez avec la commande

Dpkg-source -x ./ gcoolprog_0.5.3-1 .dsc

Nous obtiendrons le répertoire gcoolprog-0.5.3. Allons-y et changeons la version :< ubuntu_user@ mail.ru>--denis

cd gcoolprog-0.5.3 dch -i gcoolprog (0.5.3-1ubuntu1) fougueux ; urgence = faible * rétroportage de Gutsy -- Denis

enregistrer les modifications. Vous pouvez maintenant exécuter la commande build dans un package.

Dpkg-buildpackage -rfakeroot

Vous pouvez maintenant assembler le paquet

cd .. ls -1 . gcoolprog_0.5.3-1 .diff.gz gcoolprog_0.5.3-1 _i386.changes gcoolprog_0.5.3-1 _i386.deb gcoolprog_0.5.3.orig.tar.gz dpkg -i * .deb

La débianisation est extraite du référentiel de la version actuelle d'Ubuntu

Dans le cas où il existe un package pour la version souhaitée du programme dans le référentiel de la version actuelle d'Ubuntu, mais pour une raison quelconque, il n'est pas satisfaisant et des modifications doivent être apportées à ses sources (par exemple, appliquer une sorte de correctif ) et reconstruit en fonction de ce qui est déjà dans le paquet Debianization, vous pouvez procéder comme suit.

Pour construire, vous aurez besoin des packages suivants : build-essential devscripts fakeroot. Des packages de développement seront également nécessaires, nous les installerons plus tard.

Téléchargez les sources : cd ~/src apt-get source

apt-get source télécharge les sources du référentiel Ubuntu dans le répertoire courant. De nombreux packages du référentiel ont des sources communes entre eux, donc en plus des sources du package sélectionné, les sources d'autres packages peuvent également être téléchargées (sources communes à plusieurs packages).

Installez les packages de développement requis pour l'assemblage :

sudo apt-get build-dep gcoolprog

Nous récupérons les colis :

cd gcoolprog-0.5.3 déconstruire -b -us -uc

debuild doit être exécuté dans le répertoire source. Les options -b -us -uc sont transmises au programme dpkg-buildpackage. Le premier nécessite de collecter uniquement les packages binaires, les deuxième et troisième nécessitent de ne pas signer signature numérique, respectivement, le package source et le fichier .changes. Les packages résultants seront dans le répertoire un niveau supérieur.

Construire à partir de fichiers binaires

Vous trouverez ci-dessous un exemple de ce que vous pouvez faire si seul un paquet deb est disponible et qu'il n'y a pas de sources débianisées.

Supposons que nous travaillons dans un répertoire ~/tmp. Créons un sous-répertoire ~/tmp/unprog pour décompresser les fichiers d'un package, vous devez exécuter

dpkg -x ~./tmp/some-prog-123 .deb ./someprog

Afin d'extraire informations de contrôle, faisons

mkdir ~/ tmp/ someprog/ DEBIAN dpkg -e ~/ tmp/ some-prog-123 .deb ./ someprog/ DEBIAN

Eh bien, maintenant, pour tout remettre dans le paquet, vous devez faire

dpkg -b ./ someprog ~/ tmp/ some-prog-123 -new.deb

Dans le catalogue ~/tmp/someprog/DEBIAN contient des fichiers décrivant ce qu'est le package, de quoi il dépend et sommes de contrôle fichiers qu'il contient. Afin de construire votre package, vous devez placer les fichiers dans le répertoire ~/tmp/unprog comme s'il s'agissait du répertoire racine, c'est-à-dire si vous souhaitez que le fichier soit installé dans. /usr/bin, vous devez le mettre dans le répertoire ~/tmp/someprog/usr/bin, et, par conséquent, si quelque chose doit être dans /etc, puis dans ~/tmp/someprog/etc etc.

Puis dans ~/tmp/unprog créez un répertoire DEBIAN, veillez à utiliser des majuscules, et dedans un fichier ~/tmp/someprog/DEBIAN/contrôle, ce fichier décrit le nom du package, ses dépendances et sa description, le format est très simple. Par exemple:

Package : libcurl3 Version : 7.15.2-2 Section : libs Priorité : facultative Architecture : i386 Dépend : libc6 (>= 2.3.5-1), libcomerr2 (>= 1.33-3), libidn11 (>= 0.5.18), libkrb53 (>= 1.4.2), libssl0.9.8 (>= 0.9.8a-1), zlib1g (>= 1:1.2.1), ca-certificates Suggère : libldap2 Remplacements : libcurl2 (<< 1:7.11.2-2) Installed-Size: 324 Maintainer: Domenico Andreoli Source : curl Description : Bibliothèque de transfert de fichiers multiprotocoles libcurl est conçue pour être une bibliothèque de transfert de fichiers multiprotocoles solide, utilisable, fiable et portable.

.

La prise en charge SSL est fournie par OpenSSL.

Pour activer le package de support LDAP, libldap2-dev est requis.

Il existe plusieurs options pour installer ce système d'exploitation, et toutes ne diffèrent que par des écarts mineurs par rapport à...