Kuinka tehdä .deb-paketti?

Tehtävänantona on tehdä deb-paketti, joka asentaa itse tekemän shell scriptin.

Scriptin kirjoittaminen

Aloitin tekemällä shell scriptin, joka tervehtii ja kertoo päivämäärän kellonajan kanssa.

$ nano greeter.sh
#!/bin/bash
echo -n "Good day "
whoami
echo "************"
echo -n "Today is "
date
$ sudo cp greeter /usr/local/bin/    # Kopion scriptin sille sopivaan paikkaan.

Deb-paketin teko

Tämä jälkeen sitten asensin deb-paketin valmistukseen tarvittavan ohjelman:

$ sudo apt-get update   # Päivitetään pakettivarastot ennen asennusta
$ sudo apt-get install equivs

Tämän jälkeen tein tiedoston, mikä sisältää deb-paketin tiedot mm. versionumeron ja kuvaukset.

$ equivs-control antti-ville-greeter.cfg

Tämän jälkeen muokkasin äskön tehtyä tiedostoa.

# Source: <source package name; defaults to package name>
Section: misc
Priority: optional
# Homepage: <enter URL here; no default>
Standards-Version: 3.9.2

Package: antti-ville-greeter
Version: 1.0
# Maintainer: Antti-Ville Jokela <antti-ville@example.com>
# Pre-Depends: <comma-separated list of packages>
# Depends: <comma-separated list of packages>
# Recommends: <comma-separated list of packages>
# Suggests: <comma-separated list of packages>
# Provides: <comma-separated list of packages>
# Replaces: <comma-separated list of packages>
# Architecture: all
# Copyright: GPL ver. 2 or later
# Changelog: <changelog file; defaults to a generic changelog>
# Readme: <README.Debian file; defaults to a generic one>
# Extra-Files: <comma-separated list of additional files for the doc directory>
# Files: greeter /usr/local/bin
#  <more pairs, if there's more than one file to include. Notice the starting space>
Description: Antti-Ville's greeter

Nyt on luotu tiedosto antti-ville-greeter_1.0_all.deb.

Pakettivaraston tekeminen

Ja jotta omia pakettien levittäminen olisi helpompaa, kannattaa tehdä myös pakettivarasto. Pakettivarasto käyttää hyväkseen ihan normaalia palvelinta, jonka olenkin jo asentanut aikaisemmin. Ja asennuksessa kannattaa myös ottaa käyttäjän kotihakemisto käyttöön.

Aloitin asentamalla pakettivaraston tekoon tarkoitetun ohjelman:

$ sudo apt-get install reprepro

Tein myös omaan public_html -kansioon repository ja conf -kansiot.

$ mkdir -p repository/conf

Ja tein myös asetustiedoston pakettejavarten.

$ nano repository/conf/distributions
## Tiedosto sisältää seuraavat asetusrivit ##
Codename: precise
Components: main
Suite: precise
Architectures: i386 amd64 source

Seuraavaksi kopion metapakettini repository -kansioon:

$ cp ../antti-ville-greeter_1.0_all.deb repository/
$ reprepro -VVVV -b repository/ includedeb precise /home/eitsei/public_html/repository/antti-ville-greeter_1.0_all.deb
$ sudoedit /etc/apt/source.list
## Lisäsin seuraavan rivin tiedoston loppuun:
deb http://192.168.xxx.xxx/~xxx/repository precise main

Sitten vain pakettivarastojen päivitys ja lataamaan omaa pakettia.

$ sudo apt-get update
$ sudo apt-get install antti-ville-greeter

Ja kokeillaan sitten ajaa pakettia

$ greeter
Hello anttiville
***********
Today is Tue Mar 12 22:11:40 EET 2013

Lähteet

Tero Karvinen – Linux palvelimena -kurssi
Create deb-metapackage in 5 minutes

Eino Liimatta – Harjoitustehtävä 4

How to create a meta-package that automatically install other packages

-Jokela Antti-Ville

Tätä dokumenttia saa kopioida ja muokata GNU General Public License (versio 2 tai uudempi) mukaisesti. http://www.gnu.org/licenses/gpl.html

Bookmark the permalink.

Comments are closed.