Metapaketit – Paketinhallintaa
Tehtävänä oli tehdä oma metapaketti, jolla voi asentaa useita ohjelmia nopeasti ja vaivattomasti. Valinnaisiin tehtäviin kuului paketin allekirjoittaminen, pakettivaraston luominen ja pakettien teko dependicerilla .
Metapaketin rakentaminen
Ensimmäiseksi asensin metapaketin rakentamisessa käytettävät ohjelmat:
$ sudo apt-get -y install equivs
$ sudo apt-get install lintian
Paketti luodaan equivsilla ja sen voi ajaa läpi lintianista, joka tarkistaa ajetun paketin. Metapaketti tarvitsee tiedoston rungoksi, tein sen komennolla $ equivs-control miros-funstation.cfg . Risuaidat pitää poistaa muokatuista kohdista. Versiota kuuluu myös päivittää muokatessa. Depends kohtaan listataan ohjelmat pilkuilla erotettuina ja ohjelmien nimet pitää olla samalla tavalla kirjoitettuna kuin apt-get:iä käyttäessä. Avasin tiedoston muokattavaksi komennolla $ nano miros-funstation.cfg .
Esim.
Section: misc
Priority: optional
Standards-Version: 3.9.2
Package: miros-funstation
Version: 0.4
Maintainer: Miro Seppala <sposti@tahan.fi>
Depends: mumble
Description:
long description and info
.
second paragraph
Paketti rakennetaan komennolla $ equivs-build miros-funstation.cfg . Seuraavaksi voit testata toimiiko paketti komennolla $ gdebi -n miros-funstation_0.4_all.deb . Lopuksi voit ajaa paketin läpi lintianista. Esim. lintian miros-funstation_0.4_all.deb , jos paketti meni läpi niin siitä ei tule mitään ilmoitusta.
Metapakettien teko Dependicerilla
Dependicerilla voit rakentaa useita paketteja kerrallaan. Dependicer asennetaan komennolla $ tar -xvf dependicer*.tar.gz . Pakettien teko onnistuu muokkaamalla dependicer-packages.dpd tiedostoa. Muokkaamaton tiedosto näyttää tältä: ($ nano dependicer-packages.dpd)
# Multiple metapackages for dependicer
# package: dependency1, dependency2…
dependicer-coding: nano emacs git bzr
dependicer-graphics: inkscape, gimp
dependicer-server: apache2
dependicer-workstation: teros-coding, teros-drawing, dependicer-server
Lisäsin tiedostoon oman dependicer paketin ”dependicer-fun”
# Multiple metapackages for dependicer
# package: dependency1, dependency2…
dependicer-fun: mumble
dependicer-coding: nano emacs git bzr
dependicer-graphics: inkscape, gimp
dependicer-server: apache2
dependicer-workstation: teros-coding, teros-drawing, dependicer-server
Huomasin, että jos en lisää omaa pakettiani oletuksena olevien pakettien yläpuolelle, lisätyn paketin luominen ei onnistu. En tiedä onko kyseessä bugi vai kuuluuko dependicerin toimia näin.
$ ./dependicer dependicer-packages.dpd luo yllä mainitussa tiedostossa listatut paketit. Nyt voit kokeilla asentaa pakettisi. esim. $ sudo gdebi -n dependicer-fun_0.20120213_1127_all.deb
Pakettivarasto – reprepro
Asensin reprepron komennolla $ sudo apt-get install reprepro . Tein käyttäjäni kotikansioon public_html kansion, komennolla $ mkdir public_html . Siirsin sinne aiemmin tekemäni miros-funstation paketin. Seuraavaksi tein tyhjän varaston. Ensin täyti luoda repository kansio ( $ mkdir -p repository/conf ), jonka jälkeen täytyi enää lisätä distributions tiedosto ja muokata sitä ( $ nano repository/conf/distributions).
Codename: lucid Components: main Suite: lucid Architectures: i386 amd64 source
Nyt kun varasto on luotu, sinne pitää enää lisätä metapaketti.
$ reprepro -VVVV -b repository/ includedeb lucid miros-funstation_0.4_all.deb
Testasin vielä toimiiko paketin asennus apt-getillä. $ sudo apt-get install miros-funstation ei kuitenkaan toiminut, sillä en ollut lisännyt sitä repository.listiin.
$ sudo nano /etc/apt/sources.list.d/repository.list deb http://localhost/~a1002374/repository lucid main
jonka jälkeen…
Apua pakettivaraston tekoon sain:
http://terokarvinen.com/2011/update-all-your-computers-with-a-deb-repository