[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Simple Debian Package Creation?



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.




Reply to: