Exemple minimal avec le hello
package
Tout cela et bien d’autres sont décrits à l’ adresse : https://www.debian.org/doc/manuals/maint-guide/build.en.html
Commençons par obtenir un exemple de package pour modifier le source pour:
sudo apt-get install hello
hello
les sorties:
Hello, world!
Maintenant, piratons-le. Obtenir la source:
apt-get source hello
cd hello-*
et ouvert:
vim src/hello.c
et modifiez le message à:
Hello, world hacked!
Ensuite, faites de même pour le test, sinon le test ennuyeux commencera à échouer:
vim tests/greeting-1
Puis reconstruire avec:
sudo apt-get install devscripts
sudo apt-get build-dep hello
debuild -b -uc -us
Vers la fin de la sortie, il est écrit:
dpkg-deb: building package 'hello' in '../hello_2.10-1build1_amd64.deb'.
donc il a créé le .deb sur le répertoire parent, comment osez-le. Alors finalement, nous installons et testons le paquet modifié:
sudo dpkg -i ../hello_2.10-1build1_amd64.deb
hello
et voilà, il envoie le nouveau message:
Hello, world hacked!
Testé sur Ubuntu 18.04.
Ancienne bzr
réponse
TODO: cela a cessé de travailler sur Ubuntu 16.04 Xenial, à défaut avec: bzr: ERROR: Not a branch: "bzr+ssh://bazaar.launchpad.net/+branch/ubuntu/hello/".
. bzr branch lp:ubuntu/wily/hello
fonctionne et bzr branch lp:ubuntu/xenial/hello
échoue à nouveau. Pour une raison quelconque, https://code.launchpad.net/ubuntu/+source/hello ne montre pas Xenial: https://web.archive.org/save/https://code.launchpad.net/ubuntu/+source /salut
Comme mentionné à l' adresse https://askubuntu.com/a/81889/52975, il existe également une approche spécifique à Ubuntu avec bzr
.
Obtenez la dernière version:
bzr branch lp:ubuntu/hello
Version spécifique:
bzr branch lp:ubuntu/trusty/hello
Vous pouvez également utiliser pull-lp-source
:
sudo apt-get install ubuntu-dev-tools
pull-lp-source hello
Ensuite, vous pourrez l'éditer:
cd hello
vim some_file
Reconstruisez-le:
dch -i
debcommit
bzr bd -- -b -us -uc
Et installez-le:
sudo dpkg -i ../hello.deb
Le guide d’emballage Ubuntu est une bonne source d’information.
apt-get
prend également en charge les programmes à source fermée, donc votre hypothèse initiale est incorrecte.