Tag Archives: deb

Linux Palvelimena kotitehtävä 4 | Metapaketti & Reprepro | Esa Eskola

Linux Palvelimena kotitehtävä #4

Harjoitus tehdään Xubuntun versiolla 13.10 joka pyörii VirtualBoxilla. Koneeseen on allokoitu keskusmuistia 2048MB ja yksi prosessorin ydin.
Tehtävänanto:

h4:
– Tee metapaketti, joka asentaa suosikkiohjelmasi. Katso, että se menee läpi lintianista.
– Tee pakettivarasto repreprolla
– Paketoi jokin skriptisi, niin että paketti asentaa järjestelmän käyttäjille uuden käskyn

Vapaaehtoiset bonus-tehtävät:
– Kertaa Apachen asennus, käyttäjien kotisivujen teko ja lokin lukeminen
– Allekirjoita reprerolla tekemäsi varasto

Aloitetaan jo tuttuun tapaan päivittämällä kaikki tarjolla olevat paketit kommenolla:

$ sudo apt-get update

Deb-paketin luominen

Ohjetta metapaketin luomisessa käytetään seuraavaa http://terokarvinen.com/2011/create-deb-metapackage-in-5-minutes

Ensimmäisenä pitää asentaa equivs niminen ohjelma joka onnistuu seuraavanlaisesti:

$ sudo apt-get install equivs

Tämän jälkeen luodaan source file.

$ equivs-control esas-programs.cfg

Ja editoidaan sen sisältöä:

$ nano esas-programs.cfg

Ohjeessa kerrotaan, että kohtia “Package”, “Version” ja “Depends” pitää muokata haluamallaan tavalla ja ottaa pois # rivien edestä.

Muokatut rivit:

Package: esas-programs

Version: 1.0

Depends: nmap, irssi, gedit

Paketin nimi on esas-programs, versio 1.0 ja ohjelmat jotka asentuvat ovat nmap, irssi ja gedit.

Rakennetaan deb-paketti tuosta .cfg tiedostosta

$ equivs-build esas-programs.cfg

Kokeillaan toimiiko deb-paketti

$ sudo gdebi -n esas-programs_1.0_all.deb

sudo: gdebi: command not found

Ja komentokehoite ystävällisesti ilmoittaa kyseisen ohjelman puuttumisen koneelta. Asennetaan se.

$ sudo apt-get install -y gdebi

Kokeillaan uudestaan..

$ equivs-build esas-programs.cfg

Tarkastuksen jälkeen katsotaan löytyykö asennetut ohjelmat. Kirjoitetaan esimerkiksi terminaaliin ged ja täydennetään tabulatorilla. Gedit ja muut softat näyttää löytyvän koneelta, deb paketti toimii!

Vuorossa on tarkastaa, meneekö ohjelma läpi lintianista.

$ lintian esas-programs_1.0_all.deb

E: esas-programs: debian-changelog-file-contains-invalid-email-address esa@xubu

E: esas-programs: maintainer-address-malformed esa <esa@xubu>

Muokataan cfg tiedostoa sen verran, ettei lintian siitä huomauta enään.

Maintainer- ja versioriviä muokattu.

Aina kun tehdään muutoksia pakettiin, on syytä päivittää myös versionumerota.

Version: 1.1

Maintainer: Esa Eskola <esa.eskola@pleasedonotsendspam.com>

$ equivs-build esas-programs.cfg

$ lintian esas-programs_1.1_all.deb

Lintian ei ilmoittanut mitään herjaa, eli deb-paketin tarkastus menee lintianista läpi lähes heittämällä.

Pakettivaraston luominen repreprolla

Ohjeina käytetään seuraavia http://terokarvinen.com/2011/update-all-your-computers-with-a-deb-repository

http://terokarvinen.com/2008/install-apache-web-server-on-ubuntu-4

Asennetaan Apache web-palvelin, sallitaan käyttäjien kotihakemistot ja luodaan itselle public_html hakemisto.

$ sudo apt-get install apache2

$ sudo a2enmod userdir

$ sudo /etc/init.d/apache2 restart

$ mkdir /home/esa/public_html

Asennetaan reprepro

$ sudo apt-get install reprepro -y

Luodaan tyhjä repository ja konfiguroidaan se.

$ cd public_html/

$ mkdir -p repository/conf

$ nano repository/conf/distributions

Lisätään muutamia rivejä tiedostoon

(http://www.cyberciti.biz/faq/find-linux-distribution-name-version-number/ , http://kimstenberg.wordpress.com/)

Codename: saucy

Components: main

Suite: saucy

Architectures: i386 amd64 source

Lisätään .deb paketti

$ cd

$ reprepro -VVVV -b public_html/repository/ includedeb saucy esas-programs_1.1_all.deb

Muokataan repository listaa

$ sudoedit /etc/apt/sources.list.d/repository.list

Lisätään sinne rivi

deb http://127.0.0.1/~esa/repository saucy main

$ sudo apt-get update

$ sudo apt-get install esas-programs

Paketti esas-programs löytyi, mutta ei asentanut mitään koska ne olivat jo aikasemmin asennettu. Poistin kaikki paketissa olevat ohjelmat ja kokeilin asentaa uudestaan tuon “esas-programs” ja kaikki ohjelmat asentui uudestaan.

Scriptin luominen

nano ipscript

#!/bin/bash

pwd

ifconfig

Scripti siis näyttää nykyisen työhakemiston ja verkkoasetukset.

Muokataan vielä oikeuksia jotta sitä voidaan ajaa.

$ chmod a+x ipscript

Lisätään cfg tiedostoon Files kohtaan tuo scripti.

Files: ipscript /usr/local/bin/

Sitten luodaan päivitetty deb paketti.

$ equivs-build esas-programs.cfg

$ sudo gdebi esas-programs_1.2_all.deb

Tämän jälkeen komento ipscript toimii.

Lähteet:

http://terokarvinen.com/2011/update-all-your-computers-with-a-deb-repository
http://www.cyberciti.biz/faq/find-linux-distribution-name-version-number/
http://terokarvinen.com/2007/shell-scripting-4
http://terokarvinen.com/2008/install-apache-web-server-on-ubuntu-4
http://terokarvinen.com/2011/create-deb-metapackage-in-5-minutes
http://kimstenberg.wordpress.com/