Linux palvelimena, kotitehtävä 4: Pakettien luontia

Tero Karvisen Linux palvelimena -kurssin neljäs kotitehtävä.

Harjoituksessa on käytetty HP EliteBook 2570p -tietokonetta ja Xubuntu 13.04 live-cd:tä.

 

Työaseman valmistelu

Vaihdetaan näppäimistön kieli suomeksi.

$ setxkbmap fi

Päivitetään pakettilista

$ sudo apt-get update

 

Metapaketin luonti

Aloitetaan asentamalla equivs.

$ sudo apt-get install equivs -y

Luodaan metapaketille “runkotiedosto”.

$ equivs-control desktop-programs.cfg

Muokataan tiedostoa sopivaksi ja lisätään siihen paketit, jotka halutaan asentuvan. Muokkauksen jälkeen tiedosto näytti tältä.

metapakettiskele

Ja luodaan tiedostosta metapaketti

$ equivs-build desktop-programs.cfg

 

Paketin toimivuuden testaaminen

Paketin toimivuus voidaan testaa Gdebillä.

$ sudo apt-get install gdebi -y

Ja sitten testataan paketin toimivuus

$ sudo gdebi -n desktop-programs_0.1_all.deb

Kaikki asentui kuten pitää, joten paketti toimii.

Testataan, että paketti menee läpi lintianista

$ sudo apt-get install lintian -y

$ lintian desktop-programs_0.1_all.deb

Lintian antaa virheilmoituksen sähköpostiosoitteesta

E: desktop-programs: debian-changelog-file-contains-invalid-email-address xubuntu@xubuntu
E: desktop-programs: maintainer-address-malformed Live session user <xubuntu@xubuntu>

Korjataan virhe muokkaamalla skeleton-tiedostoa

$ nano desktop-programs.cfg

Muutetaan seuraavat kohdat

Version: 0.2
# Maintainer: Your Name <yourname@example.com>

->

Version: 0.2
# Maintainer: Minttu-Maria Aalto <minttu-maria.aalto@myy.haaga-helia.fi>

Versionumero tulee muistaa vaihtaa, sillä tämä on uusi versio paketista.

Luodaan metapaketti

$ equivs-build desktop-programs.cfg

Ja koitetaan uudelleen

Saan saman virheilmoituksen ja tästä päättelin, että tuo maintainer-kohta olisi pitänyt ottaa pois kommenteista.

Muokataan vielä kerran

$ nano desktop-programs.cfg

Version: 0.3
Maintainer: Minttu-Maria Aalto <minttu-maria.aalto@myy.haaga-helia.fi>

Luodaan metapaketti

$ equivs-build desktop-programs.cfg

Ja testataan

$ lintian desktop-programs_0.3_all.deb

Ja nyt paketti menee ongelmitta läpi.

 

Pakettivaraston luonti repreprolla

$ sudo apt-get install reprepro -y

Reprepro vaatii toimiakseen myös Apachen, joka tuli asennettua aiemman metapaketin yhteydessä. Mikäli näin ei ole, saa Apachen asennettua käskyllä

$ sudo apt-get install apache2 -y

Luodaan public_html -hakemisto, jonne pakettivaraston hakemisto luodaan

$ mkdir public_html

Ja siirrytään tähän hakemistoon

$ cd public_html/

Luodaan pakettivaraston hakemisto

$ mkdir -p repository/conf

Ja muokataan sitä

$ nano repository/conf/distributions

repostiedosto

Lisätään haluamamme paketit pakettivarastoon

$ reprepro -VVVV -b repository/ includedeb lucid home/xubuntu/Desktop/desktop-programs_0.2._all.deb

Saan virheilmoituksen, ettei hakemistoa tai tiedostoa ole. Koitetaan luoda metapaketille oma hakemisto

$ cd

$ mkdir minttus-scripts

Siirretään metapaketti minttus-scripts-hakemistoon ja koitetaan lisätä sitä uudelleen pakettivarastoon

$ reprepro -VVVV -b repository/ includedeb lucid /home/xubuntu/minttus-scripts/desktop-programs_0.2._all.deb

Taas tulee virheilmoitusta, muokkasin käskyä miten vain. Ei auta, kuin luovuttaa tässä kohtaa.

 

Scriptin paketointi

Aloitetaan luomalla scriptitiedosto

$ nano current_folder_script

Tallennetaan tiedosto seuraavanlaiseksi

currentfilescripti

Annetaan tiedostolle ajo-oikeudet

$ chmod 755 current_folder_script

Testataan scriptin toiminta

$ ./current_folder_script

currentfoldertoimii

Tulostus näyttää oikealta, eli scripti toimii.

Seuraavaksi siirretään scripti hakemistoon /usr/local/bin/, jotta se on sieltä kaikkien käyttäjien käytettävissä.

$ sudo mv current-folder-script /usr/local/bin/

Sitten paketoidaan scripti

Luodaan ensiksi skeleton-tiedosto

$ equivs-control current-folder-script.cfg

currentskele

Luodaan paketti

$ equivs-build current-folder-script.cfg

Ja saan virheilmoituksen

Cannot copy current-folder-script to /home/xubuntu/equivs.5oA2C0/install/0/current-folder-script: No such file or directory

Järki eikä taito riitä enää, joten luovutan tässä kohtaa.

 

Lähteet:

This entry was posted in linux, linux palvelimena and tagged , , , , , , . Bookmark the permalink.

Leave a comment