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

Paquets de programari

Un paquet de programari és una sèrie de fitxers que es distribueixen de forma conjunta.
La raó principal per agrupar aquests fitxers sol ser que el funcionament de cadascun complementa o requereix d'uns altres


Conceptes

  • Paquets binaris són paquets que contenen aplicacions binaries sense codi font. El paquet inclou els fitxers executables binaris
  • Paquets font inclouen el codi font. Normalment cada paquet font té un paquet binari equivalent
  • Dependència quan un paquet requereix la instal·lació prèvia d'un altre paquet o paquets anomenats dependències.
  • Gestor de paquets són aplicacions que ens permeten gestionar paquets. Faciliten les tasques més habituals relacionades amb la gestió de paquets
  • Dipòsits un diposit és un arxiu on s'emmagatzemen paquets, normalment es troba a Internet.
  • Paquet virtual és un paquet buit de contingut amb un nom genèric que proveïx altres paquets mitjançant dependències
  • Tasques són agrupacions de paquets que s'instal·len de forma conjunta proveint una funcionalitat comuna. Per exemple el LAMP, el GNOME o KDE. Es poden getionar a traves del tasksel

Paquets Debian

  • Propietats
  • Habitualment acabats en la extensió .deb
  • Incorporen un configurador d'instal·lació debconf
  • L'única aplicació per gestionar els fitxers deb és el dpkg
  • Característiques
  • Format d'un fitxer <nomdelpaquet>_<versió_del_paquet>_<numero_de_revisió>.deb
  • Podem trobar els fitxers instal·lats a la carpeta /var/cache/apt/archives
  • Estructura dels paquets Debian
  • Dins dels paquets trobem un arxiu anomenat control que ens explica totes les dependències i propietats del paquet
  • Fitxer md5sums serveix per comprovar que el fitxer es igual a un altre i comparà si pot donar per donar algun error alguna dependència serveix per a comprovar la integritat d'un fitxer
  • Aquest dos fitxers són els més importants per comprovar la integritat
  • Confiles aquest fitxer serveix per comprovar els arxius de configuració que instal·la el paquet
  • Desinstal·lació d'un paquet
  • O farem amb la comanda
$apt-get remove apache2.2.common
  • El terminal ens presentarà la següent informació
S'està llegint la llista de paquets... Fet 
S'està construint l'arbre de dependències       
S'està llegint la informació de l'estat... Fet
El paquet següent s'ha instaŀlat automàticament i ja no serà necessari:
 apache2-utils
Empreu «apt-get autoremove» per a suprimir-los.
Es SUPRIMIRAN els paquets següents:
 apache2.2-common*
