sunnuntai 16. helmikuuta 2014

ICT4TN003-12: Paketoimista Ubuntulla

Tällä kertaa tehtävänä metapaketin tekeminen, pakettivaraston tekeminen repreprolla ja skriptin paketoiminen. Vapaaehtoisena lisähaasteena repreprolla tehdyn varaston allekirjoittaminen. Tällä kertaa käytössä Netcieliltä vuokrattu ranskalainen virtuaalipalvelin, jossa käyttöjärjestelmänä Ubuntu 13.04. Yhteys serveriin Windows 7 -läppärin PuTTY:llä.

Aloitetaan opettajan ohjeiden mukaan asentamalla equivs.

sudo apt-get update
sudo apt-get install equivs

Asennus sujui hyvin. Ja sitten tekemään metapakettia, joka asentaa suosikkiohjelmani. Paremman ajatuksen puuttuessa, päädyn geo-ip:hen. Ensin tehdään paketti:

equivs-control lasse-geoip.cfg
sudo nano lasse-geoip.cfg

Sitten editoidaan cfg-tiedosto tällaiseen kuntoon:


Ja sitten varsinainen rakentaminen:

equivs-build lasse-geoip.cfg

Ja eipä onnistunutkaan vaan tuloksena on valituksia: "badly formatted heading line", "found blank line where expected first heading" ja niin edelleen. Käydäänpä katsomassa miltä se cfg-näyttikään... Korjailen sen perusteella, mitä virheilmoitusket saattaisivat tarkoittaa, mutta lopputulos on sama. Otan alusta asti uudestaan, mutta ei auta aina vaan tuloksena on samankaltainen litanja virheitä:


En ymmärrä vastoinkäymisiä, sillä vastaava onnistui tunnilla käyttämälläni live-CD:llä ilman ongelmia. Päätän jättää harjoituksen tällä erää tähän ja palata siihen vanhalla, tutulla ja turvallisella testikoneella.

* * *

Ja nyt jatkuu! Tällä kertaa alustana edellisistä tehtävistä tuttu HP-torni ja käyttöjärjestelmänä Ubuntu 12.04 LTS live-CD:ltä ajettuna. Tällä se ainakin tunnilla onnistui...

Eli sitten vaan tuttuja komentoja syöttämään. Tällä kertaa päätän tehdä ainakin teoriassa hyödyllisen paketin, joka asentaa Linuxiin "ampin", että saadaan LAMP (Linux-Apache-MySQL-PHP). Laiskuuttani ajan kaikki komennot sudona.

su sudo

apt-get update

apt-get install equivs

...jota ei kuitenkaan löydy, joten edetään kuten aiemmassa tehtävässä hakemalla universe-repository:

sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) main universe restricted multiverse"

apt-get update

apt-get install equivs

Nyt onnistui! Sitten tehdään paketti:

equivs-control lasse-lamp.cfg

sudo nano lasse-lamp.cfg

Päivitetään tiedosto näyttämään tältä:



Sitten rakennetaan:

equivs-build lasse-lamp.cfg

Ja ladataan lintian testaamista varten:

apt-get install lintian

Testataan:

lintian lasse-lamp_0.1_all.deb

Lintian valittaa sähköpostiosoitteesta, jonka jätin oletukseksi. Kun taas korjaan siihen oman osoitteeni ja poistan #-kommentointimerkin, equivs-build ei suostu rakentamaan pakettia vaan valittaa "trailer linen" väärästä formaatista. Tyydyn lopulta siihen versioon, josta lintian valittaa. Se kuitenkin syntyi, enkä testaamisella pääse virheestä eroon.

Seuraavaksi kokeillaan paketin asennusta:

gdebi -n lasse-lamp_0.3_all.deb

gdebiä ei tietenkään koneella ole, joten se on vielä asennettava:

apt-get install gdebi

Ja sitten alkaa tapahtua! Ohjelmat asentuvat nätisti, ainoa katko on MySQL:n pyyntö saada salasana.

Seuraavana tehtävänä reprepron käyttö. Sekin pitää aluksi asentaa:

apt-get install reprepro

Sitten ohjeiden mukaisesti teen kansion conf ja sinne tiedotston distributions. Se sisällöksi seuraavaa:



Sitten vaan varsinainen rakennus:

reprepro includedeb lammas lasse-lamp_0.3_all.deb

Ja valmista tulee!

Sitten vielä skriptin paketoiminen, siten että se on asennettuna kaikkien käyttäjien käytettävissä. Teen nimellä tiedot.sh yksinkertaisen skriptin työskentelykansion ja vapaan levytilan näyttämiseen. Se sisältö on:

pwd
df

Ja tälle ajo-oikeudet:

chmod 755 tiedot.sh

Sen jälkeen ajan equivsin tehdäkseni tästä paketin:

equivs-control tiedot.cfg

Sen sisältöä muokkaan aiemmin oppimani mukaan:



Sitten ajan buildin:

equivs-build tiedot.cfg

Ja asennan paketin kokeeksi:

gdebi -n tiedot_0.1_all.deb

Ja se olikin sitten siinä!


Lähteet:

Ei kommentteja:

Lähetä kommentti