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ä.
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
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
Annetaan tiedostolle ajo-oikeudet
$ chmod 755 current_folder_script
Testataan scriptin toiminta
$ ./current_folder_script
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
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:
- Tero Karvinen, Create deb metapackage in 5 minutes: http://terokarvinen.com/2011/create-deb-metapackage-in-5-minutes
- Update All Your Computers with a .DEB Repository: http://terokarvinen.com/2011/update-all-your-computers-with-a-deb-repository
- Linux.fi-wiki, Bash-skriptaus: http://linux.fi/wiki/Bash-skriptaus
- Kristiina Honkaheimo, Linux kotitehtävä 4: http://kristiinahonkaheimo.wordpress.com/2014/02/16/linux-kotitehtava-4/
- Janne Varis, Linux Server – Task 4: Creating MetaPackages: https://jvaris.wordpress.com/2014/02/16/linux-server-task-4-creating-metapackages/
- Tätä dokumenttia saa kopioida ja muokata GNU General Public License (versio 2 tai uudempi) mukaisesti. http://www.gnu.org/licenses/gpl.html
- Pohjana Tero Karvinen 2014 Linux kurssi: http://terokarvinen.com