Question

I am trying to create a Debian package for a Java application.

In my package there is a .jar file which is executable, a script which will run this jar file and a .so file for fmod. I've read this tutorial.

In the control file there is a 'Depends' field which basically describes the packages that need to be installed in order to install my application. My question is, how do I find which packages are required for my application? I followed the instructions in the tutorial for one of the .so files, and got this:

$ dpkg -S libfmodex64-4.28.09.so 
dpkg: *libfmodex64-4.28.09.so* not found.

Also, my application requires Java 1.5 to be installed in order for it to run. How do I specify this in my debian package?

Was it helpful?

Solution

I strongly recommend building your package from source within the Debian packaging infrastructure. Everything will be pretty much automatically taken care of if you use the Ant class in CDBS.

If you do insist on assembling a binary .deb only, equivs is much less hackish than the method described by your document.

OTHER TIPS

You'll want to get the canonical name for your library:

apt-cache search libname

Take care to note the nomenclature at the end of the package. You don't want to specify a specific version in the control file, just the earliest version of the library that is suitable for your application.

You would then use canonical_libname >= major.minor , which lets the system decide if you have (or can update to) the version of the library that can support your application. If you carve this in time, i.e. specifying the full version of your current library, you'll break in the future.

For instance, if you specify libfoo-1.2.34 and future versions of Debian ship libfoo-2.3.45, your package won't install, because it thinks you have an incompatible version of libfoo.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top