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