Is it possible to create a stand alone deb packages by merging dependancies without manual repacking.??
I've looked at this question but it doesn't really answer what I'm trying to achieve above.
if possible how to do it?
update 1
No tools available yet(?) So what about creating new deb package containing all packages which will copy dependencies to the cache and executing main package. Is it possible?
update 2
Above method appears to be impossible because dpkg cant handle more than one operation at a time. Some scripts may can do it
update 3
this tool is very helpful but it currently wont support oneric and above still waiting for more generic tool
Thanks in advance
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
No. If you want a single package without dependencies, you will need to repackage it yourself.
To understand how packages work you can read the debian packaging guide.
If all of these things are already in the Ubuntu archive, then all you really want is a meta package that causes their installation, right?
You really just need to create a nearly empty package with dh_make. Tell it you want a single binary, and a native package. In an empty directory:
Then edit debian/control, and in the binary package section (the second one) Add all the packages you want installed to the Depends: section, separated by commas.
Then build the package with
If you'd like to upload it to a PPA on Launchpad so others can easily get it:
Of course, change oneiric to whatever you wish to package this for. Then in the directory above you should have
After you've created a PPA just do
And then anybody who installs that package will also download and install all of the other bits depended on.
If I was going to have a hack at this, I'd do the following:
DEBIAN/control
file soProvides
lineConflicts
entries for the packages you're replacingDependencies
linepostinst
andpreinst
,prerm
andpostrm
scripts so your new copy handles things for all the packages. This isn't simple because you'll need to understand what each package is doing at each step.At the end you should be left with something you can install but it's not great. You're going to have to manually repeat those steps any time one of the original packages gets an update.
The systems that keep their original packaging systems are much better. You'd even be better just shipping separate debs around. It'll take less time and will be more robust.
Of course it's possible, but I'm not aware of any tools that will do it for you. So manual repackaging is the way to go.
Disclaimer: I have not tried this, this is just my sketch of a solution.
You could perhaps download all the dependencies to a directory, make it into a debian repository, make an ISO image of the repository, and then distribute the ISO.
You would then mount the ISO as a loopback device, and instruct apt to use the mounted directory as a source of packages -- just like you can use your Ubuntu installation disc as a repository.
Seems like an awful lot of work, though, but you would wind up with a single redistributable file that contains all dependencies without requiring you to repackage the deb files.
if they don't have 'good' connectivity, but still some, you can share the files /var/cache/apt/archives directory, which will be used instead of redownloading the file.
This method doesn't solve the problem of how to synchronize the repository index though.