You are on page 1of 11

Departament dInformtica

Generalitat de Catalunya
Departament dEducaci

DAMIX M1 UF2

UF2: Gesti de la informaci i de recursos en una xarxa


Gesti de paquets en Debian GNU/Linux

ndex de continguts
UD6: Sistemes operatius GNU/Linux........................................................................1
NA1: installaci i configuraci.......................................................................................1
Gesti de paquets en Debian GNU/Linux...............................................................................1
Introducci............................................................................................................................1
Nom dels paquets..................................................................................................................2
Principals programes per a la gesti de paquets..................................................................2
Advanced Package Tools (APT)...........................................................................................2
El fitxer sources.list...........................................................................................................2
El programa apt-get...........................................................................................................3
El programa apt-cache.......................................................................................................4
El fitxer /etc/apt/apt.conf...................................................................................................6
Cerca de paquets a travs de les pgines web de Debian.....................................................6
Els programes dpkg i dpkg-reconfigure...............................................................................6
Altres utilitats de gesti de paquets.......................................................................................7
Installaci d'un nou nucli....................................................................................................7
Dipsits especials...................................................................................................................7
El dipsit security..............................................................................................................8
El dipsit proposed-updates...............................................................................................8
El dipsit volatile...............................................................................................................8
El dipsit backports...........................................................................................................8
Distribucions de Debian........................................................................................................9
Compilaci de paquets en codi font......................................................................................9

Departament dInformtica
Generalitat de Catalunya
Departament dEducaci

DAMIX M1 UF2

Introducci
Quan va comenar a funcionar GNU/Linux, els programes es distribuen amb els seus codis font comprimits. L'usuari
havia de descomprimir el fitxer, compilar el programa i configurar-lo per l's que li volgus donar.
A partir d'aqu es va crear la idea de paquet. Un paquet cont tots els fitxers necessaris per implementar un conjunt
d'utilitats o comandes. Hi ha dos tipus de paquets, els binaris, que contenen executables, fitxers de configuraci,
pgines de manual i altre documentaci, i els fonts, que contenen els fitxers amb el codi font dels programes.
L's de paquets permet realitzar la installaci i configuraci dels programes de manera senzilla i segura.
Ms endavant, es va veure la necessitat de mantenir alguna informaci sobre les dependncies entre diferents paquets,
de manera que l'usuari no s'hagus de preocupar de buscar quins paquets eren necessaris per utilitzar-ne un altre i no
hagus d'installar-los d'un en un. Actualment, les eines de gesti de paquets mantenen una base de dades amb tots els
paquets disponibles i totes les seves dependncies i conflictes, de manera que resulta fcil installar i suprimir els
programes.
Tot aix t molt a veure amb la filosofia de programaci Unix. A diferncia d'altres entorns, la concepci dels
programes Unix ha estat la de fer petites peces, cadascuna de les quals resol un petit problema, i fer-les funcionar juntes
per resoldre els problemes complexos. Aix implica que tenim multitud de paquets diferents i que existeixen moltes
dependncies entre ells. La condici de codi obert i lliure s un factor molt important per seguir amb aquest esquema de
desenvolupament de programari.
Aquest article s una introducci a les eines principals que ofereix Debian GNU/Linux per a la gesti de paquets.

Nom dels paquets


Els paquets binaris segueixen la segent nomenclatura:
<foo>_<NmeroVersi>-<NmeroRevisiDebian>.deb
on foo s el nom del paquet, NmeroVersi s l'identificador de la versi donada pels desenvolupadors del paquet
(upstream) i NmeroRevisiDebian s l'identificador de la revisi especificada pel mantenidor de Debian.

Principals programes per a la gesti de paquets


tasksel: aquest s un programa de molt alt nivell que permet elegir grups de paquets sencers relacionats amb diferents
tasques. S'utilitza durant la installaci per poder tenir un sistema complet funcionant de forma rpida i senzilla.
synaptic: s un programa amb interfcie grfica (GUI) que permet la selecci de paquets per installar i suprimir a partir
de la llista de paquets disponibles als dipsits (o repositoris o fonts) de paquets. s capa de gestionar les dependncies i
conflictes entre paquets i l'actualitzaci automtica del sistema. L'usuari pot seleccionar els paquets que vol i el
programa proporcionar una soluci raonable que compleixi els requisits de tots els paquets.
aptitude: s un programa similar al synaptic, per en un entorn de lnia de comandes. s el programa recomanat en el
moment de fer una actualitzaci a una nova branca estable de Debian.
apt: Advanced Package Tool. El conjunt d'eines apt mant una llista de fonts (dipsits) des d'on es poden installar els
paquets i una base de dades amb les caracterstiques, versions, dependncies, conflictes, recomanacions i ms
informaci de tots els paquets installats i disponibles. s la base de programes com el tasksel, el synaptic o el aptitude i
tamb es pot utilitzar directament.
dpkg: Debian Package. Aquest s el programa principal de gesti de paquets. s una eina de ms baix nivell que les
anteriors que permet manipular directament els fitxers .deb . Els altres programes fan crides a les utilitats dpkg per
realitzar la installaci o supressi dels paquets, per a vegades tamb s til usar-lo per separat. A diferncia de l'apt, el
dpkg no disposa d'una informaci global de tots els paquets.

