If I want to make minor changes to the source code of a Debian package, how do I go about downloading, incrementing the package version, building the (modified) source, and installing it on my computer?
1 Answers
Here are two ways to do it. The first one is the classic form, you'll get the source with apt-get
. The second is the new [ubuntu] way uses the bzr command.
Classic
$ apt-get source package
Then you'll be able to modify it:
$ cd package
$ vim some_file
Rebuild it:
$ sudo apt-get build-dep package
$ dch -i (which will open your editor to edit the changefile, here's where you can increment the package version)
$ debuild -us -uc -b
And install it:
$ sudo dpkg -i ../package.deb
New Ubuntu Approach
The new way (the Ubuntu way) is by using bzr branches, you'll get the code by using:
$ bzr branch lp:ubuntu/package #which will download the latest ubuntu package (the precise one)
$ bzr branch lp:ubuntu/oneiric/package #to get the package in oneiric
You can also get the code using:
$ pull-lp-source package #lp-source is part of the ubuntu-dev-tools pkg
pull-lp-source
used to be called just lp-source
in older versions.
Then you'll be able to edit it:
$ cd package
$ vim some_file
Rebuild it:
$ dch -i
$ debcommit
$ bzr bd -- -b -us -uc
And install it:
$ sudo dpkg -i ../package.deb
I recommend that you check the Ubuntu packaging guide out to know the details.
Also you might encounter problems if the package depends of others.

- 2,707

- 1,446
-
Using
apt-get source openjdk-7
took around 2 minutes for me, while usingbzr branch
took over an hour and I decided to kill the process. I'm wondering what would be the usefulness of this "new approach". – Andrea Lazzarotto Oct 07 '14 at 10:19 -
many thanks I did it, just need to install before: apt-get install dpkg-dev apt-get install dchroot devscripts apt-get install fakeroot – Sérgio Jan 14 '15 at 18:28
-
3You need
sudo apt-get install devscripts
to get the debuild command. – benjaoming Apr 08 '15 at 10:28 -
debuild
doesn't create a delta source package whiledpkg-buildpackage
does... – Daniel Alder Dec 01 '15 at 11:30 -
`bzr branch lp:ubuntu/xenial/lightdm
bzr: ERROR: Not a branch: "bzr+ssh://bazaar.launchpad.net/+branch/ubuntu/xenial/lightdm/".`
`bzr branch lp:ubuntu/lightdm
bzr: ERROR: Not a branch: "bzr+ssh://bazaar.launchpad.net/+branch/ubuntu/lightdm/".`
Ubuntu packaging guide, specifically 4.2. Getting the source says:
`bzr branch ubuntu:lightdm lightdm.quickswitch
bzr: ERROR: Not a branch: "bzr+ssh://bazaar.launchpad.net/+branch/ubuntu/lightdm/".`
What a mess. :-(
– Stéphane Gourichon Aug 15 '16 at 16:56
dpkg-buildpackage
to create a.deb
file.” That sounds a lot like instructions to (re-)build Debian packages to me. – David Foerster May 19 '15 at 07:32