0 actualitzats, 0 nous a instaŀlar, 1 a suprimir i 0 no actualitzats.
Després d'aquesta operació s'alliberaran 2232 kB d'espai en disc.
Voleu continuar [S/n]? s
(S'està llegint la base de dades… hi ha 241615 fitxers i directoris instaŀlats actualment.)
S'està desinstaŀlant apache2.2-common…
S'estan purgant els fitxers de configuració de apache2.2-common…
S'estan processant els activadors per a man-db…
S'estan processant els activadors per a ureadahead…
S'estan processant els activadors per a ufw…
  • Els paquets queden instal·lats a a la carpeta /var on és guarden les dades variables del sistema, com per exemple els logs del sistema la ruta és la següent
/var/cache/apt/archives
  • Per reinstalar un paquet o farem amb
$sudo apt-get install --reinstall amor
  • neteja la memoria ho farem amb
$sudo apt-get clean
  • Compravació de les metadades des de l'arxiu control
Jordiromerounix114.png
  • Comprovació de les metadades des de el gestor de paquets
Jordiromerounix111.png


Jordiromerounix112.png


Ubuntu

  • És la distribució linux més utilitzada en l'actualitat
  • Basada en Debian GNU
  • Creat per Mark Shutleworth
  • Darrere Ubuntu es troba la companyia Canonical
  • L'origen del nom bé dels conceptes Zulu i Xhosa: "humanity towards others".
  • Ubuntu allibera una versió nova cada 6 mesos

Scripts de manteniment

  • Permeten duu a terme accions en el moment concrets de la instal·lació
Jordiromerounix115.png
  • preinst: S'executa abans d'extreure els fitxers del paquet al sistema
  • postinst: S'executa després d'extreure els fitxers del sistema
  • prerm: S'executa abans d'esborrar els fitxers del sistema
  • postrm: S'executa després d'esborrar els fitxers del sistema
  • Si un script ens dona un error podem modificar l'script afegint a la primera linia de l'escript afegint
exit 0
  • Una altra solució potser eliminar l'script i evitar que ens doni l'error

Debconf

  • És l'encarregat de configurar els paquets debian
  • Proporciona diferents interficies de comunicació amb l'usari per a poder modificar la configuració dels programes
$dpkg-reconfigure moodle
  • Basat en la llibreria anomenada dialog

Relacions entre paquets

Importància d'un paquet

Dipòsits

  • Diposits o repositoris
  • Són pagines d'internet on et baixes els paquets
  • Seccions
  • Main la oficial on esta contingut el prinicipal conté paquets lliures
  • Servei a usuaris amb seccions separades
  • Contrib són paquets lliures que depenen d'altres que si ho són
  • Non-free paquets alguna condicio
  • Non-US/Main paquets lliures que no es poden redistribuir des d'un servidor dels EUA

Dipòsits a Debian

  • Version Debian
  • Stable conté la ultima distribucio llançada oficialment recomanada per a producció la ultima versió és squezze
  • Testing conté paquets que no han estat encara aceptats té les versions més recent del programa nom de codi etch
  • Unstable desemvolupament actiu de Debian és la versió que s'utilitza majoritariament, encara que sigui una versio unstable el seu funcionament és optim

Dipòsits a Ubuntu

  • Components
  • Main aplicacions lliures suportades per l'equip d'Ubuntu
  • Restricted programari d'ús comú que no és programari lliure
  • Universe aplicacions lliures no suportades per ubuntu
  • Multiverse programari no lliure
  • Tipus d'actualitzacions
  • Security actualitzacions de seguretat importants o errors d'aplicacions
  • Updates actualitzacions recomanades
  • Proposed actualitzacions disponibles abans del seu alliberment a la primera versió
  • Backports actualitzacions no suportades
Jordiromerounix118.png


Jordiromerounix119.png

Configuració de dipòsits

  • Els dipòsits es configuren a:
$sudo gedit /etc/apt/sources.lists
Jordiromerounix127.png

Gestors de paquets Debian

dpkg

  • Debian package(dpkg)
  • Aplicació encarregada de gestionar paquets debian
  • Eina de baix nivell, utilitzada per altres aplicacions com per exemple apt-get
  • la sintaxis és
$sudo dpkg [opcions][acció] [arxiu_de_paquets|nom_del_paquet]
  • Ordre que proporciona on es troba el paquet del mateix nom
$whereis dpkg
  • Opcions
  • Només de consulta
  • dpkg -l | --list package-name-pattern : Llista els paquets que compleixen amb un determinat patró.
ii  openssh-client 1:5.8p1-7ubunt secure shell (SSH) client, for secure access
ii  openssl        1.0.0e-2ubuntu Secure Socket Layer (SSL) binary and related
ii  optipng        0.6.4-1        advanced PNG (Portable Network Graphics) opt
ii  os-prober      1.49ubuntu1    utility to detect other OSes on a set of dri
ii  overlay-scroll 0.2.11-0ubuntu Scrollbar overlayed widget
ii  oxygen-cursor- 0.0.2010-05-10 Oxygen Mouse Cursor Theme
ii  oxygen-icon-th 4:4.7.1-0ubunt Oxygen icon theme
ii  palapeli       4:4.7.3-0ubunt jigsaw puzzle game
ii  palapeli-data  4:4.7.3-0ubunt data files for palapeli jigsaw puzzle game
...
  • 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 -L openssl
/.
/usr
/usr/bin
/usr/bin/openssl
/usr/bin/c_rehash
/usr/lib
/usr/lib/ssl
/usr/lib/ssl/misc
/usr/lib/ssl/misc/CA.sh
/usr/lib/ssl/misc/CA.pl
/usr/lib/ssl/misc/tsget
/usr/lib/ssl/misc/c_hash
/usr/lib/ssl/misc/c_info
/usr/lib/ssl/misc/c_issuer
/usr/lib/ssl/misc/c_name
/usr/share
...
  • dpkg -S | --search filename-search-pattern : Busca un fitxer concret dins dels paquets instal·lats
$ man dpkg-query
  • dpkg -p | --print-avail package : Mostra detalls sobre un paquetinstal·lat.
  • dpkg -I | --info package-name: Mostra informació sobre un paquet desinstal·lat.
  • Accions que modifiquen el sistema cal ser superusari
  • 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.
  • Instal·lació del paquet Hello amb la comanda dpkg
  • Descarreguem el paquet hello i des de la pàgina ubuntu packages i procedim a fer la instal·alció
Jordiromerounix126.png


Jordiromerounix120.png
  • Com podem veure ens ha instal·lat el programa
Jordiromerounix121.png
  • Provem la comanda configure, com és un arxiu petit en dona que ja està configurada
Jordiromerounix122.png
  • Desinstalem el programa Hello amb la comanda remove
Jordiromerounix123.png
  • Tornem a instal·lar el programa Hello i el desinstal·lem amb la comanda purge
Jordiromerounix124.png
  • Comporvem amb dpkg -C si hi ha algun paquet que hagi pendent d'instal·lar com podem veure no en tenim cap que ens doni cap error
Jordiromerounix125.png

apt

  • Advanced Package tool (apt)
  • Utilitat per a la gestio de paquets de sistemes Debian/GNU Linux
  • apt simplifica la feina de gestió de paquets en sistemes UNIX per que automatitza la instal·lació de paquets
  • Apt és un front-end de dpkg.
  • Actualment ja hi ha versions modificades d'apt per treballar amb paquets 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 programes de Línia de comandes per a distribuir paquets.
  • Apt és un conjunt d'eines proporcionades pel paquet apt:
  • Ordres
  • Veiem les opcions del apt amb la següent comanda
$dpkg -L apt | grep bin
/usr/bin
/usr/bin/apt-cache
/usr/bin/apt-cdrom
/usr/bin/apt-config
/usr/bin/apt-get
/usr/bin/apt-key
/usr/bin/apt-mark
  • Fitxers de configuració
  • Els fitxers de configuració del apt localitzats a la carpeta /etc són els següents i els podem veure amb la comanda
$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/sources.list.d
/etc/apt/trusted.gpg.d
/etc/logrotate.d
/etc/logrotate.d/apt
/etc/cron.daily
/etc/cron.daily/apt


aptitude

Synaptic

Update-manager

software-center

Ordres

dpkg-reconfigure

apt-get

  • Sincronitzar la base de dades de paquets
  • Opció update:
$sudo apt-get update
  • La base de dades de paquets (package cache) es local i no es sincronitza automàticament amb els dipòsits. La base de dades es pot gestionar amb apt-cache
  • Cada cop que fem un canvi als repositoris, o volem comprovar si tenim les últimes versions dels paquets als repositoris hem d'executar abans un update.
  • S'ha d'executar regularment i sinó tenim paquets com l'update-manager que comprova periòdicament si tenim actualització
  • Hi ha una tasca cron diaria
$dpkg -L apt | grep cron
/etc/cron.daily
/etc/cron.daily/apt
  • Instal·lar un paquet
$sudo apt-get install nom_del_paquet
  • L'eina suporta autocompletar en les opcions i en els noms de paquets.
  • Es pot simular la instal·lació:
$sudo apt-get --simulate install supertux
  • Altres opcions:
  • -d: Només descarrega el paquet.
  • -f: Força la instal·lació encara que falli el test d'integritat.
  • -y: Respon si a totes les preguntes.
  • Informació durant la instal·lació
$sudo apt-get install hello
S'està llegint la llista de paquets... Fet
S'està construint l'arbre de dependències       
S'està llegint la informació de l'estat... Fet
S'instaŀlaran els paquets NOUS següents:
  hello
0 actualitzats, 1 nous a instaŀlar, 0 a suprimir i 14 no actualitzats.
S'ha d'obtenir 25,9 kB d'arxius.
Després d'aquesta operació s'empraran 102 kB d'espai en disc addicional.
Bai:1 http://es.archive.ubuntu.com/ubuntu/ oneiric/main hello i386 2.7-1 [25,9 kB]
S'ha baixat 25,9 kB en 0s (310 kB/s)
S'està seleccionant el paquet hello prèviament no seleccionat.
(S'està llegint la base de dades… hi ha 257816 fitxers i directoris instaŀlats actualment.)
S'està desempaquetant hello (de …/archives/hello_2.7-1_i386.deb)…
S'estan processant els activadors per a install-info…
S'estan processant els activadors per a man-db…
S'està configurant hello (2.7-1)…
  • Atenció: Una instal·lació pot esborrar altres paquets que no siguin compatibles amb el que esteu instal·lant!
  • Eliminar un paquet
  • No elimina els fitxers de configuració
$sudo apt-get remove hello
S'està llegint la llista de paquets... Fet 
S'està construint l'arbre de dependències       
S'està llegint la informació de l'estat... Fet
Es SUPRIMIRAN els paquets següents:
  hello
0 actualitzats, 0 nous a instaŀlar, 1 a suprimir i 14 no actualitzats.
Després d'aquesta operació s'alliberaran 102 kB d'espai en disc.
Voleu continuar [S/n]? s
(S'està llegint la base de dades… hi ha 257822 fitxers i directoris instaŀlats actualment.)
S'està desinstaŀlant hello…
S'estan processant els activadors per a man-db…
S'estan processant els activadors per a install-info…


  • Eliminar completament (purge)
$sudo apt-get remove --purge hello
S'està llegint la llista de paquets... Fet 
S'està construint l'arbre de dependències       
S'està llegint la informació de l'estat... Fet
Es SUPRIMIRAN els paquets següents:
  hello*
0 actualitzats, 0 nous a instaŀlar, 1 a suprimir i 14 no actualitzats.
Després d'aquesta operació s'alliberaran 102 kB d'espai en disc.
Voleu continuar [S/n]? s
(S'està llegint la base de dades… hi ha 257822 fitxers i directoris instaŀlats actualment.)
S'està desinstaŀlant hello…
S'estan processant els activadors per a man-db…
S'estan processant els activadors per a install-info…
  • Atenció: al esborrar un paquet també es poden eliminar paquets els quals depenien del paquet esborrat
  • A vegades s'esborren paquets virtuals que poden semblar perillosos de desinstal·lar però no ho son pas
  • Autoremove
  • Borra paquets del sistema que ja no s'utilitzen:
  • Paquets marcat com instal·lats automàticament i que ja no s'utilitzen
$sudo apt-get autoremove
S'està llegint la llista de paquets... Fet 
S'està construint l'arbre de dependències       
S'està llegint la informació de l'estat... Fet
0 actualitzats, 0 nous a instaŀlar, 0 a suprimir i 14 no actualitzats.
  • Upgrade
  • Actualitza els paquets instal·lats al sistema dels quals es disposa d'una nova versió al repositori:
$sudo apt-get upgrade
S'està llegint la llista de paquets... Fet 
S'està construint l'arbre de dependències       
S'està llegint la informació de l'estat... Fet
S'actualitzaran els paquets següents:
  language-pack-ca language-pack-ca-base language-pack-en
  language-pack-en-base language-pack-es language-pack-es-base
  language-pack-gnome-ca language-pack-gnome-ca-base language-pack-gnome-en
  language-pack-gnome-en-base language-pack-gnome-es
  language-pack-gnome-es-base language-pack-kde-ca language-pack-kde-ca-base
14 actualitzats, 0 nous a instaŀlar, 0 a suprimir i 0 no actualitzats.
S'ha d'obtenir 28,3 MB d'arxius.
Després d'aquesta operació s'alliberaran 725 kB d'espai en disc.
Voleu continuar [S/n]?
  • Dist-upgrade
  • Utilitzat per actualitzar paquets a una nova versió del sistema (canvis de versió a la distribució)
  • Instal·la els paquets mantinguts
  • Esborrar paquets descarregats
  • Opció clean
  • Serveix per a eliminar paquets ja instal·lats al sistema
$sudo apt-get clean
  • Els paquets es troben a
/var/cache/apt/archives
  • Opció source
  • Descarrega paquets de codi font
  • Exemple de com descarregar un codi font, compilar-lo i instal·lar-lo:
$sudo apt-get build-dep coreutils
$sudo apt-get -b source coreutils

$sudo ln -s ~/sources/coreutils-7.4/src /usr/src/coreutils-7.4

$whereis ls
ls: /usr/src/coreutils-7.4/ls.c /usr/src/coreutils-7.4/ls.o ...
  • L'opció build-dep instal·la les dependències necessàries per compilar el codi font
  • Resolució de problemes
  • Actualització aturada abruptament durant la instal·lació de paquets
$apt-get -f install
$dpkg --configure -a
  • Mai poden haver-hi més d'una aplicació de gestió de paquets obertes al mateix temps
  • Si una aplicació de gestió de paquets es penja pot deixar bloquejat l'accés a la base de dades de paquets:
$sudo rm /var/lib/dpkg/lock
  • No es pot eliminar un paquet. Error en algun del fitxers d'script (p. ex. Postrm)
  • Els fitxers d'script es troben a:
/var/lib/dpkg/info/
/var/lib/dpkg/info/
  • Per exemple els postrm
$ls /var/lib/dpkg/info/*.postrm
  • Es pot eliminar l'script o posar un return 0 al principi del fitxer

apt-url

  • Amb el navegador firefox i a Ubuntu
  • Podeu utilitzar URLs per a instal·lar paquets:
  • Codi HTML:
<a href="apt:joe">Fes clic aquí per instal·lar joe</a>
  • Pàgines web:
http://www.apturl.net/
http://appnr.com/
  • El suport ve proporcionat pel paquet apturl

apt-cache

  • És l'eina que permet manipular la memòria cau (cache) dels paquets Debian. L'ordre només serveix per proporcionar informació sobre la base de dades de paquets Debian (també coneguda com package cache).
  • Buscar paquets:
$apt-cache search word
              
  • Dependències:
$apt-cache depends nom_del_paquet
  • Informació d'un paquet:
$apt-cache show nom_del_paquet
  • Informació detallada
$apt-cache showpkg package
  • Estadístiques de la base de dades de paquets
$sudo apt-cache stats

$apt-cache pkgnames
  • Número de paquets:
$apt-cache pkgnames || wc -l
  • Noms dels paquets:
  • Dependències no satisfetes:
$sudo apt-cache unmet
  • Informació detallada d'un paquet
$apt-cache showpkg paquet

aptitude

Conversió de paquets

Vegeu també

tasksel

debconf

dpkg

apt

apt-get

ubuntu

debian

Enllaços externs

Ubuntu Packages

Ubuntu