La procédure que j'utilise est la suivante :
Obtenez la source (via apt-get src).
Appliquez un patch ou faites ce qui doit être changé.
exécutez debchange --nmu
et tapez une description de la modification que vous avez apportée. Cela incrémentera automatiquement le numéro de version afin que le système n'essaie pas de "mettre à niveau" votre package personnalisé vers le package standard.
Exécutez debuild
.
Profitez de vos fichiers deb.
J'ai trouvé le guide suivant sur les forums Ubuntu pour reconstruire le package du gestionnaire de réseau ici
Re :comment patcher la source d'un deb
Citation :Publié à l'origine par cordon
Je souhaite essentiellement reconstruire le package du gestionnaire de réseau avec une sorte de correctif personnalisé pour tester quelque chose. Alors je veux :1. obtenir le code source de la "version" ubuntu du gestionnaire de réseau
Code :
sudo apt-get source network-manager
Citation :2. patchez-le avec mon patchLes fichiers sources seront téléchargés dans le répertoire de travail. Voir ceci pour plus d'informations.
Citation :3. créer un fichier deb que je peux installer à la place du gestionnaire de réseau actuel.
Exécuter le code :
dans le répertoire créé.dpkg-buildpackage -rfakeroot -uc -b
A également trouvé cet article :Guide du nouveau responsable DebianChapitre 6 - Construire le paquet
Quant à vos modifications perdues par une mise à jour des dépôts officiels, je ne suis pas sûr. Vous pouvez toujours simplement renvoyer votre correctif en amont aux responsables du paquet compiz-gnome ou créer votre propre référentiel pour le paquet mis à jour.
La réponse aux points 3 et 4 est que vous devez mettre le paquet en attente statut une fois que vous avez installé votre version. Cela indique au système de gestion des paquets Debian de "retenir" toute modification future de ce paquet, ce qui vous permet en fait de gérer le paquet manuellement.
De la FAQ Debian :
7.11 Qu'entend-on par inconnu, installer, supprimer, purger et conserver dans l'état du package ?
Ces drapeaux "wanted" indiquent ce que l'utilisateur voulait faire avec un paquet (comme indiqué soit par les actions de l'utilisateur dans la section "Select" de dselect, soit par les appels directs de l'utilisateur à dpkg).
Leurs significations sont :
inconnu - l'utilisateur n'a jamais indiqué s'il voulait le colis>
install - l'utilisateur souhaite que le package soit installé ou mis à jour
remove - l'utilisateur souhaite supprimer le package, mais ne souhaite supprimer aucun fichier de configuration existant.
purge - l'utilisateur souhaite que le paquet soit complètement supprimé, y compris ses>fichiers de configuration.
hold - l'utilisateur souhaite que ce paquet ne soit pas traité, c'est-à-dire qu'il souhaite conserver la>version actuelle avec l'état actuel, quel qu'il soit.
7.12 Comment mettre un colis en attente ?
Il existe trois façons de retenir des paquets, avec dpkg, aptitude ou avec dselect.
Avec dpkg, il faut exporter la liste des sélections de packages, avec :
dpkg --get-selections *> selections.txt
Modifiez ensuite le fichier selections.txt résultant, modifiez la ligne contenant le package que vous souhaitez conserver, par ex. libc6, à partir de ceci :
installation libc6
à ceci :
libc6 hold
Enregistrez le fichier et rechargez-le dans la base de données dpkg avec :
dpkg --set-selections
Avec aptitude, vous pouvez conserver un paquet en utilisant
aptitude hold package_name
et supprimez la retenue avec
aptitude unhold package_name
Avec dselect, vous devez entrer dans l'écran [S]elect, trouver le paquet que vous souhaitez conserver>dans son état actuel, et appuyer sur le
=' key (or
H'). Les modifications seront mises en ligne immédiatement>après avoir quitté l'écran [S]électionner.
Remarque : Des personnes ont rencontré des problèmes avec aptitude hold commande, donc à mon humble avis, vous devriez préférer la commande dpkg pour contenir le paquet. Alternativement, vous pouvez conserver le package via l'interface graphique du gestionnaire de packages Synaptic (Package> Verrouiller la version). Ma préférence est d'utiliser dpkg car cela a bien fonctionné pour moi.
Vous avez déjà une bonne réponse pour le reste, donc je ne risquerai pas mon opinion là-dessus.