Departament dInformtica
Generalitat de Catalunya
Departament dEducaci

DAMIX M1 UF2

Advanced Package Tools (APT)


El fitxer sources.list
Com s'ha dit, APT utilitza una llista de dipsits (repositories) d'on es poden aconseguir els diferents paquets. A partir
d'aquests repositoris crea una base de dades amb informaci sobre quins paquets estan disponibles, quins d'ells es troben
installats, quines sn les seves versions, quines dependncies i interrelacions tenen, etc. Per fer aix, el sistema obt un
ndex de cadascun dels dipsits, que cont aquesta informaci sobre els paquets presents al dipsit en aquell moment.
El fitxer on es troba aquesta llista de dipsits s /etc/apt/sources.list. Com que s un fitxer de text el podem modificar a
m amb algun editor de text, com el nano o el vi. Hem de ser root per poder-ho fer.
Cada lnia del fitxer representa un dipsit. N'hi ha de dos tipus: de paquets binaris i de paquets font. Les lnies
segueixen el segent format:
deb http://site.http.org/debian distribuci secci1 secci2 secci3
deb-src http://site.http.org/debian distribuci secci1 secci2 secci3

La primera lnia indica una font de paquets binaris (deb) mentre que la segons la indica de paquets font (deb-src). A
continuaci hi ha l'adrea d'un servidor http on hi ha els paquets (pot sser http, ftp, file, cdrom, etc.). La distribuci es
refereix a si els paquets sn de la versi estable (stable), de test (testing) o inestable (unstable). En respositoris no
oficials o amb caracterstiques especials, es poden utilitzar altres noms en l'apartat de distribuci. Les seccions
s'utilitzen per indicar de quina o quines seccions formen part els paquets d'una font. En els repositoris oficials sn main,
contrib i non-free i en poden aparixer vries a cada lnia. La secci main est composta per tots els paquets amb
llicncia lliure, que sn la majoria. La secci non-free la constitueixen els paquets que per algun motiu no es poden
considerar lliures segons els Principis del Programari Lliure de Debian (DFSG). La secci contrib la formen paquets
que sn lliures en s mateixos, per que requereixen d'algun component no lliure per al seu funcionament o utilitzaci.
Els repositoris http i ftp s'utilitzen per fer referncia a llocs de la xarxa. Les fonts file es refereixen a directoris al nostra
ordinador o a la nostra xarxa local on hi ha paquets installables. Les fonts cdrom es refereixen a CD o DVD amb
paquets de Debian.
Les lnies cdrom no es poden afegir a m, sin que s'utilitza el programa apt-cdrom per fer-ho. Cal introduir el CD que
volem analitzar i donar l'ordre:
# apt-cdrom add

Exercicis:
1.

Fulleja la pgina de manual de sources.list . Fixa't sobretot en els diferents exemples que hi ha. Pots entendre el
significar de cadascun d'ells?
Si. Lo mes destacat es que explica que sources.list s0ha disenyat per permetre l'us de cualsevol numero de
fonts (no les tipogrfiques) com de mitjans de suport d'aquestes. Explica qe els fitxers han de terminar en .list i
nomes poden contindre caracter lletra i digits del 0 al 9, gui baix, gui i punt. En cas contrari APT informara de
que dit fitxe s'omitir. Ens diu que hi han dos tipus els DEB i DEB-SRC. Deb fa referncia a un archiu
tipic de debian, distribucio/component. Les de distribuci es separen en estables o en proves (testing), o un
nom codi com wheezy o jessie, mentre que el component es main (principal) contrib, non-free o non us. El
tipus deb-src fa referencia al codi font de la distribucio amb la mateixa sintaxis que el tipus deb. El format ha
de ser:
deb [ options ] uri suite [component1] [component2]

2.

Fes una ullada al fitxer sources.list del teu ordinador. Quins dipsits hi tens?
deb http://security.debian.org deb-src http://security.debian.org (binari) deb http://ftp.debian.org/debian/
deb http://ftp.es.debian.org/debian/

Departament dInformtica
Generalitat de Catalunya
Departament dEducaci

DAMIX M1 UF2

3.

Consulta l'adrea http://www.debian.org/mirrors/list . Quines sn les rpliques de Debian situades a Espanya?


Prova d'afegir alguns dipsits al teu fitxer sources.list .

4.

La pgina de l'exercici anterior informa sobre les rpliques oficials de Debian. Aix significa que aquestes
adreces tenen cpies de les distribucions de Debian tal i com es publiquen. Hi ha altres llocs, per, que
ofereixen paquets per Debian que per algun motiu no estan inclosos a la distribuci oficial. Ets capa de trobarne algun? Quins altres paquets s'hi ofereixen?

5.

Busca quins altres formats de paquets fan servir altres distribucions de Linux. Quins has trobat? Quins
avantatges i inconvenients tenen respecte el format de Debian?

6.

