Sessió 7 curs programació linux

De Wikijoan
Dreceres ràpides: navegació, cerca

Sessió 10. 30-V-2008. Creación de paquets Debian

====================================

<nom_del_paquet>_<numero_de_versio>-<numero_de_revisio_debian>.deb


Exemple:

  Nom del paquet: apache2.2-common
  Nom del fitxer: apache2.2-common_2.2.3-3.2build1_i386.deb


Gestor de paquets synaptic

selecciono un paquet qualsevol, i amb el botód dret, propietats, veig les dependències del paquet.


apache2 és un paquet tonto (dummy), en realitat he de mirar les dependències, que diu els paquets que s'instal.laran.

$ apt-cache depends apache2-mpm-worker


apt-cache depends apache2

                         apache2-mpm-worker
                           Depén: libapr1
                           ...........
                           Depén: apache2.2-common
                           ...............


quan vull esborrar un paquet, també he de mirar la llista de paquets que s'eliminaran. Per ex, si esborro el apache, em diu que també s'esborrarà el Moodle


nautilus -> navegador de fitxers

$ nautilus -> s'obre en la teva home

$ nautilus . -> s'obre en la carpeta on estàs


ex, $ sudo apt-get install apache2

/var/cache/apt/archives -> carpeta on estan els paquets

el format típic dels paquets és .deb, i si faig doble click em trobo amb els empaquetats tar.gz i un binari (que puc obrir amb gedit per veure què hi ha).


sempre hi ha la mateixa estructura:


http://es.wikipedia.org/wiki/Deb -> dóna informació de com es crea un paquet


el sistema md5 és ideal per saber si el fitxer ha canviat o no. El Nero,... abans de crear una imatge la compara amb la que té el servidor.


per ex,

archives$ md5sum yelp_2.14.3-2_i386.deb -> calcula la suma md5 del paquet, i obtinc un número. Amb aquest número puc saber si s'ha modificat el paquet, i quin és el fitxer que s'ha modificat.


Jerarquia dels fitxers (molt important) FHS (File Hyerarchy System)


El binari és el codi objecte (en la terminologia C), no és el codi font

Els binaris dels programes es poden trobar a:

/bin -> executables bàsics del funcionament del sistema, per ex ls

/sbin (la s és de superusuari, són els binaris que només pot executar el root)

/usr/bin i /usr/sbin : executables secundaris


llibreries:

/lib -> jerarquia ppal

/usr/lib -> jerarquia secundària


les llibreries van en paquets apart


/etc -> fitxers de configuració

/etc/skel (esquelet) -> quan es genera un nou usuari, tot el que es col.loca aquí es col.loca a la seva home (d'aquesta manera es pot definir perfils d'usuari)


/usr -> jerarquia secundària on s'emmagatzema les dades de només lectura entre els usuaris.

/usr/src -> codi font dels programes


/usr és la carpeta que ocupa més. No cal fer una còpia d'aquest arxiu perquè amb l'us de les aplicacions el seu contingut no canvia. Si reinstal.lo una aplicació la política sempre és que sempre em respectarà el fitxer de configuració antic, o bé m'ho preguntarà (sap que els fitxers no són els mateixos gràcies al md5)


/var -> dades variables


/lost+found

/proc, /boot, /opt són carpetes que en realitat estan a la RAM


Pràctica


instal.lar ksnapshot -> fa captura de pantalles

sudo apt-get install ksnapshot

dpkg -l -> ensenya tots els paquets instal.lats en el sistema

dpkg -L ksnapshot -> ensenya tots els fitxers instal.lats d'aquesta paquet.

dpkg -L ksnapshot | grep bin -> miro els executables

dpkg -L ksnapshot | grep doc -> miro la documentació.

dpkg -L ksnapshot | grep doc -> Té manual? (man)


Debian Policy


és la gran avantatge de Debian respecte altres distribucions. És una sèrie de regles que ha d'acomplir els paquets.

Garanteix la qualitat dels paquets


Practica. “Debianitzarem” un dimoni. Servidor d'ecos.


seguir la wiki -> http://atenea.upc.edu/moodle/mod/resource/view.php?id=285373 -> de fet és http://acacha/dyndns.org/mediawiki

svn checkout https://svn.lafarga.cpl.upc.edu/dades/svn/plinux/sessio10 -> svn

si no funciona, instal.lar subversion -> sudo apt-get install subversion

ara sí que funciona el svn, i em baixo els fitxers de la sessió 10 (login i pwd: anonymous)

[Recordem!! no utilitzar les comandes com a superusuari si no és estrictament necessari]


La carpeta sessio10 està on l'hem executat


