Debian and Ubuntu packages make it easy to hack on software that's
packaged and try out your changes, within the framework of the packaging
system. These instructions assume that you have an understanding of how
Debian packaging works, although all you really need to know is that
each file in the distribution comes from a package, which
contains the compiled form of a source package.
1. Figure out what package the software is from. Usually it's named
approximately the same as the software itself, e.g., `barnowl` or `gdb`
or `libwww-mechanize-ruby`. You can use the command `dpkg -S` to figure
out where a file comes from, or search on
[packages.debian.org](http://packages.debian.org/) or
[packages.ubuntu.com](http://packages.ubuntu.com/).
2. Type `apt-get source` followed by the package name. This will
download the source package.
3. cd into the directory that was just created and make whatever changes
you want.
4. Run the command `dch -i`, which edits the debian/changelog file and
increments the version. Add something like "~edited1" to the end of the
version, because a version with a tilde in it is considered older than a
version without. This means Debian will let you install your edited
version over the current version, but also permit the next offical
release to supersede your hacked version.
5. Run the command `debuild` to compile the software and build a
package.
6. `cd ..` and then find the package that was just built. As root, run
`dpkg -i` followed by this package name.
You can find more information about writing Debian or Ubuntu packages in
[Ubuntu's packaging guide](https://wiki.ubuntu.com/PackagingGuide) or
SIPB's [packaging tutorial](http://debathena.mit.edu/packaging/) on the
Debathena website.