Moltes distribucions diferents de Debian utilitzen el seu mateix format per gestionar els paquets. Busca'n tres.
Creus que s possible intercanviar fcilment paquets d'aquestes altres distribucions amb paquets de Debian i a
l'inrevs?

El programa apt-get
apt-get s la utilitat principal que ofereix el mtode apt. Amb ella podem installar i esborrar programes, aix com
mantenir al dia la llista de programes disponibles i corregir problemes de dependncies que puguin aparixer.
No cal dir que totes les operacions fetes amb apt-get sn d'administraci del sistema i poden resultar perilloses fins a un
cert punt, perqu podem treure programes que els usuaris encara necessiten. Per aix s necessari connectar-se com a
root per poder utilitzar-lo.
A continuaci es presenten els usos principals d'apt-get:
apt-get update: actualitza la llista de paquets disponibles a partir dels dipsits definits al fitxer sources.list.
Una crida a apt-get update provoca que el sistema torni a llegir les especificacions del sources.list i reconstrueixi la base
de dades de paquets disponibles, versions i dependncies. En el cas de CD, aquesta operaci noms s necessria quan
esborrem fonts del fitxer, per assegurar que es treuen els paquets de la llista de disponibles. No cal fer update a l'afegir
CD, perqu ja ho fa el mateix programa apt-cdrom. En el cas d'adreces http, ftp o file s necessari cridar update cada
vegada que modifiquem el fitxer sources.list. Com que aquest tipus de fonts sn dinmiques s molt recomanable
executar un update peridicament, per assegurar que la informaci del nostre ordinador es correspon amb el que
realment hi ha a les direccions del fitxer. La crida a update per aquests tipus de fonts provoca la connexi a les
direccions esmentades en el fitxer i, si cal, la baixada dels ndexs. s imprescindible fer un update abans d'un upgrade o
dist-upgrade.
apt-get upgrade: s'utilitza per installar les versions actualitzades de tots els paquets del sistema. No se suprimiran ni
s'installaran altres paquets. Aix significa que si algunes dependncies han canviat des de la versi que tenim
installada hi haur paquets que simplement no s'actualitzaran.
apt-get dist-upgrade: s similar a upgrade per s capa de gestionar de forma intelligent els canvis de dependncies,
de forma que installar i suprimir paquets per tal d'aconseguir actualitzar el sistema i complir les dependncies.
apt-get install: installa o actualitza els paquets que s'indiquin desprs de la paraula install. No s'ha d'especificar el nom
complet del paquet .deb sin noms el nom del paquet (per exemple, per installar el paquet nano_2.2.3-1_i386.deb
posarem apt-get install nano. L'apt-get ja s'encarrega d'obtenir la versi disponible ms recent del programa a installar.
A ms, s'installen automticament tots els paquets requerits pels paquets que volem installar. Hi ha opcions per forar
la installaci o supressi de paquets per resoldre problemes de dependncies, es poden utilitzar carcters comod per
especificar els noms dels paquets i es poden especificar versions concretes a installar. L'ordre apt-get install sense ms
arguments provoca que el sistema acabi amb les installacions i supressions que tingus pendents.
apt-get remove: s'utilitza de forma similar a install, per els paquets se suprimeixen. apt-get remove sense arguments
actua de la mateixa manera que apt-get install.
apt-get source: s'utilitza per obtenir el codi font dels paquets especificats.
apt-get check: comprova que s'estan complint les dependncies dels paquets installats. Permet diagnosticar possibles
problemes.

Departament dInformtica
Generalitat de Catalunya
Departament dEducaci

DAMIX M1 UF2

apt-get clean: els arxius .deb es guarden a disc quan es descarreguen, per si fos necessari tornar a utilitzar els paquets
originals. Amb clean aquests paquets s'esborren i s'allibera espai al disc.
apt-get autoclean: actua de forma similar a clean, per noms esborra els paquets que ja no es poden tornar a
descarregar i que es consideren, per tant, antiquats.
El comportament d'apt-get es pot modificar de moltes maneres. A continuaci es presenten alguns dels modificadors
ms tils.

-s: aquesta opci s'utilitza per simular una acci. L'apt-get ens informa de qu es faria en el sistema, per sense
fer res realment. s molt til per assegurar-nos que no esborrarem paquets importants o que no haurem de
baixar ms coses de les que volem, sobretot quan volem fer modificacions importants, com actualitzacions del
sistema.

-u: a ms de mostrar els paquets que s'installaran i els que es trauran, es demana a l'apt-get que ens indiqui
quins paquets s'actualitzaran.

--purge: s'utilitza per suprimir paquets de manera que tamb s'esborrin els seus fitxers de configuraci. El
comportament per defecte s deixar els fitxer de configuraci al sistema, de manera que si ms endavant es
torna a installar un paquet, aquest pugui recuperar la configuraci que havia tingut anteriorment.

-t: permet especificar de quina branca (estable, de test o inestable) volem obtenir un paquet. s til per
sistemes on conviuen paquets de diferents branques, per exemple, potser tenim alguns paquets de test per
mantenim la major part del sistema a la versi estable; com que tenim fonts per les dues versions al fitxer
sources.list, per defecte, l'apt-get sempre ens installar la versi de test, que s ms recent que l'estable. Si
volem installar la versi estable del nano en aquesta situaci ho podrem fer aix: apt-get -t stable install nano.

Exercicis:
7.

Utilitza l'apt-get per installar el paquet anjuta. Quina instrucci has utilitzat? De quins altres paquets depn
l'anjuta?

8.

Utilitza l'apt-get per comprovar qu passaria si esborrssim el paquet apt. No ho facis realment, has de
simular-ho, o no podrs acabar els exercicis :) . Quins altres paquets s'esborrarien?

