Packaging Doctrine for Debian and Ubuntu
I have been indoctrinated into to the everything on production machines should be packaged school of thought. Rather than bang on about that, I intend to keep this post relatively short and announce that I have created Debian (and Ubuntu) packages for Doctrine, the ORM for PHP.
The packaging is rather basic, it gets installed just like any other
Debianised PEAR package, that being the files go in /usr/share/php
, the
package.xml
and any documentation goes into /usr/share/doc/<package>
,
and the tests are stored as examples in
/usr/share/doc/<package>/examples
. The generated package will be
called php-doctrine_1.2.1-1_all.deb
(or similar), to comply with the
Debian convention of naming all PEAR packages
php-<pear-package-name>_<version>_<architecture>.deb
. I have
only packaged 1.2.1, but the files can easily be adapted for other
versions, some of the packaging is designed to be version agnostic
anyway.
To create your own Doctrine deb, follow these steps:
- Create a directory, such as
~/packaging/php-doctrine-1.2.1
- Change into the new directory
Download my(no longer available) and extract it in your php-doctrine-1.2.1 directorydebian/
tarball- Download the PEAR package tarball from the project website and extract it in your php-doctrine-1.2.1 directory
- If you don’t already have a standard Debian build environment setup,
set one up by running
sudo apt-get install build-essential
- To build the package run
dpkg-buildpackage -k<your-gpg-key-id> -rfakeroot
. If you don’t have a gpg key drop the “-k<your-gpg-key-id>
” from the command
Now you should have a shiny new Doctrine deb. I think the best way to deploy it is using apt and private package repository.
Update: Micah Gersten pointed me to a Doctrine ITP for Debian. Hopefully Federico’s work will mean I no longer need to maintain my own packaging of Doctrine.