Difference between revisions of "Create or Update a Debian package"
m (→Adding to a package repository) |
m (→Building into a package) |
||
Line 31: | Line 31: | ||
=== Building into a package === | === Building into a package === | ||
To turn the directory structure into a proper ''.deb'' package file, use: | To turn the directory structure into a proper ''.deb'' package file, use: | ||
− | dpkg -b <package- | + | dpkg -b /var/www/domains/packages/source/<package-name> |
The package will be created with the same name but with the ''.deb'' extension in the same directory as the package directory. | The package will be created with the same name but with the ''.deb'' extension in the same directory as the package directory. | ||
Revision as of 07:47, 8 July 2008
Create or Update a Debian package Organic Design procedure |
General procedure
Working directory structure
Here's an example directory structure for a package which replaces the apache default config file and sets up default php and html files in /var/www.
The control file in the DEBIAN sub-directory is the all the main configuration is done. The other three files in that sub-directory are scripts which execute on installation and removal of the package.
The rest of the directory structure outside the DEBIAN sub-directory define the directory structure which will be merged with the root of the filesystem when the package is installed.
Our packages at Organic Design are in /var/www/domains/packages and the source directory structures for them are in the sources subdirectory.
Building into a package
To turn the directory structure into a proper .deb package file, use:
dpkg -b /var/www/domains/packages/source/<package-name>
The package will be created with the same name but with the .deb extension in the same directory as the package directory.
Adding to a package repository
All the .deb package files must be added to the main repository on the server which is in /var/www/packages/main. Ensure that this repository is included in your /etc/apt/sources.list:
deb http://packages.organicdesign.co.nz main/
Whenever any of the packages in the repository change, the Packages.gz index file must be updated which can be done as follows:
dpkg-scanpackages /var/www/domains/packages/main /dev/null | gzip > /var/www/domains/packages/main/Packages.gz
See also
- Packages - we plan to manage our IT infrastructure using APT
- LinuxDevices instructions
- TLDP HOWTO
- Google:creating Debian packages
- Format of sources.list file