El programa apt-cache
El conjunt d'utilitats que proporciona apt-cache ens permeten consultar la base de dades de paquets disponibles per
obtenir-ne informaci. A continuaci s'expliquen les utilitats ms comunes.
apt-cache showpkg: mostra informaci sobre els paquets que s'indiquin a continuaci. Per a cada paquet es mostrar
les versions disponibles, els paquets que depenen d'ell (reverse dependencies) i els paquets de qu depn (forward
dependencies).
Exemple:
$ apt-cache showpkg nano
Package: nano
Versions:
2.2.3-1 (/var/lib/apt/lists/ftp.debian.org_debian_dists_testing_main_binary-amd64_Packages)
(/var/lib/dpkg/status)
Description Language:
File: /var/lib/apt/lists/ftp.debian.org_debian_dists_testing_main_binary-amd64_Packages
MD5: b7e1d8c3d831118724cfe8ea3996b595
Reverse Depends:
mindi,nano
junior-writing,nano
Dependencies:
2.2.3-1 - libc6 (2 2.3.4) libncursesw5 (2 5.6+20071006-3) dpkg (18 1.15.4) install-info (0
(null)) spell (0 (null)) alpine-pico (1 2.00+dfsg-5) nano-tiny (1 1.0.0-1) pico (0 (null)) pico
(0 (null))
Provides:
2.2.3-1 - editor
Reverse Provides:

apt-cache dumpavail: mostra una llista de tots els paquets disponibles.

Departament dInformtica
Generalitat de Catalunya
Departament dEducaci

DAMIX M1 UF2

apt-cache show: mostra informaci dels paquets que s'indiquin.


Exemple:
$ apt-cache show nano
Package: nano
Priority: important
Section: editors
Installed-Size: 1456
Maintainer: Jordi Mallach <jordi@debian.org>
Architecture: amd64
Version: 2.2.3-1
Replaces: pico
Provides: editor
Depends: libc6 (>= 2.3.4), libncursesw5 (>= 5.6+20071006-3), dpkg (>= 1.15.4) | install-info
Suggests: spell
Conflicts: alpine-pico (<= 2.00+dfsg-5), nano-tiny (<= 1.0.0-1), pico
Filename: pool/main/n/nano/nano_2.2.3-1_amd64.deb
Size: 541286
MD5sum: b847c5987b09ba56d2ae325df7468240
SHA1: 928dcbac5cca102d4fc1104f9f1236c6703393d5
SHA256: cdd3dc2c083a81fd1579787251b95de905ebf6657d966e12609e51339eb86358
Description: small, friendly text editor inspired by Pico
GNU nano is an easy-to-use text editor originally designed as a replacement
for Pico, the ncurses-based editor from the non-free mailer package Pine
(itself now available under the Apache License as Alpine).
.
However, nano also implements many features missing in pico, including:
- feature toggles;
- interactive search and replace (with regular expression support);
- go to line (and column) command;
- auto-indentation and color syntax-highlighting;
- filename tab-completion and support for multiple buffers;
- full internationalization support.
Homepage: http://www.nano-editor.org/
Tag: interface::text-mode, role::program, scope::utility, suite::gnu, uitoolkit::ncurses,
use::editing, works-with::text

apt-cache search: cerca les expressions que segueixen als noms dels paquets i a les seves descripcions, mostrant els
noms dels paquets on es troben les expressions i una breu descripci de cadascun. Es pot afegir l'especificaci --namesonly que far que noms es busqui als noms dels paquets i l'especificaci --full que mostrar la descripci completa
dels paquets trobats, en comptes de mostrar noms una descripci curta.
apt-cache depends: mostra les dependncies d'un paquets i tots els paquets que poden satisfer-les.
apt-cache rdepends: mostra les dependncies inverses d'un paquet, s a dir, els paquets que depenen d'ell.
Alguns modificadors que poden sser tils:

-i: important. Mostra noms les dependncies importants.

--recurse: mostra les dependncies de forma recursiva.

--installed: mostra les dependncies noms dins del conjunt de paquets installats.

El fitxer /etc/apt/apt.conf
En aquest fitxer s on es poden definir opcions de configuraci especfiques per les utilitats apt. La quantitat d'opcions
possibles sn moltes i s'ha de consultar la pgina de manual d'apt.conf. Les opcions de configuraci segueixen la
segent nomenclatura:
eina::secci::opci valor;

Per exemple, si volem canviar l'opci Assume-Yes de l'aplicaci apt-get ho fariem aix:
APT::Get::Assume-Yes true;

