Esempio minimo con il hello
pacchetto
Tutto questo e molto altro è descritto su: https://www.debian.org/doc/manuals/maint-guide/build.en.html
Innanzitutto otteniamo un pacchetto di esempio per modificare l'origine per:
sudo apt-get install hello
hello
uscite:
Hello, world!
Ora facciamolo. Ottieni la fonte:
apt-get source hello
cd hello-*
e apri:
vim src/hello.c
e modifica il messaggio in:
Hello, world hacked!
Quindi fai lo stesso sul test, altrimenti il test fastidioso inizierà a fallire:
vim tests/greeting-1
Quindi ricostruire con:
sudo apt-get install devscripts
sudo apt-get build-dep hello
debuild -b -uc -us
Verso la fine dell'output, dice:
dpkg-deb: building package 'hello' in '../hello_2.10-1build1_amd64.deb'.
così ha creato il .deb nella directory principale, come osi. Quindi finalmente installiamo e testiamo il pacchetto modificato:
sudo dpkg -i ../hello_2.10-1build1_amd64.deb
hello
e il gioco è fatto, emette il nuovo messaggio:
Hello, world hacked!
Testato su Ubuntu 18.04.
Vecchia bzr
risposta
TODO: questa ha smesso di funzionare su Ubuntu 16.04 Xenial, in mancanza di: bzr: ERROR: Not a branch: "bzr+ssh://bazaar.launchpad.net/+branch/ubuntu/hello/".
. bzr branch lp:ubuntu/wily/hello
funziona e bzr branch lp:ubuntu/xenial/hello
fallisce di nuovo. Per qualche motivo https://code.launchpad.net/ubuntu/+source/hello non mostra Xenial: https://web.archive.org/save/https://code.launchpad.net/ubuntu/+source /Ciao
Come accennato su https://askubuntu.com/a/81889/52975, esiste anche un approccio specifico per Ubuntu bzr
.
Ottieni l'ultima versione:
bzr branch lp:ubuntu/hello
Versione specifica:
bzr branch lp:ubuntu/trusty/hello
Puoi anche usare pull-lp-source
:
sudo apt-get install ubuntu-dev-tools
pull-lp-source hello
Quindi sarai in grado di modificarlo:
cd hello
vim some_file
Ricostruiscilo:
dch -i
debcommit
bzr bd -- -b -us -uc
E installalo:
sudo dpkg -i ../hello.deb
La guida al packaging di Ubuntu è una buona fonte di informazioni.
apt-get
supporta anche programmi a sorgente chiuso, quindi il tuo presupposto iniziale non è corretto.