On Wed, 03 Nov 2004 10:47:45 -0600, Zach Garner wrote: > My company is a software development shop that uses Debian for all of our > production systems. We chose Debian based on it's reputation on packaging. > Our goal is to be able to type 'ant deploy' have our software built, have > debian packages built with our software, and other support software, and > then have a debian repository created. Then be able to do 'apt-get update' > from our production systems, to upgrade our application on those systems. > > Unfortunately, it's not working out so easily. > > I've been a little frustrated with creating debian packages. As a user, I > love Debian, but so far as a package creator, it's given me headaches. I'm > hoping someone can enlighten me on a few things. I have a little > experience with RedHat's packaging about a year ago, so I will mention it > from time to time. Please don't take offense when I say that I like an > aspect of RPM creation better than debian creation. And definitely correct > my when my memory fails. > > First: > 1. The sheer number of helper scripts, with layers and layers of > scripts built on top of each other is really confusing. > 2. The number of files that I have to create within the /debian > directory is difficult to deal with, and having to create the /debian > directory within my application directory and being forced to name my > application directory according to debian rules is very irritating. > 3. Most of the package creation scripts (I'm refering explicitly to > dh_make which is supposed to be the proper way of creating a package, as > discussed in the New Maintainer's Guide) expect that you are building a > traditional unix application, that's written in C, has ./configure and a > Makefile. All we are doing in most of our packages is installing some > files. Why can't that be simple?
> > Second, why can't I create packages with standard unix commands? Why can't > I say something like: > $ tar cvzf data.tgz myapplication/* > $ tar czvf control.tgz control > $ tar czvf mypackage-0.1.deb data.tgz control.tgz Just use dpkg-deb --build fakeroot #you need to pretend to be root to get file permissions correct mkdir somedir #this directory contains your filesystem tree mkdir somedir/usr/bin -p #stuff here will be in /usr/bin when installed ... #do whatever it takes to make this directory mkdir somedir/DEBIAN #this contains package meta-information vi somedir/DEBIAN/control #this is the debian control file. you won't be #able to use shlibs to automatically compute dependancies dpkg-deb --build somedir #this is approximately equal to those archive #commands you want > Why can't debian package building be as simple as 'dpkg-create foo.spec'? It is, but for redhat you'd have to write foo.spec first. For Debian, you have to populate the debian directory first. -- I usually have a GPG digital signature included as an attachment. See http://www.gnupg.org/ for info about these digital signatures. -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]