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äskynVapaaehtoiset 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/