Diferència entre revisions de la pàgina «Paquets deb»

De MAnteniment INformatic Kike VIlchez
Dreceres ràpides: navegació, cerca
(Fem un repositori)
Línia 81: Línia 81:
 
  sudo apt-get remove –purge nom_del_paquet
 
  sudo apt-get remove –purge nom_del_paquet
 
Així eliminarà tot, inclòs els directoris que tenia a l’instal·lar-se o que s’hagin modificat durant el treball.
 
Així eliminarà tot, inclòs els directoris que tenia a l’instal·lar-se o que s’hagin modificat durant el treball.
==Fem un repositori==
+
==Desplegament per repositori==
 
A continuació podem desplegar els nostres paquets en un servidor de repositori:
 
A continuació podem desplegar els nostres paquets en un servidor de repositori:
 
* [[Repositori Autentificat]] - Tutorial per muntar un reposirtori manualment.
 
* [[Repositori Autentificat]] - Tutorial per muntar un reposirtori manualment.
* [[aptly]] - Tutorial per muntar un repositori amb l'eina aptly.
+
* [[aptly]] - Tutorial per muntar un repositori amb l'eina aptly ('''recomanat''').

Revisió del 14:37, 18 gen 2020

Introducció

Un paquet deb és un fitxer d'instal.lació d'un programa o fitxer per sistemes basats en Debian, com poden ser Ubuntu, Linkat o Linux Mint.

contingut del paquet DEB

El fitxer es basa en una estructura d'arbre simple amb el següent contingut:

  • DEBIAN - directori que contindrà la informació del paquet, dependències i scripts
    • control – fitxer on s’identifiquen el nom, les dependències i descripció del paquet.
    • md5sum - fitxer amb el md5sum dels valors de cada diferents fitxers que s'instal·laran.
    • preinst – Ordres que s'executaran abans d’instal·lar el paquet.
    • postinst – Ordres que s'executaran després de la instal·lació del paquet.
    • prerm - Ordres a utilitzar abans de procedir a la desinstal·lació del paquet, per exempe, aturada de serveis.
    • postrm – Ordres que s’executaràn després de desinstal·lar el paquet.
  • Arrel de direcotri – ubicació dels directoris que s'instal·laran a partir de l’arrel del sistema.
    • Subdirectoris
  • debian-binary - fitxer on especifiquem la versió del paquet. ( Aquest fitxer no l'apliquem si el paquet deb ha de formar part d'un mateix repostitori )
Estructura bàsica d'un paquet deb

Directori DEBIAN

Estaràn els fitxers de control, execució i identificació del paquet, són els que utilitzarà el sistema a l’hora de fer la instal·lació o desinstal·lació.

control

En aquest fitxer indicarem el nom del paquet que es mostrarà en el sistema, l’autor i les dependencies que necessitarà el programa per fer el funcionament. Un exemle seria aquest:

Package: linkat-konica-papercut
Priority: optional
Section: misc
Maintainer: Enrique Vilchez <evilchez@esalto.es>
Architecture: all
Version: 2.0
Homepage: https://mainkivi.info
Depends: samba, smbclient, cups, openjdk-8-jre
Description: Script d'instal·lació i configuració de la Konica i el programari Papercut del 
 Departament d'Ensenyament. Caldrà saver la IP del servidor d'impressió i el codi del centre.
 La configuració per defecte de la impressora es d'impressió a dues cares i escala de grisos.
  • En Package ficarem el nom del paquet que s’instal·larà, no ha de tenir espais.
  • En Priority el tipus de prioritat d’instal·lació, per defecte serà optional.
  • En Section indiquem la categoria o secció, per defecte serà misc o qualsevol.
  • En Manteiner indiquem el nom i el correu de contacte del dessenvolupador.
  • En Architecture especifiquem l’arquitectura en la que s’instal·larà el paquet pot ser All, i386 o x86_64.
  • En Version indicarem la versió de paquets deb que utilitzarem, pot ser 1.0 o 2.0.
  • En Homepage indicarem la web de contacte del desenvolupador.
  • En Depends indicarem les dependències que necessitarà el nostre paquet una vegada instatl·lat, en l’exemple necessitaré samba, cups i openjdk-8-jre perquè serà un programa que instal·larà una impressora compartida per Windows i el client requereix java.
  • En Description Ficarem una breu descripció del que farà el nostre paquet i que podrà llegir l'instal·lador abans de ficar-lo. És molt important deixar un espai abans de cada línia del texte.

md5sum

És el fitxer que indica la veracitat de cada fitxer que instal·larem. Per saber-ho escriurem en el terminal:

md5sum /usr/bin/linkat-konica-papercut 

Amb un resultat com aquest:

e60fbaf2149d9130add495299004aa34  /usr/bin/linkat-konica-papercut
Aquest pas s’haurà de repetir per cada fitxer que formi part del paquet. Per exemple:
e60fbaf2149d9130add495299004aa34  usr/bin/linkat-konica-papercut
80d71c67c7d95bb40c4883d9e1408a26  usr/local/papercut.tar.gz

preinst i postinst

Són fitxers que s’executaràn abans i després del desenpaquetament, són molt útils si estem instal·lant programa que requerix d’aturar un servei abans de fer la instal·lació i tornar-lo a aixecar una vegada instal·lat. Bastant-me en l’exemple anterior, puc utilitzar una ordre una vegada instal·lat el paquet que descomprimeix el fitxer usr/local/papercut.tar.gz amb aquest exemple:

#!/bin/bash
cd /usr/local
if [ -f papercut.tar.gz ]; then
 tar xzvf papercut.tar.gz
 rm papercut.tar.gz
 chown -R root:root papercut
fi

És important que tant preinst com postinst tinguin permisos d’execució.

prerm i postrm

Aquests fitxers seràn ordres que s’executaràn abans i després de desinstal·lar el paquet. Normalment s’utilitzen per primer aturar serveis i després per eliminar fitxers i aixecar serveis de nou.

Arrel de Directori

Seràn el o els direcotris que s’ubicaràn en l’arrel del sistema, per exemple, si tenim els fitxers i drectoris: usr/bin/linkat-konica-papercut , etc/cups/printers.conf i usr/share/papercut/ , aquests s'ubicaràn en l’arrel del sistema a partir de /usr i /etc. D’aquesta manera demostrem que el paquet deb no requerix compilació de programari perquè ja porta tot configurat i el que fa és reubicar-lo.

Construir el paquet

Una vegada tenim tot el contingut preparat en el directori només queda comprovar que els permisos siguin correctes i ens assegurem amb:

sudo chown -R root:root deb

On deb és el directori on estàn els directoris DEBIAN i els directoris d’instal·lació i root:root serà el propietari i el grup. Ara empaquetarem el direcotri amb:

dpkg -b ./deb nom-del-fitxer.deb

On deb és el directori a empaquetar i nom-del-fitxer.deb és el paquet resultant.

Instal·lem, reparem o desinstal·lem el paquet

Per instal·lar el paquet manualment farem servir l’ordre:

sudo dpkg -i nom_del_paquet.deb

Això instal·larà el paquet però no les dependències, si hi han dependències les podem reparar amb:

sudo apt -f install

Així descarregarà els paquets necessaris dels repositoris locals. Per desinstal·lar-lo també farem servir l’ordre apt o apt-get:

sudo apt-get remove nom_del_paquet

Això desinstal·larà el paquet i algunes configuracions però no els directoris que deixarà per seguretat al no estar buits. Si volem fer una desinstal·lació neta farem una purga amb:

sudo apt-get remove –purge nom_del_paquet

Així eliminarà tot, inclòs els directoris que tenia a l’instal·lar-se o que s’hagin modificat durant el treball.

Desplegament per repositori

A continuació podem desplegar els nostres paquets en un servidor de repositori:

  • Repositori Autentificat - Tutorial per muntar un reposirtori manualment.
  • aptly - Tutorial per muntar un repositori amb l'eina aptly (recomanat).