Per començar a programar amb C, si és que no puc o hi ha un problema, és important el paquet build-essential


Instal.lem totes les eines necessàries:

$ sudo apt-get install dh-make fakeroot build-essential devscripts debhelper


dh-make -> comanda per crear paquets


$ cd sessio10

$ cp -r echoDimoni echod-0.1

$ cd echod-0.1

$ dh_make -e creador.del.paquet@exemple.com --createorig

-> es crea la carpeta /debian, on estan les plantilles que et generaran el paquet

també ha creat la carpeta sessio10/echod-0.1.orig, que és la original


dins de echod-01, faig fakeroot (root fals), que és un aplicatiu que em dóna un prompt (#), en el que executo dpkg-buildpackage que és el que comença a treballar. Fixar-se que en el prompt em surt root. Al final, exit.


$ fakeroot

  1. dpkg-buildpackage


des de /echod-0.1, fer ls -l .. (el paquet es crea dins de /sessio10, però jo no em moc del directori /echod-0.1)

S'ha creat el paquet echod_0.1-1_i386.deb, i echod_0.1.orig.tar.gz


cat /etc/apt/sources.list -> llista dels llocs on Debian es descarrega els paquets (aquí veiem per exemple RedIris,...)


En el centre, com fer instal.lacions de paquets per als alumnes

1a poss: sudo apt-get install -d apache2 -> et descarregues el paquet sense instal.lar-lo. Ja el tens descarregat a la màquina, i després la instal.lació és molt ràpida

2a poss: fer un mirror, i a la nit es descarreguen les actualitzacions

canviar el fitxer sources.list i que apunti a una màquina local

(funciona com un proxy de paquets)

Per ex, és interessant fer un proxy per a Windows Update.


A la carpeta /debian és on hi ha tots els fitxers i plantilles que s'han de tocar abans de generar el paquet.

(no entrar mai a la carpeta debian. Tot ho farem des de la carpeta anterior)


sudo apt-get install lintian -> paquet per saber si un paquet acompleix la política de Debian

$lintian ../echod_0.1-1_i386.deb

E: error; W: warning


$ ls -l debian/


Editem el fitxer control, que és on posem informació del paquet:

$gedit debian/control

modifico la informació, i torno a generar el paquet

tornem a passar el lintian


debhelper -> guions de shell que ajuden a construir el paquet debian

a fitxer debian/rules (l'obrim amb gedit), veig la info de les intruccions a instal.lar



ficar el paquet és obligatori per a Debyan


debchange per crear una nova versió (posar un comentari per a la nova versió):

$ debchange nova versio (sense accents)

$ gedit debian/changelog -> veig el comentari que he introduït


es pot utilitzar dch en comptes de devchange

$ dch -i -> m'obre el Joe com a editor. Puc controlar l'editor per defecte a la variable EDITOR

aquest és el fitxer que s'encarrega de guardar la informació de les coses que s'han canviat entre versions



com que estem debianitzant un dimoni, hem d'instal.lar el fitxer d'inicialització:

/etc/init.d/echod

fer-ho seguint les instruccions (...)

ara, com que sap que és un dimoni, després de la instal.lació s'executa el dimoni.


mirar instruccions per què fer després de la instal.lació i abans de la desintal.lació. Per ex, abans de la desinst. es para el servei. (postremove, preinstall)


el binari el col.loca en usr/sbin/echod, així com la documentació, i ho fa de forma automàtica.


totes les aplicacions porten manual, i hi ha una plantilla per fer-lo.


els manpages estan en format lattex, sgml (tags) o xml (tags). Però no cal saber lattex si utilizem la plantilla, perquè és fàcil identificar els textos


/debian/manpage.1.ex (lattex), /debian/manpage.sgml.ex (sgml), /debian/manpage.xml.ex (xml)


Canvio el fitxer i copio la plantilla a

$ cp debian/manpage.l.ex debian/echod.1

$ gedit debian/manpages -> fitxer que indica on estan els manuals. Ho edito i fico el nom del fitxer del manual

Ho reinstal.lo i ja tinc el man: man echod



$ ps aux | grep echod -> per comprovar que ja està funcionant el servidor d'ecos

$ sudo /etc/init.d/echod stop

$ sudo /etc/init.d/echod start


=

Modelo Vista Controlador -> http://es.wikipedia.org/wiki/Modelo_Vista_Controlador

OpenBravo: http://www.globalcomarca.com/content/view/56/105/

Eines de l'usuari
Espais de noms
Variants
Accions
Navegació
IES Jaume Balmes
Màquines recreatives
CNC
Informàtica musical
joanillo.org Planet
Eines