O per canviar l'opci NamesOnly d'apt-cache:


APT::Cache::NamesOnly true;

Departament dInformtica
Generalitat de Catalunya
Departament dEducaci

DAMIX M1 UF2

Totes aquestes opcions tenen el seu equivalent en lnia de comandes, la diferncia s que les opcions definides a
apt.conf s'apliquen a tots els usos de les diferents eines si no s'especifica una opci contrria a la lnia de comandes,
mentre que les opcions a la lnia de comandes substitueixen a les del fitxer apt.conf, per noms en aquella crida
concreta del programa.
Una opci molt tils s la segent:
APT::Default-Release stable que s equivalent a afegir en totes les crides a apt-get l'opci -t stable. Aix far que
sempre s'installin els paquets de la versi estable si s possible i si no indiquem especficament el contrari, encara que
en el fitxer sources.list tinguem fonts tant de la distribuci estable com de la de test.

Cerca de paquets a travs de les pgines web de Debian


A ms d'utilitzar l'apt-cache, hi ha una altra forma fcil de trobar informaci sobre els paquets de Debian. Aquesta
forma consisteix a buscar directament a travs de la pgina web de Debian.
Hi ha dues seccions de la pgina que ens poden interessar per aquesta tasca: la secci Paquets Debian i la secci
Informes d'Error.
A la primera secci podem accedir a les pgines de recerques de paquets. Es poden buscar paquets pel seu nom o per la
seva descripci de qualsevol de les versions actual de Debian. La pgina de cada paquet ens mostra la seva descripci
aix com una srie d'enllaos a pgines que proporcionen ms informaci sobre el paquet en qesti.
A la secci d'informes d'error podem buscar els errors que hi ha reportats sobre qualsevol paquet. Aix ens permet veure
si un error que ens apareix ja est reportat i quina s la resposta del mantenidor del paquet. La poltica de Debian,
definida en el seu Contracte Social (http://www.debian.org/social_contract), assegura que tots els informes d'error
enviats pels usuaris, aix com les respostes donades pels mantenidors dels paquets, seran pblics. s important reportar
els errors nous que puguem trobar per garantir la qualitat dels programes que utilitzem.

Els programes dpkg i dpkg-reconfigure


El programa dpkg i altres programes relacionats dpkg-alguna_cosa proporcionen moltes ms eines per a tractar els
paquets de Debian. Podem veure quines utilitats dpkg tenim disponibles escrivint dpkg com a root i prement dos cops la
tecla tabulador.
dpkg ens permet realitzar totes les funcions d'apt, per treballant directament sobre els arxius .deb . Com a usuaris no
utilitzarem gaire dpkg per s important saber que existeix. La utilitat ms evident que t dpkg per un usuari s la de
poder installar un fitxer .deb que ha obtingut d'un altre lloc. Per installar des d'apt o des del synaptic s necessari que la
informaci del paquet Debian estigui recollida en la base de dades de paquets disponibles; aix implica que el paquet ha
d'estar en un dels CD que tinguem o en una adrea de les presents a sources.list. En un sistema sense connexi a
Internet s possible utilitzar un altre equip per obtenir els fitxers .deb que vulguem i installar-los directament utilitzant
dpkg a partir d'un CD que hem gravat nosaltres mateixos, d'una memria USB o de qualsevol altre mitj.
Per installar un paquet amb dpkg escriurem:
dpkg -i nom_fitxer_deb

Nota que s necessari posar el nom complet del fitxer a installar (i la ruta si cal) contrriament al que passa amb aptget.
Tamb podem utilitzar dpkg per consultar l'estat d'installaci d'un paquet: dpkg -s nom_paquet. Aix ens
proporcionar una informaci similar a apt-cache show per ens informar tamb de l'estat del paquet. Els possibles
estats sn els segents:
installed (installat i correctament configurat), half-installed (s'ha comenat la installaci, per s'ha parat a mitges per
algun motiu), not-installed (no installat), unpacked (el paquet s'ha desempaquetat, per no s'ha configurat), halfconfigured (la configuraci s'ha parat a mitges), config-files (el paquet no est installat, per hi ha els seus fitxers de
configuraci d'una installaci anterior).
Aquesta utilitat ens pot ajudar a saber perqu un paquet no s'ha installat correctament quan tenim algun problema (cosa
que no acostuma a passar).

Departament dInformtica
Generalitat de Catalunya
Departament dEducaci

DAMIX M1 UF2

En el grup d'eines dpkg-alguna_cosa s'explicar dpkg-reconfigure per la seva gran utilitat. dpkg-reconfigure permet
tornar a configurar un paquet que tinguem installat. Aix provocar que tornin a aparixer els dilegs de configuraci
que van aparixer al moment d'installar-lo (i potser alguns ms) i ens permetr canviar les opcions que vam triar.
Encara que en la installaci d'un paquet no hagussim de prendre decisions, la simple crida a dpkg-reconfigure de
vegades arregla algun problema amb algun paquet concret.
Per exemple, per tornar a configurar els idiomes suportats pel sistema o l'entorn grfic farem, respectivament:
dpkg-reconfigure locales o dpkg-reconfigure xserver-xorg

Altres utilitats de gesti de paquets


Si donem un cop d'ull a la secci admin del synaptic podem comprovar la gran quantitat de paquets disponibles
relacionats amb la gesti dels paquets de Debian. Entre ells hi trobem:
apt-file: permet fer cerques de manera similar a l'apt-cache, per es pot cercar a quin paquet pertany un determinat
fitxer o la llista de fitxers que installa un paquet sense necessitat de descarregar-lo.
Exercicis:
9.

Utilitzant les eines apt, cerca un emulador del MSDOS i installa'l. Quines instruccions has utilitzat? Qu has
trobat?

Installaci d'un nou nucli


Els paquets de nucli tenen un funcionament una mica diferent que la resta de paquets: cadascuna de les versions del
nucli que tenim disponible es troba a un paquet diferent, de manera que s possible tenir-ne ms d'un installat. Aix t
dues funcions:

Arrencar al sistema amb un nucli o un altre depenent de qu vulguem fer. Per exemple, podria sser que un
nucli ms nou ens reconegus un determinat maquinari, per que normalment n'arranqussim un una mica ms
antic perqu s ms estable.

Assegurar-se que una versi nova del nucli funciona abans d'esborrar l'antiga. Aix, installarem la versi nova
i quan reinicissim el sistema el seleccionarem. Si tot funciona b, podrem procedir a la desinstallaci del
nucli anterior.

En el cas de tenir ms d'un nucli installat, ens apareixeran tots com a opcions diferents en el men d'arrencada del grub.
De vegades, una actualitzaci del nucli noms consisteix en una actualitzaci de seguretat, per la versi del nucli
segueix essent la mateixa. En aquest cas, l'actualitzaci funcionaria com la de qualsevol altre paquet: la versi nova
substituiria a l'existent.

Dipsits especials
A part dels dipsits oficials de Debian i dels que puguem trobar de terceres parts, Debian mant alguns dipsits que
contenen paquets especials en algun sentit.

El dipsit security
Aquest dipsit cont les actualitzacions de seguretat per a alguna de les distribucions oficials. Per exemple, la lnia
segent ens habilita el dipsit de seguretat per a la versi jessie:
deb http://security.debian.org/ jessie/updates main

Aquesta lnia apareix sempre desprs de la installaci, per pot aparixer comentada si durant la installaci no s'ha
configurat cap interfcie de xarxa.

El dipsit proposed-updates
La versi estable de Debian noms rep actualitzacions de seguretat i algunes actualitzacions que arreglen errors greus.
Per aquestes ltimes, per tal de garantir l'estabilitat de la distribuci, abans de passar als dipsits d'estable, s'estan un
temps al dipsit de proposed-updates. Resumint, el dipsit proposed-updates cont totes les actualitzacions que hi haur

Departament dInformtica
Generalitat de Catalunya
Departament dEducaci

DAMIX M1 UF2

en el segent llanament estable, abans que surti. Per exemple, si el llanament estable es troba a la versi 6.0.1, a
proposed-updates aniran apareixent les actualitzacions previstes pel llanament 6.0.2.
Si volem obtenir aquestes actualitzacions abans, ho podem fer afegir la segent lnia al fitxer sources.list.
deb http://ftp.rediris.es/debian/ jessie-proposed-updates main

El dipsit updates
Hi ha actualitzacions que encara que no siguin de seguretat, tenen una certa urgncia, per exemple les actualitzacions
dels filtres d'spam o dels antivirus, o qualsevol altre paquet que s'hagi d'actualitzar peridicament. A ms, hi ha errors
greus que es poden produir amb els llanaments peridics, i que cal corregir. Totes aquestes actualitzacions es
proveeixen a travs del dipsit updates.
La lnia per utilitzar updates ser similar a aquesta:
deb http://ftp.es.debian.org/debian jessie-updates main

El dipsit backports
Suposem que estem utilitzant la versi estable de Debian, per volem versions ms noves que les que hi ha a estable per
a alguns dels programes ms importants.
A backports hi trobarem alguns paquets de versions de testing, compilats de manera que funcionin a la distribuci
estable sense necessitar incorporar paquets de testing. Es recomana installar de backports noms aquells programes que
vulguem tenir ms actualitzats en comptes d'actualitzar tot el que sigui possible.
Per utilitzar backports necessitarem la segent lnia:
deb http://http.debian.net/debian wheezy-backports main

Per defecte, els paquets de backports vnen desactivats, de manera que no s'installaran al fer una actualitzaci. Per
installar un paquet de backports ho farem aix:
apt-get -t wheezy-backports install package

Distribucions de Debian
Hi ha tres distribucions majors de Debian: l'estable (stable), la de test (testing) i la inestable (unstable). La distribuci
testing es pot trobar de vegades congelada. A ms, hi ha la distribuci oldstable, que s la que era estable abans de
l'estable actual, i l'experimental.
La distribuci experimental s'utilitza per paquets que encara s'estan desenvolupant i amb un alt risc de trencar el
sistema. L'utilitzen desenvolupadors a qui els agrada d'estudiar i provar el programari ms nou. Els usuaris no haurien
d'utilitzar paquets d'aqu, ats que poden posar en perill el sistema fins i tot en mans de la gent ms experimentada.
Els noms com squeeze, wheezy, jessie, etc. sn noms noms que reben les distribucions quan estan en desenvolupament
per tal de facilitar la configuraci dels servidors que contenen l'arxiu de Debian i la del APT. Actualment, la distribuci
estable s wheezy, i la distribuci de test s jessie. La distribuci inestable sempre rep del nom sid.
La distribuci inestable s el lloc on la major part dels paquets es carreguen inicialment. Abans que un paquet
d'inestable pugui formar part d'un llanament, ha de passar obligatriament per testing.
Per tal que un paquet d'inestable passi a testing ha de complir una srie de requisits: han d'estar en sincronia a totes les
arquitectures pels quals s'hagi compilat, no poden tenir dependncies que el facin no installables, i han de tenir menys
errors crtics que la versi del paquet que estigui actualment a testing. Un paquet que ha passat un cert temps a inestable
i compleix aquestes condicions, passa automticament a testing.
Quan la distribuci testing s prou madura, s'inicia un procs de congelaci (freeze). Els temps de propagaci
d'inestable cap a testing augmenten per assegurar tan com sigui possible que no apareguin nous errors a testing. Al cap
d'un temps la distribuci es considera realment congelada, cosa que significa que cap paquet passar des d'inestable tret
que resolgui errors crtics. Quan la quantitat d'errors a testing s prou baix, la distribuci testing es converteix en la nova
estable, i l'estable en l'oldstable.

Departament dInformtica
Generalitat de Catalunya
Departament dEducaci

DAMIX M1 UF2

En general, per un servidor la distribuci ms convenient ser l'estable, perqu s la que menys mal de caps donar a
l'administrador. Per un usuari una mica experimentat, la distribuci testing pot resultar ms atractiva.
s possible actualitzar, per exemple, de la distribuci estable a la distribuci testing, per cal tenir en compte que tornar
enrere no s possible.

Compilaci de paquets en codi font


Imaginem que volem installar un programa que no s a la distribuci, o que la versi que tenim s massa antiga per les
nostres necessitats. Una possibilitat s configurar el dipsit de backports o de testing i installar la versi d'all. D'altres
vegades, per, aix no s possible: potser el nostre paquet no s a backports, i la versi de testing requereix
l'actualitzaci de molts altres paquets i no volem posar l'estabilitat del sistema en joc. D'altres vegades el programa ni
tan sols ha estat empaquetat per a Debian, per algun problema concret amb aquest paquet (termes de llicncia,
compatibilitats, problemes de seguretat...), o perqu cap desenvolupador de la distribuci li ha dedicat el temps
necessari.
Aleshores, haurem d'obtenir el programa directament dels seus desenvolupadors i installar-lo a m al nostre sistema.
Alguns programes venen amb installadors especfics, cosa molt habitual en programes no lliures, com el sistema gestor
de bases de dades Oracle, o els drivers del fabricant per a targetes grfiques Nvidia (que tamb estan empaquetats a la
secci non-free Debian). En aquests casos caldr executar l'installador, que potser ens alertar de la necessitat
d'installar algunes llibreries.
Altres vegades el programa simplement no necessita installaci: ve en format binari i s capa de localitzar directament
les llibreries que necessita. s el cas, per exemple, de l'entorn de desenvolupament integrat Eclipse (que tamb s a la
distribuci).
En molts casos, per, no existeix un installador especfic o un binari compatible: la diversitat de distribucions i versions
del nucli disponibles ho dificulten molt. En aquests casos compilarem directament el codi font del programa per al
nostre sistema. Tot i que les instruccions de compilaci i installaci poden variar molt de programa en programa, la
major part d'ells segueixen un sistema basat en les GNU autotools.
Per veure els passos de compilaci i installaci d'un paquet a partir de les seves fonts, ho farem amb un exemple:
obtindrem una versi actualitzada del programa aMSN, que permet connectar-se des de GNU/Linux a la xarxa
Messenger de Microsoft. Aquest programa s a la distribuci Debian, per de vegades, quan Microsoft canvia el
protocol, o afegeix noves caracterstiques al servei, pot passar que la versi estable deixi de funcionar.
El paquet de codi font del aMSN el podem obtenir de Sourceforge, un dels ms grans dipsits de programari lliure i
provedor de serveis per a desenvolupadors d'aquest tipus de programari. Baixarem un fitxer anomenat amsn-0.98.4src.tar.gz. Per descomprimir-lo, ho podem fer de forma immediata des de l'entorn grfic o amb la comanda tar xvzf
amsn-0.98.3-src.tar.gz (si el fitxer tingus la terminaci tar.bz2 utilitzarem la mateix comanda amb l'opci j en comptes
de z).
Un cop descomprimit entrem al directori i executem ./configure. Aix comprovar que tenim tot el que sigui necessari
per compilar aquest programa. Quan ho fem, ens diu que:
checking tcl build dir... configure: error: Unable to find Tcl directory or Tcl package is not tcldev

