Minimales Beispiel mit dem hello
Paket
All dies und mehr finden Sie unter: https://www.debian.org/doc/manuals/maint-guide/build.en.html
Lassen Sie uns zuerst ein Beispielpaket zum Ändern der Quelle für Folgendes erhalten:
sudo apt-get install hello
hello
Ausgänge:
Hello, world!
Jetzt lass es uns hacken. Holen Sie sich die Quelle:
apt-get source hello
cd hello-*
und offen:
vim src/hello.c
und ändern Sie die Nachricht zu:
Hello, world hacked!
Machen Sie dasselbe beim Test, sonst schlägt der nervige Test fehl:
vim tests/greeting-1
Dann wieder aufbauen mit:
sudo apt-get install devscripts
sudo apt-get build-dep hello
debuild -b -uc -us
Gegen Ende der Ausgabe heißt es:
dpkg-deb: building package 'hello' in '../hello_2.10-1build1_amd64.deb'.
Also erstellte es die .deb im übergeordneten Verzeichnis, wie kann ich es wagen. Als letztes installieren und testen wir das modifizierte Paket:
sudo dpkg -i ../hello_2.10-1build1_amd64.deb
hello
und los geht's, es gibt die neue Nachricht aus:
Hello, world hacked!
Getestet unter Ubuntu 18.04.
Alte bzr
Antwort
TODO: Auf Ubuntu 16.04 Xenial funktionierte dies nicht mehr bzr: ERROR: Not a branch: "bzr+ssh://bazaar.launchpad.net/+branch/ubuntu/hello/".
. bzr branch lp:ubuntu/wily/hello
funktioniert und bzr branch lp:ubuntu/xenial/hello
fällt wieder aus. Aus irgendeinem Grund zeigt https://code.launchpad.net/ubuntu/+source/hello Xenial nicht an: https://web.archive.org/save/https://code.launchpad.net/ubuntu/+source /Hallo
Wie unter https://askubuntu.com/a/81889/52975 erwähnt, gibt es auch einen Ubuntu-spezifischen Ansatz mit bzr
.
Die neueste Version bekommen:
bzr branch lp:ubuntu/hello
Spezifische Version:
bzr branch lp:ubuntu/trusty/hello
Sie können auch verwenden pull-lp-source
:
sudo apt-get install ubuntu-dev-tools
pull-lp-source hello
Dann können Sie es bearbeiten:
cd hello
vim some_file
Erstellen Sie es neu:
dch -i
debcommit
bzr bd -- -b -us -uc
Und installiere es:
sudo dpkg -i ../hello.deb
Der Ubuntu-Verpackungsleitfaden ist eine gute Informationsquelle.
apt-get
unterstützt auch Closed-Source-Programme, sodass Ihre ursprüngliche Annahme falsch ist.