web-dev-qa-db-fra.com

Comment mettre à jour les paquets Ubuntu à partir des sources?

J'aimerais créer une version mise à jour du paquet network-manager-openconnect dans Ubuntu. Apparemment, je dois obtenir la dernière source de paquets:

bzr branch lp:~network-manager/network-manager/openconnect-ubuntu.head

Alors quoi? Le paquet semble avoir un moyen de se mettre à jour à partir du dernier code en amont en utilisant git. Mais comment puis-je le faire faire cela?

8
James Ward

La création d’un package mis à jour à partir d’une branche bzr a tendance à être assez différente selon la personne qui gère les branches ou le fonctionnement du package en général. Cependant, voici quelques lignes directrices pour une mise à jour rapide et incorrecte de n'importe quel paquet, à transférer à un PPA:

Obtenez la branche:

bzr branch lp:~network-manager/network-manager/openconnect-ubuntu.head

Ensuite, passez à cela et mettez à jour changelog:

dch -i

dch -i ouvrira simplement une nouvelle entrée dans debian/changelog, augmentant ainsi la révision de version. Si vous souhaitez ajouter un correctif, c'est parfait, mais si vous souhaitez mettre à jour une version plus récente du logiciel en amont, vous devez mettre à jour le numéro de version avant le tiret (-). Disons, une version en 1.2-0ubuntu1 , si vous démarrez dch -i, il sera remplacé par 1.2-0ubuntu2 , ce qui est bon pour les correctifs, mais si vous avez besoin d’une nouvelle version, vous voudrez probablement le changer en 1.3-0ubuntu1 .

Si vous avez besoin de corriger, le moment est venu d'ajouter vos modifications. Dans les branches qui ont seulement un répertoire debian /, vous pouvez utiliser bzr bd-do (nécessite le paquet bzr-builddeb) pour basculer vers un arbre de travail où vous pouvez apporter des modifications, utilisez quilt ou n’importe quel système de correctifs, puis "exit 0" pour que vos modifications soient recopiées.

Si vous voulez une nouvelle version en amont, une fois que changelog aura été modifié, vous devrez probablement exécuter une commande similaire à celle-ci:

debian/rules get-orig-source

Cela téléchargera généralement la bonne archive depuis l'éditeur en amont pour vous aider à démarrer. Si des modifications supplémentaires sont nécessaires, procédez comme ci-dessus pour "appliquer des correctifs" ou modifier d'autres fichiers dans le répertoire debian /, sinon vous avez presque terminé:

bzr bd -S

bzr bd s'occupera de la construction. L'appeler sans argument commence à construire sur votre système, alors qu'il est appelé avec - S lui dit de préparer un paquet source, qui inclura un ..._ source.changes fichier qui correspond à ce que vous voulez télécharger sur votre PPA (utilisez dput ppa: <votre nom>/<nom de votre ppa> <fichier de modifications> pour le faire).


Pour les packages NetworkManager, c'est un peu différent. Regardons openconnect spécifiquement:

bzr branch lp:~network-manager/network-manager/openconnect-ubuntu.head network-manager-openconnect

Assurez-vous de disposer également de toutes les dépendances de construction: Sudo get-build-deps

Avec la branche récupérée, ceci lira le fichier debian/control et essaiera de télécharger tout ce dont vous avez besoin pour construire network-manager-openconnect. Vous pourriez aussi avoir besoin de git. Une fois que cela est fait, lancez get-orig-source pour obtenir uniquement l'archive du dernier snapshot de git:

debian/rules get-orig-source

Vous verrez le texte défiler et une archive contenant un long numéro de version apparaît. C'est le dernier code que vous pouvez obtenir pour nm-openconnect.

Vous devrez ensuite mettre à jour le journal des modifications avec le numéro de version de l'archive, en conservant le suffixe - 0ubuntu1 intact.

Ou bien, changez debian/changelog avec le numéro de version que vous souhaitez, puis lancez: debian/rules get-current-source

Comme les plugins ne changent pas beaucoup, vous devriez pouvoir construire le paquet à partir de là, en utilisant bzr bd comme ci-dessus. Sinon, appliquez les modifications nécessaires comme ci-dessus.

N'oubliez pas de bzr commit après avoir apporté des modifications.

J'ai d'abord oublié d'ajouter, n'hésitez pas à utiliser le système de proposition de fusion ( Proposez la fusion liez la page de votre succursale sur un disque vinyle) lorsque vous modifiez faire faire pourrait profiter à d’autres. Habituellement, vous pouvez simplement proposer une fusion avec la branche sur laquelle repose la vôtre (par exemple, lp: ~ network-manager/network-manager/openconnect-ubuntu.head dans ce cas).

Ok mis à jour sur la façon de tirer le code de la rampe de lancement

bzr branch lp: ~ gestionnaire de réseau/gestionnaire de réseau/openconnect-ubuntu.head

Ce que cette dose est extraire le code du lp (service d’hébergement du tableau de bord). Nous devons trouver où se trouve le code.

homme bzr
343 #type 343 lorsque la page de manuel s’affiche.

bzr branch FROM_LOCATION [TO_LOCATION]        
       If  the TO_LOCATION is omitted, the last component of the FROM_LOCATION
       will be used.  In other words, "branch ../foo/bar" will attempt to cre‐
       ate  ./bar.   If the FROM_LOCATION has no / or path separator embedded,
       the TO_LOCATION is derived from the FROM_LOCATION by stripping a  lead‐
       ing   scheme   or  drive  identifier,  if  any.  For  example,  "branch
       lp:foo-bar" will attempt to create ./foo-bar.

Essayez de changer le répertoire dans lequel vous voulez travailler ou ajoutez le répertoire dans lequel vous et le code allez.

cd/home/[votre nom d'utilisateur]/[chemin du répertoire de développement]
ou bzr branch lp: ~ gestionnaire-réseau/gestionnaire-réseau/openconnect-ubuntu.head/home/[votre nom d'utilisateur]/[chemin du répertoire de développement]
Par exemple, bzr branche lp: ~ gestionnaire de réseau/gestionnaire de réseau/openconnect-ubuntu.head/home/joe/projets/gestionnaire de réseau/dev

Si vous avez déjà fait cela, vous avez probablement un répertoire dans votre répertoire

ls ~
./ openconnect-ubuntu.head

Il devrait y avoir un README fiel dans ce répertoire pour voir ce qu'il devrait y avoir dedans. Regardez le code du projet , voici un lien vers README.source

README devrait avoir des instructions pour construire ce projet individuel.

Autres outils utiles de bzr à installer

Sudo apt-get installer bzr-builddeb courtepointe bzr-builder bzr-Explorer

Le bzr-explorere vous laissera parcourir les référentiels de bzr que vous avez créés sur votre machine dans un gui.

Une autre note. Vous devrez peut-être extraire l'intégralité de la source network-manager pour créer l'openconnect d'un composant. Il peut y avoir de nombreuses dépendances et entre différents composants

Vous devez créer un correctif pour le paquet opneconnect actuel, puis créer un correctif en utilisant les outils de diff que vous utilisez. Et envoyez-le au responsable du paquet.

Ou, si vous souhaitez utiliser votre nouveau package de correctif localement, vous souhaitez créer un fichier de package .deb.

Créer un paquet c'est assez compliqué lire les liens suivants

2
nelaaro