Arkisto

Posts Tagged ‘metapackage’

Metapaketit – Paketinhallintaa

13 helmikuun, 2012 Jätä kommentti

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

Setting up Reprepro repository

Kategoriat:Linux Avainsanat: , , ,