Nombre: Muammar El Khatib Contacto: muammar@debian.org.ve Mantenedor de paquetes Debian. Miembro de Debian Venezuela http:!!""".debian.org.ve# $seudo %icenciado en &u'mica $ura. $(gina personal: http:!!muammar.me )log: http:!!muammar.me!blog *$* +e,: -./0.12-
Contenido
3ntroducci4n 3nstalar 5 Desinstalar paquetes 6$7# &u8 es un paquete .deb 7ipos de paquetes .deb Versiones de un .deb Contenido de un .deb Entendiendo a dp+g Maintainer 9cripts
Introduccin
6l principio solo hab'a tar.gz Necesidad de un sistema que mane:ara paquetes.
D$K*
;$M
Introduccin
Configuracin y Uso Bsico de AP
!etc!apt!sources.list
deb http://host/debian distribution section1 section2 section3 deb-src http://host/debian distribution section1 section2 section3
Nota: %'neas que comiencen con A son ignoradas por 6$7 comentarios# El archivo !etc!apt!sources.list puede contener muchas , diversas l'neas. 6$7 sabe c4mo arreglarselas con archivos de tipo: http= Btp= Bile archivos locales como por e:emplo un directorio contenindo en un sistema de archivos montado de tipo 39C1DD0 Biles,stem# , ssh.
Introduccin
obe,:!home!muammarA aptitude update <it http:!!Btp.us.debian.org unstable ;elease.gpg 3gn http:!!Btp.us.debian.org unstable!main 7ranslation@enFE9 3gn http:!!Btp.us.debian.org unstable!non@Bree 7ranslation@enFE9 3gn http:!!Btp.us.debian.org unstable!contrib 7ranslation@enFE9 <it http:!!Btp.us.debian.org eGperimental ;elease.gpg 3gn http:!!Btp.us.debian.org eGperimental!main 7ranslation@enFE9 3gn http:!!Btp.us.debian.org eGperimental!non@Bree 7ranslation@enFE9 3gn http:!!Btp.us.debian.org eGperimental!contrib 7ranslation@enFE9 2etched --.0+) in Ds -D-0)!s# ;eading pac+age lists... Done
Introduccin
6$7 descarga e indeGa todos los paquetes disponibles en los repositorios en !"ar!#ib!a$t!#ists. %os listados son almacenados segHn la siguiente convenci4n:
ft$.debian.org%debian%dists%unstab#e%main%binary&amd'(%Pac)ages *************** ++++++ ************** ++++ ** Mirror direc. rama ,ecc. i$o Ar-uitecture
Introduccin
$ara una lista completa de mirrors de Debian visitar: http:!!""".debian.org!mirror!mirrorsFBull 6ctualizar un sistema basado en 6$7 es sencillo= solo ha, que e:ecutar apt@ get upgrade o aptitude saBe@upgrade:
A apt@get @u upgrade ;eading $ac+age %ists... Done )uilding Dependenc, 7ree... Done 7he Bollo"ing pac+ages have been +ept bac+ cpp gcc lilo 7he Bollo"ing pac+ages "ill be upgraded adduser ae apt autoconB debhelper dp+g@dev esound esound@common Btp indent ipchains isapnptools libaudioBile@dev libaudioBile0 libesd0 libesd0@dev libgt+-.. libgt+-..@dev libloc+Bile- libne"t0 liborbit@dev liborbit0 libstdcII..-0@glibc... libtiBBJg libtiBBJg@dev modconB orbit procps psmisc .1 pac+ages upgraded= 0 ne"l, installed= 0 to remove and J not upgraded. Need to get K0KK)!K0KK+) oB archives. 6Bter unpac+ing --D-+) "ill be used. Do ,ou "ant to continueL MN!nO
Introduccin
$asar de una rama estable= prueba= inestable# a otra= al menos en Debian P# es bastante B(cil= se e:ecuta: A apt@get dist@upgrade o= A aptitude dist@upgrade 55 aptitude Bull@upgrade. $ara ello solo se debe cambiar el archivo sources.list para que apunte a la versi4n a la cual se quiere actualizar el sistema.
./em$#o0 Versi4n actual: deb http:!!Btp.us.debian.org!debian! testing main non@Bree contrib deb@src http:!!Btp.us.debian.org!debian! testing main non@Bree contrib Versi4n a la que se quiere me:orar: deb http:!!Btp.us.debian.org!debian! unstable main non@Bree contrib deb@src http:!!Btp.us.debian.org!debian! unstable main non@Bree contrib
7ambien es posible instalar , desintalar paquetes al mismo tiempo en una sola l'nea= para ellos basta con agregar un & al Binal del paquete que desea ser desinstalado:
obe,:!home!muammarA apt@get install amsn pidgin@ ;eading pac+age lists... Done )uilding dependenc, tree ;eading state inBormation... Done 7he Bollo"ing pac+ages "ere automaticall, installed and are no longer required: libpurple0 libsilc@-.-@. pidgin@data libgaduJ libhesiod0 libpurple@bin libmean"hile libzeph,rJ Ese >apt@get autoremove> to remove them. 7he Bollo"ing pac+ages "ill be ;EMCVED: pidgin pidgin@guiBications 7he Bollo"ing NEQ pac+ages "ill be installed: amsn 0 upgraded= - ne"l, installed= . to remove and 0 not upgraded. Need to get 0)!./0+) oB archives. 6Bter this operation= .0/J+) dis+ space "ill be Breed. Do ,ou "ant to continue MN!nOL
,ing#e&binaries
3nstalaci4n de n paquetes= el meta paquete solo contiene como dependencia estos n paquetes a instalar. ,ource Pac)ages
&ersiones de un $deb
8b/eti"o
Entender toda la inBormaci4n que puede contener una versi4n de un paquete .deb
tcl@tlsF-:-.K.0.dBsg@1.JIb-FiJTD.deb
&ersiones de un $deb
2 J
&ersiones de un $deb
&ersiones de un $deb
i$
%as versiones son usadas por dp+g para resolver dependencias. En ocasiones los paquetes declaran dependencias con versiones espec'Bicas para evitar conBlictos. Con d$)g &&com$are&"ersions se puede tener una idea de c4mo dp+g interpreta las versiones. E:emplo: V dp+g @@compare@versions K...0 gt K...- 55 echo true WW echo Balse fa#se
V dp+g @@compare@versions K...0IdBsg@-..Ib- gt K...-IdBsg@. 55 echo true WW echo Balse
fa#se
Contenido de un $deb
Contenido de un $deb
9igura ms digerib#e 07
Contenido de un $deb
'control$tar$()*
Contenido de un $deb
'control$tar$() + detallado*
conffi#es es una lista de archivos de conBiguraci4n que se encuentran en !"ar!#ib!d$)g!info!. 9on dispuestos por los mantenedores para que dp+g los mantenga , pregunte si pueden ser o no sobre escritos.
contro# fi#e este archivo muestra las dependencias , cierta inBormaci4n de los paquetes.
debconf contiene un archivo conBig que no es m(s que un script que genera una serie de preguntas 5 acciones#= , un template que sirve de Brontend mantienen las traducciones#.
Maintainer scri$ts estos se encargan de conBigurar los paquetes cuando se instalan= desinstalan= o se actualizan en un sistema basado en Debian. %os maintainer scripts son:
R R R R
Contenido de un $deb
'data$tar$()*
data.tar.gz contiene todos los archivos precompilados para las arquitecuras hu8spedes que van a ser instalados en el sistema. muammar@obe,:X!src!main!programs!eterm!e:emploV tar tvzB data.tar.gz dr"Gr@Gr@G root!root 0 .00T@01@0Y -1:-D .! dr"Gr@Gr@G root!root 0 .00T@01@0Y -1:-D .!usr! dr"Gr@Gr@G root!root 0 .00T@01@0Y -1:-D .!usr!lib! @r"@r@@r@@ root!root KKJ1DT .00T@01@0Y -1:-D .!usr!lib!libEterm@0.1.K.so @r"@r@@r@@ root!root 1K0 .00T@01@0Y -1:-D .!usr!lib!libEterm.la dr"Gr@Gr@G root!root 0 .00T@01@0Y -1:-D .!usr!share! dr"Gr@Gr@G root!root 0 .00T@01@0Y -1:-D .!usr!share!menu! @r"@r@@r@@ root!root --. .00T@0T@J- -Y:0J .!usr!share!menu!eterm dr"Gr@Gr@G root!root 0 .00T@01@0Y -1:-D .!usr!share!man! dr"Gr@Gr@G root!root 0 .00T@01@0Y -1:-D .!usr!share!man!man-! @r"@r@@r@@ root!root .--/T .00T@01@0Y -1:-D .!usr!share!man!man-!Eterm.-.gz En base a la instalaci4n de estos archivos= se genera !"ar!#ib!d$)g!$a-uete.#ist
,ntendiendo a d!k(
d$)g &i
,ntendiendo a d!k(
',stados*
%os estados de los paquetes son archivos que residen en !"ar!#ib!d$)g!status en los sistemas Debian. %os estados son: R not@installed Z paquete no instalado. R conBig@Biles Z en el sistema solo eGisten archivos de conBiguraci4n. R halB@installed Z la instalaci4n del paquete de alguna manera no se complet4. R unpac+ed Z los archivos se desempacaron pero no Bueron conBigurados. R halB@conBigured Z la conBiguraci4n Ball4. R installed Z paquete instalado completamente. d$)g es quien asigna los estados de manera autom(tica.
,ntendiendo a d!k(
',stados*
d$)g puede veriBicar los estados de los paquetes:
muammar@obe,:XV dp+g @@status amsn $ac+age: amsn 9tatus: install o+ installed $riorit,: optional 9ection: G-3nstalled@9ize: TD0 Maintainer: Muammar El Khatib [muammarel+hatib@gmail.com\ 6rchitecture: iJTD Version: 0.1/..Xdebian@;eplaces: amsn@data Depends: libcD \S ../@-#= libgcc- \S -:Y.-.-#= lib:pegD.= libpng-.@0 \S -...-J@Y#= libstdcIID \S Y.-.-#= libG--@D= zlib-g \S -:-.-.Y#= amsn@data S 0.1/..Xdebian@-#= t+T.K= tcl@tls= libsnac+. 9uggests: ice"easel W iceape W galeon W +onqueror= soG= doc+er= tclsh ConBlicts: amsn@data [S 0.1./.-Xdebian@-# Description: 6n M9N messenger "ritten in 7cl 6 ver, nice M9N compatible messenger application. Qor+s prett, much li+e its Qindo"s based counterpart. $erBect Bor +eeping in touch "ith those Briends "ho have not ,et seen the light. <omepage: http:!!amsn.sourceBorge.net!
-aintainer .cri!ts
Definicin
9on $C93] scripts e:ecutados en distintas Bases de la instalaci4n de un paquete. Dichos scripts reciben distintos argumentos tales como: R install R conBigure R remove R upgrade R purge
-aintainer .cri!ts
$ero qu8 tal si algo BallaL %eer de Murph, en Qi+ipedia# 06
-aintainer .cri!ts
:u; 4ace entonces un Maintainer scri$t< 7areas requeridas para el Buncionamiento correcto de los paquetes como: R Crear!Eliminar usuarios. R Detener!E:ecutar servicios. R 2i:ar permisos de archivos. R Crear bases de datos. Cada una de las tareas o acciones= es evaluada , retorna = 4 0 si el proceso termina de manera satisBactoria o no. 6hora veamos c4mo Bunciona la desinstalaci4n de un paquete
-aintainer .cri!ts
-aintainer .cri!ts
El estado Binal de un paquete removido es config&fi#es. Por -u;< %a raz4n es que en Debian cuando se desinstala un paquete con la opci4n ^remove_ ,a sea usando apt o dp+g= se remueven todos los archivos menos los de conBiguraci4n , todos los que se encuentren en: !"ar!#ib!d$)g!info!>.conffi#es . Cmo se e#iminan #os arc4i"os de configuracin< $ara llevar a cabo esta remoci4n= es necesario usar la opci4n ^@@purge_ En la l(mina siguiente se muestra
-aintainer .cri!ts
-aintainer .cri!ts
0!(rade1com!le2o]
-aintainer .cri!ts
6hora= qu8 pasa si algo se peta durante la actualizaci4n. `@AVaa5 le, de Murph,
-aintainer .cri!ts
Conclusiones
d$)g resulta ser un mane:ador de paquetes bastante inteligente , bien elaborado en el sentido de que si algo sale mal en la instalaci4n el sistema no queda inutilizable.
d$)g de"o#"i e# estado $erencito en $ost$roceso migue#ito &uiere decir que el maintainer script Ball4 , es un bug que debe ser re$ortado. 6$7 es una herramienta que me permite descargar los paquetes desde los repositorios= , mane:arlos de manera sencilla.
9e demuestra que mucha de la estabilidad de los sistemas Debian se debe a su mane:ador de paquetes.
%a ma,or'a de los diagramas Bueron tomados de unas presentaciones hechas por ;en8 Ma,orga que puedes encontrar en: