Siirry sisältöön

Metapaketit ja pakettivarastot

23.2.2014

Tällä kerralla tehtävänä oli tehdä metapaketti sekä pakettivarasto. Tehtävät tein HP EliteBook 2570p kannettavalla tietokoneellani ja Xubuntun 12.04 LTS 32-bit live-cd:llä.

Metapaketti

Aloitin metapaketin luomisen päivittämällä pakettivarastot sekä asentamalla equivs -paketin.

$ sudo apt-get update

$ sudo apt-get install equivs

Seuraavaksi tein uuden kansion:

$ mkdir meta

$ cd meta/

Kyseiseen kansioon tein uuden tiedoston komennolla:

$ equivs-control tuomas-meta.cfg

Aloitin sen muokkaamisen nanolla:

$ nano tuomas-meta.cgf

Tiedostosta tulee muokata paketin nimi, versio, ylläpitäjä, asennettavat ohjelmat ja kuvaus. Muutin tiedostoon seuraavat tiedot:

Package: tuomas-meta
Version: 0.1
Maintainer: Tuomas Sippola <tuomas.sippola@example.com>
Depends: apache2, htop, geoip-bin
Description: Tuomaksen metapaketti
 long description and info
 .
 second paragraph

Tallensin tiedoston ctrl+x -yhdistelmällä. Tämän jälkeen vuorossa oli tiedoston paketointi.

$ equivs-build tuomas-meta.cfg

Näin uusi paketti on valmiina. Paketoinnista syntyi uusi tiedosto, nimeltään ”tuomas-meta_0.1_all.deb”.  Seuraavaksi asensin gdebin, jotta päästään kokeilemaan paketin asennusta.

$ sudo apt-get install gdebi

$ sudo gdebi -n tuomas-meta_0.1_all.deb

Pakentin asennus onnistui hyvin. Menin selaimella localhost -osoitteeseen ja totesin, että ainakin apache2:n asennus onnistui hyvin. Kokeilin vielä, että luotu paketti menee läpi Lintian nimisestä tarkistus-ohjelmasta.

$ sudo apt-get install lintian

$ lintian tuomas-meta_0.1_all.deb

Komennon jälkeen ei tullut virheilmoitusta, joten paketti meni läpi ilman virheitä.

Pakettivaraston luonti

Pakettivaraston luontiin tarvitsee web-palvelimen (apache), jonka asensin jo aiemmin luomallani metapaketilla. Nyt täytyy vain asettaa käyttäjien kotisivuhakemistot sallituiksi. Sehän tapahtui komennoilla:

$ sudo a2enmod userdir

$ sudo service apache2 restart

Seuraavaksi tein kotihakemistoon uuden hakemiston ja sinne vielä muutaman lisähakemiston.

$ mkdir public_html

$ cd public_html/

$ mkdir -p repository/conf

Kyseiseen conf-kansioon tein uuden tiedoston:

$ nano repository/conf/distributions

Tiedostoon kirjoitetaan seuraavat tiedot:

Codename: precise
Components: main
Suite: precise
Architectures: i386 amd64 source

Järjestelmän koodinimen saa selville komennolla:

$ lsb_release -a

lsb_release

Seuraavana oli vuorossa reprepro -ohjelman asennus.

$ sudo apt-get install reprepro

Asennuksen jälkeen viedään uusin version metapaketista palvelimelle komennolla:

$ reprepro -VVVV -b public_html/repository/ includedeb precise meta/tuomas-meta_0.5_all.deb

Tämän jälkeen muokataan repository.list -tiedostoa seuraavasti:

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

Kirjoitetaan tiedostoon yksi rivi tekstiä:

deb http://127.0.0.1/~xubuntu/repository precise main

Tiedoston tallentamisen jälkeen oli vuorossa pakettivarastojen päivittäminen ja paketin lataaminen ja asennus.

$ sudo apt-get update

$ sudo apt-get install tuomas-meta

Komento ei tällä kertaa asentanut mitään, koska olin jo asentanut kyseisen paketin ohjelmat, mutta ainakin se näytti toimivan. Päätin kuitenkin vielä päivittää metapakettia, lisäsin sinne vlc-asennuspaketin ja muutin versionumeron uudempaan. Versioksi tuli tässä vaiheessa jo 0.7. Sen jälkeen ajoin taas seuraavat komennot:

$ equivs-build tuomas-meta.cfg

$ reprepro -VVVV -b public_html/repository/ includedeb precise meta/tuomas-meta_0.7_all.deb

new_rep

Näin uusi version on siirretty repositoryyn ja vanha poistunut. Sitten vaan komennot:

$ sudo apt-get update

$ sudo apt-get install tuomas-meta

Homma toimi hyvin ja vlc asentui myös onnistuneesti.

Scriptin paketointi

Viimeisenä vaiheena oli vielä paketoida scripti niin, että se on kaikkien käyttäjien käytettävissä. Aloitin tekemällä uuden tiedoston aiemmin tekemääni ”meta” -kansioon:

$ cd meta/

$ nano tiedot

Tiedostoon kirjoitin scriptin, jolla saan näkyviin vapaan levytilan sekä joitain verkko-tietoja.

#!/bin/bash
df -h
ifconfig

Tallennettuani tiedoston, lisäsin sille suoritusoikeudet komennolla:

$ chmod 700

$ ./tiedot

Scripti toimi hyvin ja tulosti halutut tiedot. Seuraavaksi scripti piti laittaa osaksi paketti, jonka jo aiemmin loin.

$ nano tuomas-meta.cgf

Muokkasin paketin versionumeron uudempaan (0.8) ja lisäsin ”Files”-rivin.

Files: tiedot /usr/local/bin/

Rivillä ensimmäisenä on scriptin nimi ja sen jälkeen polku, johon se asennetaan. Viimeiseksi paketoin uuden version ja kokeilin toimiiko scripti.

$ equivs-build tuomas-meta.cfg

$ sudo gdebi -n tuomas-meta_0.8_all.deb

$ tiedot

Asennus sekä testaus onnistui hyvin ja scripti toimi. Lopuksi tein vielä uuden käyttäjän ja testasin toimivuuden myös sillä. Nyt järjestelmän käyttäjillä on sama komento käytössään.

Lähteet

http://terokarvinen.com/2013/aikataulu-%E2%80%93-linux-palvelimena-ict4tn003-11-ja-12-kevaalla-2014

http://terokarvinen.com/2011/create-deb-metapackage-in-5-minutes

http://terokarvinen.com/2011/update-all-your-computers-with-a-deb-repository

Tietoa

Tätä dokumenttia saa kopioida ja muokata GNU General Public License (versio 3 tai uudempi) mukaisesti. http://www.gnu.org/licenses/gpl.html

From → Linux

Jätä kommentti

Jätä kommentti