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

Simple Debian Package Creation?



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?

I feel that RPM creation is better here. One command ('rpmbuild') is
used. One file, the <package>.spec file, is needed with different
sections for each part. I can keep my rpm packaging files any where I
want it, and I don't have to have my application directory conform to
any debian rules.

Why can't debian package building be as simple as 'dpkg-create
foo.spec'?

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

My main complaint here, is that we really want to be able to build the
debian packages from any developer workstation. Since we don't impose
operating system requirements on developers, we can't expect debian to
be on all workstations. 

Right now, using Debian to deploy our software seems more and more
difficult for us. I'd greatly appreciate any advice or comments. All I
want to be able to do is create a package on any unix system that can be
installed via apt-get, that simply installs some files, and can use the
pre/post install/remove scripts. This seems like a simple thing to do,
but the process seems very difficult.



-- 
Zach Garner <zach@awarix.com>



Reply to: