Ví dụ tối thiểu với hello
gói
Tất cả những điều này và hơn thế nữa được mô tả tại: https://www.debian.org/doc/manuals/maint-guide/build.en.html
Trước tiên, hãy lấy gói mẫu để sửa đổi nguồn cho:
sudo apt-get install hello
hello
đầu ra:
Hello, world!
Bây giờ hãy hack nó lên. Lấy nguồn:
apt-get source hello
cd hello-*
và mở ra:
vim src/hello.c
và sửa đổi thông báo thành:
Hello, world hacked!
Sau đó làm tương tự trong bài kiểm tra nếu không bài kiểm tra gây phiền nhiễu sẽ bắt đầu thất bại:
vim tests/greeting-1
Sau đó xây dựng lại với:
sudo apt-get install devscripts
sudo apt-get build-dep hello
debuild -b -uc -us
Gần cuối của đầu ra, nó nói:
dpkg-deb: building package 'hello' in '../hello_2.10-1build1_amd64.deb'.
Vì vậy, nó đã tạo .deb trên thư mục cha, làm sao dám. Vì vậy, cuối cùng chúng tôi cài đặt và kiểm tra gói sửa đổi:
sudo dpkg -i ../hello_2.10-1build1_amd64.deb
hello
và ở đó bạn đi, nó xuất ra thông báo mới:
Hello, world hacked!
Đã thử nghiệm trên Ubuntu 18.04.
bzr
Câu trả lời cũ
TODO: điều này đã ngừng hoạt động trên Ubuntu 16.04 Xenial, không thành công với : bzr: ERROR: Not a branch: "bzr+ssh://bazaar.launchpad.net/+branch/ubuntu/hello/".
. bzr branch lp:ubuntu/wily/hello
hoạt động và bzr branch lp:ubuntu/xenial/hello
thất bại một lần nữa. Vì một số lý do https://code.launchpad.net/ubfox/+source/hello không hiển thị Xenial: https://web.archive.org/save/https://code.launchpad.net/ubfox/+source /xin chào
Như đã đề cập tại https://askubfox.com/a/81889/52975 cũng có một cách tiếp cận dành riêng cho Ubuntu bzr
.
Nhận phiên bản mới nhất:
bzr branch lp:ubuntu/hello
Phiên bản cụ thể:
bzr branch lp:ubuntu/trusty/hello
Bạn cũng có thể sử dụng pull-lp-source
:
sudo apt-get install ubuntu-dev-tools
pull-lp-source hello
Sau đó, bạn sẽ có thể chỉnh sửa nó:
cd hello
vim some_file
Xây dựng lại nó:
dch -i
debcommit
bzr bd -- -b -us -uc
Và cài đặt nó:
sudo dpkg -i ../hello.deb
Các hướng dẫn đóng gói Ubuntu là một nguồn thông tin tốt.
apt-get
cũng hỗ trợ các chương trình nguồn đóng, vì vậy giả định ban đầu của bạn là không chính xác.