IMPORTANT: Per accedir als fitxer de subversion: http://acacha.org/svn (sense password). Poc a poc s'aniran migrant els enllaços. Encara però funciona el subversion de la farga però no se sap fins quan... (usuari: prova i la paraula de pas 123456)

Linux Professional Institute Certificate. LPIC-1

Lpic1 large.gif
Certificat LPIC-1
Examen: 101 (torneu a la resta de temes)
Fitxers: LPI102.4_Utilitzar_gestors_paquets_tipus_Debian.pdf (LPI102.4_Utilitzar_gestors_paquets_tipus_Debian.odp)
Objectius: http://www.lpi.org/eng/certification/the_lpic_program/lpic_1/exam_101_detailed_objectives
Dipòsit SVN: https://svn.projectes.lafarga.cat/svn/lpi/Materials/Examen_101/102.4
Usuari: anonymous
Paraula de pas: qualsevol paraula de pas

Objectius del tema

102.4. Utilitzar els gestors de paquets tipus Debian
Objective.jpg
  • Objectiu: Els candidats han de ser capaços de gestionar els paquets de programari utilitzant les eines per paquets de Debian.
  • Pes: 3
060317 Icon - Theory of Knowledge v01 pdc.jpg

Àrees Clau de Coneixement:

Icon list.jpg

La següent és una llista parcial de fitxers, termes i utilitats utilitzades:

Text-editor.svg

Apunts: LPI 102.4. Utilitzar els gestors de paquets tipus Debian

Distribucions Linux

Tot i que evidentment hi ha diferències entre distribucions, comparteixen unes característiques bàsiques que faciliten la interoperabilitat.

Joelgrau distribucions.png

Debian GNU/Linux

  • És un projecte l'objectiu del qual es crear un sistema operatiu lliure complet basat en el treball del projecte GNU
  • El formen voluntaris d'arreu del món.
  • Debian és conegut per la seva per ser una distribució molt lligada a la filosofia del Programari Lliure
  • És una de les distribucions amb més opcions de programari amb més de 15.000 paquets per a més de 15 arquitectures de computadors.
  • Debian GNU/Linux és la base d'altres distribucions com Knoppix, Linspire, SkoleLinux (Debian-edu) i Ubuntu.
  • Debian esta suportat per les donacions a Software in the Public Interest, Inc.

Origen i filosofia

  • Debian va ser creat per un jove de 18 anys anomenat Ian Murdock al 1993.
  • L'origen del nom Debian és la combinació del nom de la novia (posteriorment dona i actualment ex dona) d'Ian Murdock (Deborah) amb el seu propi nom (Ian).
  • Debian Manifesto: document que defineix la filosofia de Debian.
  • Debian Social Contract: contracte entre Debian i els seus usuaris.
  • Debian romandrà 100% lliure.
  • Compensarem a la comunitat de programari lliure.
  • No amagarem els problemes.
  • Les nostres prioritats són els nostres usuaris i el programari lliure.
  • Debian Free Software Guidelines: defineix que és programari lliure i que no és programari lliure segons Debian.
  • Redistribució lliure
  • Codi Font
  • Treballs derivats
  • Integritat del codi font de l'autor
  • Cap discriminació a persones o grups
  • Cap discriminació a finalitats d'aplicació

Ubuntu

  • Distribució Linux molt utilitzada actualment.
  • Basada en Debian GNU/Linux
  • Darrera d'Ubuntu esta Canonical Ltd, una companyia privada fundada per el Sud Africa Mark Shuttleworth.
  • L'origen del nom bé dels conceptes Zulu i Xhosa: "humanity towards others".
  • Slogan d'ubuntu : “Linux for Human Beings
  • El seu principal objectiu és apropar Linux als usuaris, facilitar-ne l'accés, millorar-ne la usabilitat i fent-lo més fàcil d'utilitzar
  • Distribució ideal per als iniciats a Linux

Versions d'Ubuntu

  • Ubuntu té el compromís d'alliberar una nova versió cada 6 mesos.
  • Les versions d'Ubuntu són suportades com a mínim durant 18 mesos.
  • Les versions LTS (Long Term Support) són suportades durant un mínim de 3 anys (desktop) o 5 (servidors).

Creador

  • És va fer milionari al vendre l'empresa Thawte per 575 milions de $ a Verisign
  • Va ser un dels primers turistes espacials (20 milions de $)

Paquets de programari

  • Què es un paquet?
