Minimalny przykład z hello
pakietem
Wszystko to i więcej opisano w: https://www.debian.org/doc/manuals/maint-guide/build.en.html
Najpierw zdobądźmy przykładowy pakiet do modyfikacji źródła dla:
sudo apt-get install hello
hello
wyjścia:
Hello, world!
Teraz zhakujmy to. Uzyskaj źródło:
apt-get source hello
cd hello-*
i otwórz:
vim src/hello.c
i zmodyfikuj wiadomość, aby:
Hello, world hacked!
Następnie zrób to samo na teście, w przeciwnym razie denerwujący test zacznie się nie powieść:
vim tests/greeting-1
Następnie odbuduj za pomocą:
sudo apt-get install devscripts
sudo apt-get build-dep hello
debuild -b -uc -us
Pod koniec wyjścia napisano:
dpkg-deb: building package 'hello' in '../hello_2.10-1build1_amd64.deb'.
więc utworzył .deb w katalogu nadrzędnym, jak śmiesz. Wreszcie instalujemy i testujemy zmodyfikowany pakiet:
sudo dpkg -i ../hello_2.10-1build1_amd64.deb
hello
i proszę bardzo, wyświetla nową wiadomość:
Hello, world hacked!
Testowane na Ubuntu 18.04.
Stara bzr
odpowiedź
TODO: ten przestał działać na Ubuntu 16.04 Xenial, w przypadku braku z: bzr: ERROR: Not a branch: "bzr+ssh://bazaar.launchpad.net/+branch/ubuntu/hello/".
. bzr branch lp:ubuntu/wily/hello
działa i bzr branch lp:ubuntu/xenial/hello
znowu nie działa. Z jakiegoś powodu https://code.launchpad.net/ubuntu/+source/hello nie wyświetla Xenial: https://web.archive.org/save/https://code.launchpad.net/ubuntu/+source /cześć
Jak wspomniano na https://askubuntu.com/a/81889/52975, istnieje również podejście specyficzne dla Ubuntu bzr
.
Pobierz najnowszą wersję:
bzr branch lp:ubuntu/hello
Konkretna wersja:
bzr branch lp:ubuntu/trusty/hello
Możesz także użyć pull-lp-source
:
sudo apt-get install ubuntu-dev-tools
pull-lp-source hello
Następnie będziesz mógł go edytować:
cd hello
vim some_file
Odbuduj to:
dch -i
debcommit
bzr bd -- -b -us -uc
I zainstaluj:
sudo dpkg -i ../hello.deb
Przewodnik po opakowaniach Ubuntu jest dobrym źródłem informacji.
apt-get
obsługuje również programy o zamkniętym źródle, więc twoje początkowe założenie jest nieprawidłowe.