Comment construire un package Debian/Ubuntu à partir de la source?
J'ai le source d'un programme (prises à partir de cvs/svn/git/...) et j'aimerais construire un package Debian/Ubuntu pour elle. Le paquet est présent dans les dépôts, mais:
- C'est une ancienne version (manque de fonctionnalités dont j'ai besoin)
- J'ai besoin d'légèrement différentes options de compilation que celui par défaut.
Quel est le moyen le plus facile de faire cela? Je suis préoccupé par un couple de choses
- Comment puis-je vérifier si j'ai la liste de toutes les dépendances correctement? (Je peux obtenir quelques conseils en regardant sur ce que l'ancienne version dépendait, mais de nouvelles dépendances peuvent avoir été ajoutés.)
- Comment je puis-je empêcher le système de mise à jour de l'installation de l'ancienne version dans le repo sur une mise à jour?
- Comment je peut empêcher le système de l'installation d'une version plus récente (lors de sa sortie), en écrasant mon package personnalisé?
- Similaire de l'UA: askubuntu.com/questions/28372/...
Vous devez vous connecter pour publier un commentaire.
vous pouvez utiliser le forfait spécial "checkinstall" pour tous les paquets qui ne sont même pas dans le fichier debian/ubuntu encore.
Vous pouvez utiliser "uupdate" (
apt-get install devscripts
) pour construire un paquet à partir des sources existantes sources debian:Exemple pour libdrm2:
libdrm-2.3.1
exactement? Aussi où avez -libdrm-2.4.1.tar.gz
viennent (mon hypothèse de départ est que c'est le binaire compilé de l'application que nous voulons paquet deb, mais le fait de remplacer la version existante, est-ce correct?)You must put some 'source' URIs in your sources.list
, décommentez les lignes deb-src dans votre/etc/apt/sources.list
D'abord, le titre de la question:
En supposant que le répertoire debian est déjà là, être dans le répertoire source (le répertoire contenant le répertoire debian) et lancer dpkg-buildpackage. J'aime courir avec ces options:
qui signifie ne pas signer le résultat et ne pas la nettoyer.
Obtenir les dépendances est un art noir. Le "officielle" consiste à vérifier construire dépend si le paquet construit uniquement avec le système de base, le "build-essential" les paquets et les dépendances de construction que vous avez spécifié. Ne sais pas de réponse générale ordinaire des Dépendances, juste wade en 🙂
Ma connaissance, peut-être plus à jour sur ce point, mais pour répondre à la fois:
Utilisez dpkg --set-selections. En supposant que nullidentd a été le package que vous avez voulu rester sur place, exécuter en tant que root
Alternativement, puisque vous générez à partir de la source, vous pouvez utiliser un époque pour définir le numéro de version artificiellement élevé et de ne jamais être dérangé. Pour utiliser une époque, ajouter une nouvelle entrée dans le fichier debian/changelog, et de mettre un 99: en face du numéro de version. Compte tenu de mon nullidentd exemple, la première ligne de la mise à jour de votre changelog se lire:
Bernard de lien est bonne, surtout si vous devez créer le répertoire debian-vous - aussi utiles sont les les développeurs de référence et la des ressources générales de la page. Adam lien semble aussi bon, mais je ne suis pas familier avec elle.
Pour ce que vous voulez faire, vous voudrez probablement utiliser la source debian diff, de sorte que votre paquet est similaire à l'officiel en dehors de l'amont de la version utilisée. Vous pouvez télécharger la source diff de packages.debian.org, ou de pouvoir l'obtenir avec la .l'asn et l'archive des sources originales en utilisant la commande "apt-get source".
Alors vous déballez votre nouvelle version de la source amont, le changement dans ce répertoire, et d'appliquer les changements que vous avez téléchargé en faisant
Puis apportez les modifications que vous vouliez options de compilation, et de construire le paquet en faisant
Échantillon basée sur Ubuntu construire pour ccache:
Plus de détails: http://blog.aplikacja.info/2011/11/building-packages-from-sources-in-debianubuntu/
Je crois cette est le paquet Debian 'bible'.
Bien, c'est le nouveau responsable Debian guide de l', de sorte que beaucoup de ne pas être applicables, mais ils ne couvrent ce qui va où.
Si vous utilisez Ubuntu, découvrez la pkgcreator projet:
http://code.google.com/p/pkgcreator
Ici est un tutoriel pour construire un paquet Debian.
Fondamentalement, vous avez besoin de:
J'ai l'habitude de faire tout cela dans mon Makefile si je peux juste type faire à cracher le binaire et le paquet d'un seul coup.
La
pbuilder
est un excellent outil pour vérifier à la fois les dépendances de construction et des dépendances par la mise en place d'un propre système de base dans un environnement chroot. Par la compilation du paquet à l'intérieur de pbuilder, vous pouvez facilement vérifier les dépendances de construction, et en la testant à l'intérieur d'un pbuilder de l'environnement, vous pouvez vérifier les dépendances.Si vous voulez un moyen rapide et sale pour installer les dépendances de construction, utilisation:
Il installe les dépendances. Vous avez besoin de sources de lignes dans vos sources.liste pour cette:
Si vous êtes le portage de paquets de testing à stable, s'il vous plaît noter que les dépendances ont peut-être changé. La commande apt-get build-deb installe les dépendances pour les paquets de code source dans votre référentiel actuel.
Mais bien sûr, dpkg-buildpackage -us-uc va vous montrer tout désinstallé dépendances.
Si vous voulez compiler le plus souvent, l'utilisation cowbuilder.
Puis créer un la zone:
sudo DIST=squeeze ARCH=amd64 cowbuilder --créer
Ensuite compiler un paquet source:
Regarder où cowbuilder met le paquet résultant.
Bonne chance!