Com que es queixa que ens falta la llibreria tcl-dev, com a root executarem apt-get install tcl-dev, i desprs tornarem a
executar (altre cop com a usuari sense privilegis), el ./configure. Els paquets -dev inclouen les capaleres necessries per
tal que un programa pugui enllaar-se amb unes llibreries.
Seguim resolent els problemes que ens va donant el configure: tk-dev, libpng-dev i libjpeg-dev.
Quan el configure ja no ens dna cap ms error, podem procedir a la compilaci del programa prpiament dita. Aix ho
fem amb l'ordre make. L'ordre make llegeix un fitxer de configuraci anomenat Makefile, que inclou les instruccions
necessries per a compilar el programa. Si no hi ha cap error en la compilaci, ja disposarem dels fitxers executables del
programa. Llavors, si volem installar aquests fitxers al sistema per tal que qualsevol usuari els pugui utilitzar, i sense
haver d'indicar-ne la ruta, executarem make install com a root. Un altre cop, en el fitxer Makefile hi haur les
instruccions necessries per installar el programa, que normalment se situar a directoris com /usr/local/bin (als
directoris local noms s'hi posen els programes que es compilen a m, de manera que no puguin causar conflictes amb
els programes precompilats inclosos a la distribuci).

10

Departament dInformtica
Generalitat de Catalunya
Departament dEducaci

