Metapakettien tekemistä Linuxilla

Tehtävänanto:

h4:
– Tee metapaketti, joka asentaa suosikkiohjelmasi. Katso, että se menee läpi lintianista.
– Tee pakettivarasto repreprolla
– Paketoi jokin skriptisi, niin että paketti asentaa järjestelmän käyttäjille uuden käskyn

Kokoonpano:

Ubuntu 15.04 64 bit Live USB

Intel Core i7-4770 3.40GHz

Ram muisti 16 Gt

GeForce GTX 770 2 Gt

Metapaketin luominen

Ensimmäisenä kertailin Tero Karvisen matskuista, kuinka metapakettien luonti onnistuu (http://terokarvinen.com/2011/create-deb-metapackage-in-5-minutes). Lähdin liikkeelle päivittämällä järjestelmän ja asentamalla tarvittavan paketinteko ohjelman equivs:

sudo apt-get update

Universe päälle (super -> software sources -> ruksi universen kohdalle -> close)

Päivitysten uudelleen ajo ja sitten:

sudo apt-get install -y equivs

Tehdään asetustiedosto ja tehdään paketti:

equivs-control lauris-ipknow.cfg

nano lauris-ipknow.cfg

Kirjottelin paketista tämän näköisen:

Screenshot from 2015-09-23 08:58:00

Seuraavaksi tallennan cfg filun CTRL+X ja yes.

Sitte luodaan paketti:

equivs-build lauris-ipknow.cfg

Asennetaan gdeb ja testataan toimiiko paketti:

sudo apt-get install -y gdeb

sudo gdebi -n lauris-ipknow_1.0.0_all.deb

This package is uninstallable
Dependency is not satisfiable: Libreoffice

Hups, oli tullut kirjoitus virheen, avasin nanolla uudestaan lauris-ipknow.cfg:n, korjasin kirjoitusvirheen ja vaihdoin versionumeroksi 1.0.1. ja tein uuden paketin. Ajoin gdebin uudestaan:

sudo gdebi -n lauris-ipknow_1.0.1_all.deb

Asentui onnistuneesti, koitetaan vielä meneekö läpi linitianista:

linitian lauris-ipknow_1.0.1_all.deb

Ei herjannut mitään jes!

Pakettivaraston tekeminen

Aloitin repositoryn tekemisen tarkastelemalla Karvisen ohjetta (http://terokarvinen.com/2011/update-all-your-computers-with-a-deb-repository). Ensimmäiseksi asensin Apachen ja sallin kotisivuhakemiston käytön:

sudo apt-get install -y apache2

sudo service restart apache2

sudo a2enmod userdir

Seuraavaksi täytyi luoda public_html kansio kotihakemistoon. Siirryin kansioon, tein sen alle repository/conf kansion ja sinne uusi tiedosto:

nano repository/conf/distributions

Kyseiseen tiedostoon kirjoitin seuraavat tiedot:

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

Sitten rerepron asennus:

sudo apt-get install -y reprepro

Seuraavana viedään uusin paketti palvelimelle:

reprepro -VVVV -b public_html/repository/ includedeb vivid lauris-ipknow_1.0.1_all.deb

Muokataan repository.list tiedostoa, kirjoittamalla sinne seuraava rivi:

deb http://127.0.0.1/~ubuntu/repository vivid main

Testataan toimiiko paketin hakeminen:

sudo apt-get install lauris-ipknow

Screenshot from 2015-09-23 09:33:14

Skriptin paketoiminen

Katselin millaisia skripteja muut olivat tehneet, koska en oikein itsekseni liikkeelle päässyt. Päätin kokeilla tehdä samanlaisen kalenteri skriptin, joka näyttää viikkonumerot. Katsoin mallia Tuukka Meriläisen blogista (http://tuukkamerilainen.com/metapakettien-ihanuutta/).

Luodaan bash skripti

nano kalenteri

Sinne sisään:

#!/bin/bash

ncal -w

Suoritusoikeuksien lisääminen ja testaus:

chmod 700 kalenteri
./kalenteri

ja toimii…

  September 2015    
Su     6 13 20 27   
Mo     7 14 21 28   
Tu  1  8 15 22 29   
We  2  9 16 23 30   
Th  3 10 17 24      
Fr  4 11 18 25      
Sa  5 12 19 26      
   36 37 38 39 40

Seuraavana lisäsin pakettiin Files -kohtaan rivin: kalenteri  /usr/local/bin ja korotin versionumeron paketissa 1.1.0.

Luodaan uusi paketti versio ja asennetaan:

equivs-build lauris-ipknow.cfg

sudo gdebi -n lauris-ipknow_1.0.1_all.deb

Lähteet:

http://www.terokarvinen.com

http://tuukkamerilainen.com/metapakettien-ihanuutta/

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s