Мінімальний приклад з hello
пакетом
Все це та багато іншого описано на веб- сайті: https://www.debian.org/doc/manuals/maint-guide/build.en.html
Спочатку давайте отримаємо зразок пакета для зміни джерела для:
sudo apt-get install hello
hello
Виходи:
Hello, world!
Тепер давайте зламати це. Отримайте джерело:
apt-get source hello
cd hello-*
і відкрити:
vim src/hello.c
і змінити повідомлення на:
Hello, world hacked!
Потім зробіть те ж саме на тесті, інакше дратівливий тест почне виходити з ладу:
vim tests/greeting-1
Потім відновіть за допомогою:
sudo apt-get install devscripts
sudo apt-get build-dep hello
debuild -b -uc -us
Близько кінця виводу, він говорить:
dpkg-deb: building package 'hello' in '../hello_2.10-1build1_amd64.deb'.
тому він створив .deb у батьківському каталозі, як це зважитися. Отже, нарешті, ми встановлюємо та тестуємо модифікований пакет:
sudo dpkg -i ../hello_2.10-1build1_amd64.deb
hello
і там ви переходите, воно виводить нове повідомлення:
Hello, world hacked!
Тестовано на Ubuntu 18.04.
Стара bzr
відповідь
TODO: це перестав працювати на Ubuntu 16.04 дружніх, в іншому випадку з: bzr: ERROR: Not a branch: "bzr+ssh://bazaar.launchpad.net/+branch/ubuntu/hello/".
. bzr branch lp:ubuntu/wily/hello
працює і bzr branch lp:ubuntu/xenial/hello
відмовляється знову. Чомусь https://code.launchpad.net/ubuntu/+source/hello не показує Xenial: https://web.archive.org/save/https://code.launchpad.net/ubuntu/+source /Здравствуйте
Як згадувалося на https://askubuntu.com/a/81889/52975, існує також підхід, характерний для Ubuntu bzr
.
Отримайте останню версію:
bzr branch lp:ubuntu/hello
Конкретна версія:
bzr branch lp:ubuntu/trusty/hello
Ви також можете використовувати pull-lp-source
:
sudo apt-get install ubuntu-dev-tools
pull-lp-source hello
Тоді ви зможете редагувати це:
cd hello
vim some_file
Відновіть його:
dch -i
debcommit
bzr bd -- -b -us -uc
І встановіть його:
sudo dpkg -i ../hello.deb
Посібник з упаковки Ubuntu є хорошим джерелом інформації.
apt-get
також підтримує програми із закритим кодом, тому ваше початкове припущення є невірним.