DAMIX M1 UF2

Exercicis:
10. En aquests moments hi ha pocs paquets a backports, perqu el llanament d'squeeze s molt recent i el seu
programari modern. Per provar el dipsit, installa la versi del drupal6 inclosa a backports.
Un cas habitual s installar el nucli Linux de backports, cosa que ens permetr habitualment una millor
detecci del maquinari en cas de problemes. Ara mateix, per, el nucli de backports t la mateixa versi que el
d'squeeze.
11. Visita la pgina sourceforge.net i cerca algun programa que t'interessi que pugui funcionar en GNU/Linux.
Baixa el seu codi font i intenta compilar-lo.
Exercicis repte
Els segents exercicis sn opcionals i sn ms complexos que els anteriors. Si tens curiositat per saber com es
desenvolupa un programa en C en el mn del programari lliure o com es creen els paquets de Debian, aquests exercicis
sn un bon punt de partida.
12. L'objectiu d'aquest exercici ser crear un paquet de codi font (.tar.gz) per a redistribuir un programa que hem
fet. Veurem com es crea el fitxer configure i el fitxer Makefile per tal que qualsevol persona pugui compilar el
nostre programa fcilment.
Ves a http://www.gnu.org/software/hello/manual/automake/index.html i segueix les instruccions que trobars a
l'apartat Hello World (http://www.gnu.org/software/hello/manual/automake/Hello-World.html).
Si tot va correctament, al finalitzar aquest exercici haurs d'haver obtingut un fitxer amhello-1.0.tar.gz que es
podr compilar simplement descomprimint-lo i executant ./configure seguit de make.
13. Encara en vols ms? El segent repte s crear un paquet de Debian amb el nostre programa, per a poder
installar-lo a la nostra distribuci directament amb un simple dpkg -i (per fer-ho amb apt-get install caldria
posar-lo a un dipsit de Debian o crear-ne un de propi).
s una bona idea que facis aquest exercici en un directori diferent que l'anterior, i que hi copis el fitxer tar.gz
obtingut. Aix t'assegures que no perds el programa original si tot va malament.
Per fer el paquet, haurs de seguir les instruccions que hi ha a la Guia del Nou Desenvolupador de Debian,
http://www.debian.org/doc/maint-guide/index.en.html, molt especialment els apartats 2 First steps i 6 Building
the package.
Si aconsegueixes superar el repte, tindrs un fitxer amhello_1.0-1_amd64.deb (o amhello_1.0-1_i386.deb) que
ser installable via dpkg -i amhello_1.0-1_amd64.deb. Un cop fet aix, veurs que es pot executar el programa
hello directament per qualsevol usuari, i si obres el synaptic, veurs el nostre paquet amhello!
Si has superat aquests dos reptes i encara tens ganes de seguir endavant, hi ha uns quants llocs per on podries anar:

Fer que el paquet creat compleixi les directrius de Debian per a sser distribut. En particular, fer que sigui
lintian-clean, s a dir, que desprs de passar el programa lintian pel teu paquet et digui que tot s correcte.

Compilar el paquet per a qu funciona a la distribuci unstable, on es posen tots els paquets nous. Per aix
hauries de llegir atentament la Developer's Reference de Debian.

Fer aquest procs amb un programa real. Sigui un programa que has fet tu, o un que has obtingut per Internet,
el procs per a fer el paquet font i/o el paquet de Debian es pot complicar bastant ms...

En comptes de crear un paquet de Debian nou, agafar-ne un d'existent, actualitzar el programa a l'ltima versi
(o aplicar-hi qualsevol altre canvi) i fer la segent versi del paquet de Debian.

Si has aconseguit fer alguna d'aquestes ltimes quatre tasques, ja ests preparat per a convertir-te en un mantenidor de
paquets de Debian!

11

You might also like