You can run the following command line:
for f in /var/lib/apt/lists/*Packages; do
printf '%5d %s\n' $(grep '^Package: ' "$f" | wc -l) ${f##*/}
done | sort -n
that on my machine show the following output
27433 it.archive.ubuntu.com_ubuntu_dists_oneiric_universe_binary-i386_Packages
7768 it.archive.ubuntu.com_ubuntu_dists_oneiric_main_binary-i386_Packages
1944 it.archive.ubuntu.com_ubuntu_dists_oneiric-updates_main_binary-i386_Packages
664 it.archive.ubuntu.com_ubuntu_dists_oneiric_multiverse_binary-i386_Packages
632 security.ubuntu.com_ubuntu_dists_oneiric-security_main_binary-i386_Packages
605 it.archive.ubuntu.com_ubuntu_dists_oneiric-updates_universe_binary-i386_Packages
167 security.ubuntu.com_ubuntu_dists_oneiric-security_universe_binary-i386_Packages
67 it.archive.ubuntu.com_ubuntu_dists_oneiric-backports_universe_binary-i386_Packages
24 it.archive.ubuntu.com_ubuntu_dists_oneiric-updates_multiverse_binary-i386_Packages
21 it.archive.ubuntu.com_ubuntu_dists_oneiric_restricted_binary-i386_Packages
13 extras.ubuntu.com_ubuntu_dists_oneiric_main_binary-i386_Packages
12 archive.canonical.com_ubuntu_dists_oneiric_partner_binary-i386_Packages
11 it.archive.ubuntu.com_ubuntu_dists_oneiric-backports_main_binary-i386_Packages
10 security.ubuntu.com_ubuntu_dists_oneiric-security_multiverse_binary-i386_Packages
6 it.archive.ubuntu.com_ubuntu_dists_oneiric-updates_restricted_binary-i386_Packages
0 security.ubuntu.com_ubuntu_dists_oneiric-security_restricted_binary-i386_Packages
0 it.archive.ubuntu.com_ubuntu_dists_oneiric-backports_restricted_binary-i386_Packages
0 it.archive.ubuntu.com_ubuntu_dists_oneiric-backports_multiverse_binary-i386_Packages
Idea & Purpose
The main reason for separating out these different packages has to do with disk space and download speed. In particular, it is a big concern for mirror space since it means distributing multiple copies of the data. By making the foo-common
, foo-data
, or foo-doc
packages Architecture: all
, we only keep one copy of of the data in the archive instead of having it copied with each architecture (e.g. i386, amd64, ect...). Debugging symbols are not needed by most users and just end up making the package download take longer.
For packages in the official Ubuntu archives, there is actually no reason to create -dbg
packages manually. The build machines automatically strip out the debugging symbols and put them into -dbgsym
packages hosted on ddebs.ubuntu.com. (See: Debug Symbol Packages) -dbg
packages that do exist are usually simply carried over from Debian.
Instructions
As for implementation, take a look at this question:
Briefly, new stanzas need to be created in debian/control
for each package. Then debian/foo-*.install
files need to be created as well. This will allow dh_install
to put the right contents into the right packages.
The foo.install
for the main binary package might look like:
usr/bin/
usr/lib/
foo-common.install
, foo-data.install
, foo-doc.install
, or whatever:
/usr/share/doc/
/usr/share/icons/
/usr/share/foo/
/usr/share/locale/
And for foo-dev
:
/usr/include/
/usr/lib/pkgconfig
/usr/lib/*.so
Creating the foo-dbg
package requires editing debian/rules
as normally dh_strip
will strip out debugging symbols. So we need to override that behavior:
.PHONY: override_dh_strip
override_dh_strip:
dh_strip --dbg-package=foo-dbg
Best Answer
Use super deb creator. You can make stand alone packages for upto Ubuntu 11.04. For more details check the official website. http://hacktolive.org/wiki/SuperDeb_Creator