Un paquet de programari és una sèrie de fitxers que es distribueixen de forma conjunta.
La raó principal per agrupar aquest fitxers sol ser que el funcionament de cadascun complementa o requereix d'uns altres.
  • Els paquets poden estar comprimits, això va be perquè al reduir la seva mida poden ser mes fàcils de transmetre per Internet.
  • Tipus de paquets de programari:
  • .rpm (RedHat): format dels paquets en distribucions Linux de la familiar Red Hat.
  • .deb (Debian): format dels paquets en distribucions Linux de la familiar Debian.
  • .slp (Stampede): format de paquets Stampede
  • .tgz (Slackware): format de paquet utilitzat a la distribució Linux Slackware
  • .pkg (Solaris): format de paquet en sistemes operatius Unix Solaris.

Conceptes

  • Paquet binari: són paquets que contenen aplicacions binaries sense el seu codi font. El paquet inclou els fitxers executables/binaris (a les carpetes estàndards segons FHS: /bin/, /usr/bin, /sbin, etc.)
  • Paquets font: paquets que inclouen codi font. Normalment cada paquet font té un paquet equivalent binari. Es poden compilar específicament per a cada ordinador (pot augmentar una mica el rendiment).
  • Dependència: Es parla de dependència quan un paquet requereix que s'instal·li prèviament una altre paquet o paquets, els quals són anomenats dependències. El sistema comparteix o , al menys intenta compartir, els paquets comuns que utilitzen els programes.
  • Gestor de paquets: Són les aplicacions que es permeten gestionar paquets. Són eines que faciliten les tasques més habituals relacionades amb la gestió de paquets (instal·lació, cerques, eliminacions, etc.). l'apt el dpkg, el synaptic... són exemples de gestors de paquets.
  • Dipòsit: un dipòsit (de l'anglès "repository") és un arxiu que a on s'emmagatzemen paquets. Normalment es troba a Internet Els dipòsits estan preparats per a ser distribuïts habitualment servint-se d'una xarxa informàtica com Internet, però també els podem trobar en servidors de xarxa LAN (Intranet) o en un mitjà físic com un disc compacte (CD) o DVD.
  • Paquet virtual (tonto o dummy): es tracta d'un paquet buit que instal·la una sèrie de dependències per a facilitar-nos la instal·lació de programes complexos.
  • Tasques: Les tasques són agrupacions de paquets que instal·lats de forma conjunta proveeixin una funcionalitat comuna. Per exemple hi ha tasques per a instal·lar un sistema LAMP o entorns d'escriptori com Gnome o KDE.Es poden gestionar les tasques amb tasksel

Relacions entre paquets

  • El paquet A depèn del Paquet B: Implica que és absolutament necessari que el paquet B estigui instal·lat abans de poder instal·lar A. També pot ser que A depengui d'una versió especifica de B. Un Exemple sería el Gparted que depén directament de Mkfs
  • El paquet A recomana B: B no és necessari però el desenvolupador de A creu que la majoria d'usuaris d'A trobaran útil B.
  • El paquet A suggereix B: El paquet A suggereix el B per què B conté funcionalitats relacionades amb A (sovint milloren la seva funcionalitat). El paquet A entra en conflicte amb el paquet B: El paquet A no pot operar al sistema si existeix B. Sovint per què tots dos proporcionen el mateix fitxer. En el cas del Geany es suggereix instal·lar el Geany-plugins per a ampliar les opcions del programa.
  • El paquet A reemplaça B: Al instal·lar A s'esborren els fitxers de B i en alguns casos es sobreescriuen. Normalment això passa al actualitzar un paquet.
  • El paquet A proveeix de B: Quan tots els fitxers i funcionalitats de B han estar incorporades a A.

Importància d'un paquet

  • Required: Paquets imprescindibles per al correcte funcionament del sistema. Inclou totes les eines necessàries per reparar els defectes d'un sistema. Sense aquests paquets el sistema estarà trencat i no es podrà utilitzar dpkg per arreglar-lo. Els sistemes que només tenen paquets requerits no són utilitzables, però tenen les suficients funcionalitats per permetre que l'administrador del sistema pugui iniciar la màquina i instal·lar més programari.
  • Important: Paquets que s'haurien de trobar en tot sistema. Aquests paquets no inclouen Emacs o X11 o TeX ni cap altre "gran" aplicació. Aquests paquets només constitueixen la infraestructura bàsica.
  • Standard: Els paquets Standard, són aquells paquets mínims que s'haurien de trobar a tota màquina. Hi han les eines bàsiques per navegar per la web (w3m), enviar correus electrònics (mutt) o descarregar fitxers o servidors FTP. Aquests paquets (i els de prioritat superior) són els que s'instal·len per defecte. No inclou moltes aplicacions importants.
  • Optional: Paquets que possiblement molta gent voldrà instal·lar però que no són imprescindibles pel sistema. Aquí trobem paquets tant importants com X11.
  • Extra: Paquets que entren en conflicte amb altres de major prioritat però que en certes condicions els usuaris poden preferir. Una instal·lació per defecte de Debian instal·la tots els paquets de prioritat estàndard o inferior.

Paquets Debian

  • Debian Packages (extensió .deb)
  • Molt conegut per les seves estrictes polítiques de qualitat abans de alliberar noves versions de paquets.
  • Faciliten l'aplicació d'actualitzacions sense necessitat de reiniciar la màquina.
  • Permet configurar l'aplicació en el moment de la instal·lació (debconf)
  • Permet tasques prèvies a l'eliminació, instal·lació i/o configuració d'un paquet.
  • Són utilitzats ens totes les distribucions de la família Debian
  • El programa principal (canònic) utilitzat per gestionar aquest tipus de fitxers és dpkg, tot i que sovint dpkg es utilitzat mitjançant el front-end apt.
  • Nom del fitxer:
<nom_del_paquet>_<numero_de_versio>-<numero_de_revisio_debian>.deb

Que conté un paquet?

En les versions més noves de les distribucions Debian al obrir un paquet trobarem una carpeta anomenada DEBIAN que conté les metadades del paquet i després les carpetes que contenen el programa que es descomprimiran on toqui. En les versions mes antigues això no era així i dins del paquet .deb hi ha 2 fitxers, un que s'anomena data.tar.gz que conté el programa i un que es diu control.tar.gz que conté les metadades.

Metadades

  • control: Conté la informació del paquet. En els paquets Debian aquest fitxer es obligatori. La informació d'aquest fitxer es la mateixa informació del menú de propietats del synaptic
Informació del paquet al arxiu control
Informació del paquet al Synaptic
  • md5sums: Aquest arxiu conte tots els hash md5 de tots els arxius que componen el paquet per així comprovar pa seva integritat abans d'instal·lar.
  • conffiles: Indica quins fitxers són de configuració per així evitar borrar-los en una destinstal·lació. Si de totes maneres es volen borrar s'usara la opció --purge de l'apt

Scrips de manteniment

Són scripts (guions) que s'executen en moments concrets de la instal·lació per a automatitzar-la.

  • preinst: Aquest s'executa abans de l'instal·lació.
  • postinst Aquest s'executa després de l'instal·lació.
  • prerm: Aquest s'executa abans de la desinstal·lació.
  • postrm: Aquest s'executa després de la desinstal·lació.

Procés d'instal·lació

Joelgrau scripts de manteniment.png

Debconf

Hi ha paquets que necesiten preguntar coses al usuari per poder-se usar, l'aplicació que usen els paquets per interactuar amb l'usuari es el Debconf, ja que es molt sezill programar-lo i s'adapta a tots els entorns en que el podem usar: terminals virtuals, pseudoterminals, entorns gràfics...

Per a tornar a realitzar la configuració d'un paquet només ens cal escriure la següent comanda a la terminal:

$ sudo dpkg-reconfigure nom_paquet
Reconfiguració d'un paquet en mode text

O també, ho podem fer pel synaptic:


Reconfiguració d'un paquet en mode gràfic

Pràctica: Netejar una instal·lació corrupta

Per a duur a terme aquesta pràctica primer ens baixarem un paquet que tingui scripts de manteniment, realitzarem la instal·lació d'aquest paquet, desprès afegirem una línia per fer petar l'script de la desinstal·lació.

  • Primer instal·larem el moodle:
$ sudo apt-get install moodle
  • Una volta instal·lat li afegirem uns caràcters aleatoris al fitxer: /var/lib/dpkg/info/moodle.postrm
$ sudo geany  /var/lib/dpkg/info/moodle.postrm
#!/bin/sh
# postrm script for moodle
#
# see: dh_installdeb(1)
kjghlkjg
set -e
#set -x

# summary of how this script can be called:
#        * <postrm> `remove'
#        * <postrm> `purge'
...
  • Al proedir a desinstal·lar veurem que la desinstal·lació peta al moment que arriba a la línia de l'script que hem afegit
/var/lib/dpkg/info/moodle.postrm: 5: kjghlkjg: not found
  • La desinstal·lació la podem arreglar de dues formes:
  • Borrant l'script corrupte: Aquesta es la solució mes dràstica perquè el programa es desinstal·larà però no es realitzaran les configuracions de l'script borrat.
  • Arreglan l'script corrupte: Aquesta es la millor solució, però normalment un usuari mitjà no te prou nivell per a realitzar-ho. En el nostre cas només ens caldrà borrar els caràcters que hem afegit i ja tindrem el problema solucionat.

Dipòsits

Són pàgines web on estan guardats els paquets de programari, estan classificats per seccions.

Dipòsits a Debian

Els diposits a Debian està organitzats per les següents seccions:

  • Main: Conté el programari oficial de Debian (lliure).
  • Dipòsits addicionals: Són dipòsits extres que no compleixen totes les característiques del programari lliure
  • Contrib: Paquets amb llicència lliure però que depenen de programari que no és lliure
  • Non-Free: Paquets que tenen alguna condició en la llicencia que restringeix l'ús o la redistribució del programari.
  • Non-US/Main: Paquets lliures però que no es poden redistribuir des d'un servidor dels EUA.
  • Non-US/Non-Free: No lliures i no es poden distribuir des de EUA.

Versions de Debian:

  • Stable: Conté la última distribució llençada oficialment. Es la més fiaple que hi ha. El seu nom en codi es Squeeze
  • Testing: Conté paquets que no han estat encara acceptats a una distribució "stable", però que s'han de probar ples testers de la comunitat. El seu nom en codi es Wheezy
  • Unstable: El desenvolupament actiu de Debian té lloc a la distribució «inestable». Es la distribució en que es basa Ubuntu per crear la seva versió. Nom codi Sid.

Dipòsits a Ubuntu

Els dipòsits a Ubuntu s'organitzen en:

  • Main: Aplicacions lliures i plenament suportades per l'equip d'Ubuntu. Aplicacions populars.
  • Restricted: Programari d'ús comú (drivers) que no és PL. Suportat per l'equip d'Ubuntu tot i que no tenen el codi font (només poden reportar els errors)
  • Universe: Aplicacions lliures no suportades per Ubuntu però que formen part de l'univers d'aplicacions Linux. No donen suport explícit.
  • Multiverse: Programari Linux no lliure. Sense suport.

Tipus d'actualitzacions:

  • Security: Actualitzacions de seguretat importants. Ubuntu hi dona suport i són altament recomanades d'instal·lar
  • Updates: Actualitzacions recomanades. Ubuntu li dona un cert suport
  • Proposed: Actualitzacions disponibles abans del seu alliberament a la primera versió.
  • Backports: Actualitzacions no suportades.

Gestors de paquets Debian

dpkg

Es l'aplicació de més baix nivell que gestiona els paquets de progrmari, tots els altres gestors acaven usant-lo. La seva sintaxi es:

$ dpkg [options][action] [package-files|package-name]

Accions del dpkg:

  • Només consulta (dpkg-query-actions)
  • dpkg -l | --list package-name-pattern: Llista els paquets que compleixen amb un determinat patró.
  • dpkg -s | --status package-name: mostra l'estatus actual d'un paquet i la metainformació del paquet.
  • dpkg -L | --listfiles package: Mostra la llista de fitxers instal·lats
  • dpkg -S | --search filename-search-pattern: Busca un fitxer concret dins dels paquets instal·lats
  • dpkg -p | --print-avail package: Mostra detalls sobre un paquet instal·lat.
  • dpkg -I | --info package-name: Mostra informació sobre un paquetdesinstal·lat.
  • Accions que modifiquen el sistema. Cal ser superusuari
  • dpkg -i | --install package-file: Instal·la un paquet a partir d'un fitxer .deb
  • dpkg --configure package-name: Torna a configurar un paquet ja instal·la. Executa l'script de post-instal·lació.
  • dpkg -r | --remove package_name: Elimina un paquet, però deixa els fitxers de configuració de sistema.
  • dpkg -P | --purge package_name: Elimina un paquet incloent els fitxers de configuració.
  • dpkg -C | --audit: busca fitxers instal·lats parcialment al sistema i suggereix que fer amb ells.

Pràctica: Instal·lar un paquet manualment

  • Primer anirem a [1] i buscarem el paquet hello per a que ens digui quina versió correspon amb la de la nostra distribució. En aquest cas hem de descàrregar la versió 2.6-1.
Joelgrau instal·laciodepaquetmanual1.png
  • Després anirem a [2] i ens descàrregarem el Packages.gz de la carpeta de la nostra versió. En nostre cas es /dists/natty/main/binary-i386/Packages.gz
  • El Packages.gz conté la informació de cada paquet juntament amb la ruta del dipòsit on està el paquet. El nostre paque està a:
pool/main/h/hello/hello_2.6-1_i386.deb
Joelgrau instal·laciodepaquetmanual2.png
  • Una volta tenim el paquet l'instal·larem amb:
$ sudo dpkg -i Baixades/hello_2.6-1_i386.deb
  • Per tornar a configurar el paquet per si s'ha realitzat malament l'instal·lació ho farem amb:
$ sudo dpkg --configure hello
En aquest cas ens donarà un error perquè el paquet ja s'havia configurat bé i per això no tenia coses pendents a configurar.
  • Per a desisntalar el paquet ho fem amb:
$ sudo dpkg -r hello
  • Per a desinstal·larlo de forma completa (borrant-li les configuracions) es fa amb:
$ sudo dpkg -P hello
  • I si volem saber si al sistema se li han quedat coses a mitges a l'hora dinstal·lar ho podem comprobar amb:
$ sudo dpkg -C
En el nostre cas no ens ha dit res. Senyal de que no hi ha coses pendents de reparar.

apt

  • Utilitat per a la gestió de paquets en sistemes Debian GNU/Linuxo derivats.
  • [Apt] simplifica molt la feina de l'administració de paquets en sistemes UNIX, per què automatitza el procés d'obtenció,

instal·lació i configuració de programari.

  • Apt és un front-end de dpkg.
  • Actualment ja hi ha versions modificades d'apt per treballar ambpaquets rpm.
  • A diferencia de dpkg apt instal·la les dependències.
  • No existeix un programa apt en si mateix, sinó que APT és una biblioteca de funcions C++ que s'empra per diversos programesde Línia de comandes per a distribuir paquets.
  • El paquet apt està fortmat per aquestes eines:
$ dpkg -L apt | grep bin
/usr/bin
/usr/bin/apt-config
/usr/bin/apt-cdrom
/usr/bin/apt-mark
/usr/bin/apt-key
/usr/bin/apt-cache
/usr/bin/apt-get
  • Els seus fitxers de configuració són:
$ dpkg -L apt | grep etc
/etc
/etc/apt
/etc/apt/apt.conf.d
/etc/apt/apt.conf.d/01autoremove
/etc/apt/apt.conf.d/20changelog
/etc/apt/preferences.d
/etc/apt/trusted.gpg.d
/etc/apt/sources.list.d
/etc/logrotate.d
/etc/logrotate.d/apt
/etc/cron.daily
/etc/cron.daily/apt

aptitude

  • Es un gestor de paquets en terminal molt similar a l'apt pero usa ncurses per a proveïrse de un "semi-interficie" gràfica.
  • A diferència de l'apt es que al desisntal·lar un programa, l'aptitude també desinstal·la les dependències del paquet.
  • Per entrar al programa ho farem amb:
$ sudo aptitude
Joelgrau aptitude 14.2.png
  • Tecles
  • u: $ sudo aptitude update
  • U: $ sudo aptitude upgrade
  • q: quit
  • +: Marcar per instal·lar
  • -: Marcar per desinstal·lar
  • gg: El primer g mostra les tasques pendents. Els segon les g aplica.
  • ?: Ajuda
  • /nom: Cercar un paquet per nom
  • Llegenda de la primera columna
  • i: Paquet instal·lat.
  • c: Paquet no instal·lat, però la configuració del paquet roman en el sistema
  • p: Eliminat del sistema
  • v: Paquet virtual
  • B: Paquet trencat
  • o: Arxius desempaquetats, però el paquet aquesta sense configurar
  • C: A mig configurar - La configuració va fallar i requereix ser reparada
  • H: A mig configurar - Va fallar l'eliminació i requereix ser reparada

Com instal·lar paquets en aptitude

  • Els paquets per a instal·lar els trobarem a la categoria Paquets no instal·lats. Per a moure'ns per les categories ho farem amb els cursors i la tecla intro.
  • Per a marcar per a instal·lar un paquet ho farem amb +.
  • Finalment per a instal·lar premerem g per a que ens mostri un resum del que s'ha d'instal·lar i tornarem a premer g per a que comenci l'instal·lació

Synaptic

Update-manager

software-center

Ordres

dpkg

dpkg-reconfigure

apt-get

apt-cache

aptitude

Conversió de paquets

Vegeu també

Enllaços externs