Diferencia entre revisiones de «Instal·lar en Liux»

De Jose Castillo Aliaga
Ir a la navegación Ir a la búsqueda
(Página blanqueada)
 
(No se muestran 2 ediciones intermedias del mismo usuario)
Línea 1: Línea 1:
=Repositoris o Fonts de programari=


Els [http://ca.wikipedia.org/wiki/Font_de_programari repositoris] o '''fonts de programari''' són espais centralitzats on s'emmagatzema i es mantenen paquets de programari , habitualment en bases de dades o arxius informàtics.
Les fonts de programari s'empren de forma intensiva en moltes distribucions del GNU/Linux, emmagatzemant paquets de programari disponibles per a la seva instal·lació mitjançant un gestor de paquets. Per exemple, moltes distribucions GNU/Linux utilitzen Advanced Packaging Tool (APT) o yum (yum).
==Fitxer sources.list==
Els repositoris es troben al fitxer de configuració:
'''[[/etc/apt/sources.list]]'''
Un exemple del contingut d'aquest fitxer pot ser:
#deb cdrom:[Ubuntu 8.04 _Hardy Heron_ - Release i386 (20080423)]/ hardy main restricted
# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://ch.archive.ubuntu.com/ubuntu/ hardy main restricted
deb-src http://ch.archive.ubuntu.com/ubuntu/ hardy main restricted
## Major bug fix updates produced after the final release of the
## distribution.
deb http://ch.archive.ubuntu.com/ubuntu/ hardy-updates main restricted
deb-src http://ch.archive.ubuntu.com/ubuntu/ hardy-updates main restricted
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## universe WILL NOT receive any review or updates from the Ubuntu security
## team.
deb http://ch.archive.ubuntu.com/ubuntu/ hardy universe
deb-src http://ch.archive.ubuntu.com/ubuntu/ hardy universe
deb http://ch.archive.ubuntu.com/ubuntu/ hardy-updates universe
deb-src http://ch.archive.ubuntu.com/ubuntu/ hardy-updates universe
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://ch.archive.ubuntu.com/ubuntu/ hardy multiverse
deb-src http://ch.archive.ubuntu.com/ubuntu/ hardy multiverse
deb http://ch.archive.ubuntu.com/ubuntu/ hardy-updates multiverse
deb-src http://ch.archive.ubuntu.com/ubuntu/ hardy-updates multiverse 
## Uncomment the following two lines to add software from the 'backports'
## repository.
## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
# deb http://ch.archive.ubuntu.com/ubuntu/ hardy-backports main restricted universe multiverse
# deb-src http://ch.archive.ubuntu.com/ubuntu/ hardy-backports main restricted universe multiverse
## Uncomment the following two lines to add software from Canonical's
## 'partner' repository. This software is not part of Ubuntu, but is
## offered by Canonical and the respective vendors as a service to Ubuntu
## users.
# deb http://archive.canonical.com/ubuntu hardy partner
# deb-src http://archive.canonical.com/ubuntu hardy partner 
deb http://security.ubuntu.com/ubuntu hardy-security main restricted
deb-src http://security.ubuntu.com/ubuntu hardy-security main restricted
deb http://security.ubuntu.com/ubuntu hardy-security universe
deb-src http://security.ubuntu.com/ubuntu hardy-security universe
deb http://security.ubuntu.com/ubuntu hardy-security multiverse
deb-src http://security.ubuntu.com/ubuntu hardy-security multiverse
Aquest exemple fa referència a la configuració típica en un sistema [[Ubuntu]]
=== Afegir un repositori al fitxer sources.list ===
Utilitzeu el vostre editor de text preferit per modificar el fitxer /etc/apt/sources.list.
$ sudo nano /etc/apt/sources.list
Al final del fitxer afegiu la línia de repositori. Per exemple si voleu afegir el repositori de spotify :
deb http://repository.spotify.com stable non-free
Podeu sortir i guardar el fitxer amb Ctrl+k+x. Normalment per aplicar el canvis i que el nou repositori es pugui utilitzar heu d'executar:
$ sudo apt-get update
    NOTA: Com alternativa també pode utilitzar aptitude
La línia que cal afegir us serà proporcionada per alguna guía o per mantenidor del repositori al que us voleu connectar
Podeu afegir repositoris des de l'entorn gràfic utilitzant [[Synaptic]].
===Com afegir una clau===
Per instal·lar una clau primer s'ha de descarregar d'Internet. Normalment us la proporcionarà el proveidor del repositori. Cal seguir els següents passos:
'''Descarregar la clau'''
$ wget http://www.array.org/ubuntu/array-apt-key.asc
''NOTA'': és pot utilitzar [[wget]] o es pot descarregar la clau des de qualsevol navegador web.
'''Instal·lació de la clau''':
$ [[sudo]] [[apt-key]] add array-apt-key.asc
I finalment cal actualitzar gestor de paquets:
$ sudo [[apt-get update]]
Per afegir una clau directament des de un repositori públic de claus:
$ sudo apt-key add --keyserver keyserver.ubuntu.com --recv-keys AA1C92B0
On AA1C92B0 és l'identificador de la clau [[PGP]] o [[GPG]].
=apt=
[http://en.wikipedia.org/wiki/Apt-get Apt (Advanced Packaging Tool)] és una utilitat per a la gestió de paquets en sistemes debian GNU/Linux o derivats. Apt simplifica molt la feina de l'administració de paquets en sistems 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 amb paquets rpm.
Apt és un conjunt d'eines proporcionades pel paquet apt.
'''Recursos''':
*http://www.debian.org/doc/manuals/apt-howto/ch-apt-get.en.html
==Instal·lar paquets mitjançant URLs (links/enllaços web) ==
Es pot utilitzar un codi [[HTML]] com el següent:
<a href="apt:joe">Fes clic aquí per instal·lar joe</a>
Si l'usuari fa click s'executarà l'aplicació que tinguem indicada per defecte com a instal·lador de paquets (típicament Synaptic)
Hi ha pàgines web com:
*http://appnr.com/
*http://www.apturl.net/
Que permeten cercar i instal·lar paquets. El suport esta activat per defecte a Firefox i funciona gràcies al paquet:
[[apturl]]
'''Recursos''':
*https://help.ubuntu.com/community/AptURL
==apt-get==
Segons el manual:
$ [[man]] apt-get
  apt-get - APT package handling utility -- command-line interface
És l'eina que permet gestionar paquets.
La sintaxi és
        apt-get [-sqdyfmubV] [-o= config_string ] [-c= config_file ]
                [-t= { target_release_name | target_release_number_expression | target_release_codename }] {update | upgrade | dselect-upgrade |
                dist-upgrade | install pkg [ { =pkg_version_number | /target_release_name | /target_release_codename } ] ...  | remove pkg...  |
                purge pkg...  | source pkg [ { =pkg_version_number | /target_release_name | /target_release_codename } ] ...  | build-dep pkg...  | 
              check
              | clean | autoclean | autoremove | {-v | --version} | {-h | --help}}
Manual:
*[http://www.die.net/doc/linux/man/man8/apt-get.8.html man apt-get]
===Opció update===
Per actualitzar la llista de paquets coneguda pel nostre sistema, hem d'executar:
$ sudo [[apt-get update]]
apt-get treballa amb una base de dades de paquets. Aquesta base de dades és local i també es coneguda com a package cache (podeu gestionar aquesta cache amb l'ordre [[apt-cache]]). Si volem sincronitzar aquesta base de dades amb possibles canvis en els dipòsits d'Internet cal utilitzar l'ordre apt-get update.
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 actualitzacions.
===Opció install===
Per instal·lar un paquet nou:
$ [[sudo]] [[apt-get install]] nom_del_paquet
Exemple
$ sudo apt-get install samba
Si el paquet no té depèndencies s'instal·la directament sense demanar la confirmació de l'usuari. La línia més important sempre és el resum:
0 actualitzats, 1 nous a instal·lar, 0 a eliminar i 2 no actualitzats.
Sempre cal comprovar que la instal·lació d'un paquet no es incompatible amb un o altres paquets. Si fos així, el resum indicaría quins paquets s'eliminen (son incompatibles).
Com totes les comandes d'apt-get que impliquen canvis en el sistema podem fer una simulació abans d'executar la comanda realment:
$ sudo apt-get --simulate install samba
El mode --simulate pot ser útil per:
*Conèixer els paquets suggerits i els paquets recomanats. Els paquets suggerits són programes o paquets dels quals l'aplicació a instal·lar no depèn però que si pot ser una bona idea tenir instal·lat com a complement del paquet a instal·lar.
Altres opcions útils poden ser:
*-d Només descarregar el paquet.
*-f Força la instal·lació encara que falli el test d'integritat.
*-y Respon si a totes les preguntes.
====Missatges de sortida====
El paquet ja esta instal·lat i no hi han actualitzacions:
$ [[sudo]] [[apt-get install]] k3b
S'està llegint la llista de paquets... Fet
S'està construint l'arbre de dependències     
Reading state information... Fet         
k3b ja es troba en la versió més recent.
0 actualitzats, 0 nous a instal·lar, 0 a eliminar i 2 no actualitzats.
===Opció remove===
Per eliminar un paquet del nostre sistema utilitzem:
$ [[sudo]] [[apt-get remove]] nom_del_paquet
'''Exemple''':
$ sudo apt-get remove samba
Si el paquet no té dependencies es borrarà directament sense demanar confirmació a l'usuari. En el cas que hi haguin dependències:
$ sudo apt-get remove k3b
S'està llegint la llista de paquets... Fet
S'està construint l'arbre de dependències     
Reading state information... Fet         
The following packages were automatically installed and are no longer required:
  k3b-i18n k3b
Use 'apt-get autoremove' to remove them.
S'ELIMINARAN els següents paquets:
  k3b k3b-i18n
0 actualitzats, 0 nous a instal·lar, 2 a eliminar i 2 no actualitzats.
Es necessita obtenir 0B d'arxius.
Després de desempaquetar s'alliberaran 23,9MB d'espai en disc.
Voleu continuar [S/n]?
Es demana la confimació de l'usuari. Com podeu veure a més de k3b també s'elimina k3b-i18n. Confirmem...
(S'està llegint la base de dades ... hi ha 159684 fitxers i directoris instal·lats actualment.)
S'està desinstal·lant k3b-i18n ...
S'està desinstal·lant k3b ...
Cal tenir en compte que al desinstal·lar un paquet no s'esborren els fitxers de configuració d'aquest paquet (carpetes /etc/nom_del_paquet o altres fitxers d econfiguració). Això te l'avantatge de no perdre les configuracions de l'aplicació o paquet a desinstalar. Si tornem a instal·lar el paquet desinstal·lat, veurem que es mantenen totes les nostres configuracions. Ara bé, a vegades volem borrar-ho tot absolutament (per alliberar espai o per fer una reinstal·lació completa quan teniem errors amb el paquet). Cal utilitzar el paràmetre --purge.
$ sudo apt-get --purge remove mysql-server-5.0
L'exemple anterior pot ser un cas per voler utilitzar purge. Podem voler reinstal·lar Mysql per que ens hem oblidat del password de root...
===Opció autoremove===
Borra paquets del sistema que ja no s'utilitzen.
$ [[sudo]] [[apt-get autoremove]]
L'opció autoremove esborra tots els paquets que es van instal·lar de forma automàtica com a dependències d'un altre paquet i que actualment ja no es necessiten (p.ex. per què el paquet es va desinstal·lar). Un exemple:
===Opció upgrade===
Per actualitzar el nostre sistema (tots els paquets que tenim instal·lats):
$ sudo [[apt-get upgrade]]
No s'ha de confondre amb la opció update. Update no modifica cap paquet del nostre sistema, només es baixa les capçaleres dels paquets (metainformació del paquets) per tal de comprovar si les versions dels paquets que tenim instal·lats corresponen amb les últimes versions del repositori.
Igual que amb els paràmetres install i remove, podem fer una simulació:
$ sudo apt-get --simulate upgrade
Aquesta comanda no executa cap canvi en els paquets del nostre sistema, simplement ens informa de com aniria l'execució de la comanda upgrade.
===Opció dist-upgrade===
Per actualitzar el sistema a una versió nova (release nova) del sistema. Ubuntu utilitza l'aplicació [[update-manager]].
També serveix per actualitzar paquets que es troben marcats com a mantinguts:
$ sudo [[apt-get dist-upgrade]]
===Opció clean===
Podem alliberar espai en el nostre disc durs, executant:
$ [[df]] -h
S. fitxers            Tamany En ús Lliure %Ús Muntat en
/dev/sda2            153G  80G  66G  55% /
....
$ [[sudo]] [[apt-get clean]]
Password:
$ df -h
S. fitxers            Tamany En ús Lliure %Ús Muntat en
/dev/sda2            153G  79G  67G  55% /
......................
Com podeu veure es pot arribar a alliberar força espai. '''apt-get clean''' elimina les capçaleres descarregades dels repositoris d'Internet del nostre disc dur local. L'únic inconvenient és que aquesta informació potser l'haurem de tornar a descarregar a posteriori d'Internet.
Consulteu també hi ha l'opció [[#Opció autoclean]].
===Opció autoclean===
Borra només aquells paquets que no es necessiten per a res.
$ [[sudo]] [[apt-get autoclean]]
===opció source===
Per tal que funcioni source, cal que tingueu línies específiques deb-src al fitxer [[/etc/apt/sources.list]]
Permet descarregar el codi font d'un paquet. Per exemple per obtenir el codi font d'eines bàsiques del sistema com [[ls]] o [[cp]] podeu obtenir el codi font del paquet [[coreutils]]:
$ [[sudo]] [[apt-get source]] coreutils
==apt-cache==
Segons el manual:
$ [[man]] apt-cache
que podeu consultar a Internet a:
[http://www.die.net/doc/linux/man/man8/apt-cache.8.html man apt-cache]
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).
===Opció search===
Per buscar paquets als quals la seva descripció contingui la paraula "word":
$ apt-cache search word
===Com conèixer el path o directori en que es troba un paquet. Opció showsrc===
Mostra la informació dels paquets font.
Es pot utilitzar per saber quina és l'adreça dins dels repositoris:
$ apt-cache showsrc ifupdown | grep Directory
Directory: pool/main/i/ifupdown
L'adreça URL del fitxer al repositori d'Ubuntu (mirror espanyol) és http://es.archive.ubuntu.com/ubuntu/pool/main/i/ifupdown
===Opció depends===
Per mostrar les dependències d'un paquet:
$ apt-cache depends nom_del_paquet
'''Exemple''':
$ apt-cache depends ifupdown
ifupdown
  Depén: net-tools
  Depén: libc6
  |Depén: debconf
  Depén: <debconf-2.0>
    cdebconf
    debconf
  Depén: lsb-base
  Suggereix: iproute
  |Suggereix: dhcp3-client
  Suggereix: dhcp-client
    dhcpcd
    pump
    udhcpc
  Suggereix: ppp
  Reemplaça: netbase
===Opció show===
Per mostrar la informació detallada d'un paquet:
$ apt-cache show nom_del_paquet
'''Exemple''':
$ apt-cache show ifupdown
Package: ifupdown
Priority: important
Section: base
Installed-Size: 248
Maintainer: Anthony Towns <ajt@debian.org>
Architecture: i386
Version: 0.6.7ubuntu7
Replaces: netbase (<< 4.00)
Depends: net-tools, libc6 (>= 2.3.4-1), debconf (>= 1.2.0) | debconf-2.0, lsb-base (>= 1.3-9ubuntu3)
Suggests: iproute, dhcp3-client | dhcp-client, ppp
Filename: pool/main/i/ifupdown/ifupdown_0.6.7ubuntu7_i386.deb
Size: 49752
MD5sum: e8ddddb4d85d24ff0dd48bf5e58388e5
SHA1: 4072c6f69221fc1a50bd95b7efca3a522c0fb9dc
SHA256: 81cf4bc3436254cf95e129cce29d160446cb74f16619af177426b65256ccbb93
Description: high level tools to configure network interfaces
  This package provides the tools ifup and ifdown which may be used to
  configure (or, respectively, deconfigure) network interfaces based on
  interface definitions in the file /etc/network/interfaces.
Bugs: mailto:ubuntu-users@lists.ubuntu.com
Origin: Ubuntu
Task: minimal
Vegeu també [[APT_i_DPKG#Mostrar_informaci.C3.B3_sobre_un_paquet|dpkg -p]]
===Opció showpkg===
Per mostrar informació detallada de les versions disponibles d'un paquet i els paquets que en depenen inversament:
$ apt-cache showpkg package
'''Exemple''':
$ apt-cache showpkg ifupdown
Package: ifupdown
Versions:
0.6.7ubuntu7 (/var/lib/apt/lists/es.archive.ubuntu.com_ubuntu_dists_edgy_main_binary-i386_Packages)    (/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_edgy_main_binary-i386_Packages) (/var/lib/dpkg/status)
Description Language:
                File: /var/lib/apt/lists/es.archive.ubuntu.com_ubuntu_dists_edgy_main_binary-i386_Packages
                MD5: 442edbd184a6e1febc9b203604eb38f4
Reverse Depends:
  zeroconf,ifupdown
  resolvconf,ifupdown 0.6.4-4.1
  laptop-net,ifupdown
  ifupdown-scripts-zg2,ifupdown 0.6.4-4.5
  ifscheme,ifupdown 0.6.5
  ifplugd,ifupdown 0.6.4-4.2
  etherconf,ifupdown 0.6.4
  dhcpcd,ifupdown 0.6.4-4
  ubuntu-minimal,ifupdown
  netbase,ifupdown 0.6.4-4.9
  eagle-usb-utils,ifupdown
  bridge-utils,ifupdown 0.6.0
  bridge-utils,ifupdown
Dependencies:
0.6.7ubuntu7 - net-tools (0 (null)) libc6 (2 2.3.4-1) debconf (18 1.2.0) debconf-2.0 (0 (null)) lsb-base (2 1.3-9ubuntu3) iproute (0 (null)) dhcp3-client  (16 (null)) dhcp-client (0 (null)) ppp (0 (null)) netbase (3 4.00)
Provides:
0.6.7ubuntu7 -
Reverse Provides:
===Opció stats===
Amb l'opció stats podem consultar les estadístiques de la base de dades de paquets Debian (aka package cache):
$ sudo apt-cache stats
Nombre total de paquets: 37499 (1500k)
  Paquets normals: 28679
  Paquets virtuals purs: 387
  Paquets virtuals únics: 2440
  Paquets virtuals mixtes: 280
  Falten: 5713
Total de versions diferents: 29713 (1664k)
Total de descripcions diferents: 29713 (713k)
Total de dependències: 190775 (5342k)
Total de relacions versió/fitxer: 31879 (510k)
Total de relacions descripció/fitxer: 29713 (475k)
Total dels mapes aportats: 5169 (103k)
Total de cadenes globals: 155 (2013)
Total de l'espai per a dependències de versió: 896k
Total de l'espai desperdiciat: 88,4k
Total de l'espai atribuït a: 9209k
===Opció pkgnames===
Mostra els noms del paquets:
$ apt-cache pkgnames
el podeu utilitzar per a
$ apt-cache pkgnames | wc -l
===Opció unmet===
L'opció unmet mostra les dependències no cumplides del sistema
$ sudo apt-cache unmet
El paquet openoffice.org-l10n-mn versió 1:3.1.1-4ubuntu1 té una dependència sense satisfer:
Suggereix: hunspell-dictionary-mn | myspell-dictionary-mn
Suggereix: openoffice.org-hyphenation-mn
Suggereix: openoffice.org2-thesaurus-mn
Suggereix: openoffice.org-help-mn
...
== apt-config ==
Mostra el fitxer de configuració:
$ sudo apt-config dump
APT "";
APT::Architecture "i386";
APT::Build-Essential "";
APT::Build-Essential:: "build-essential";
APT::Install-Recommends "1";
APT::Install-Suggests "0";
APT::Acquire "";
APT::Acquire::Translation "environment";
APT::Authentication "";
...
== apt-mark ==
Permet marcar un paquet com instal·at automàticament o no. Els paquets instal·lats automàticament són aquells que s'instal·len com a dependència d'un altre paquet tot i que no s'ha indicat explícitament que es vulgui instal·lar aquell paquet concret.
La sintaxi és::
$ sudo apt-mark [-hv] [-f=FILENAME] {markauto | unmarkauto} package...  | showauto
Podeu mostrar els paquets que són automàtics amb:
$ sudo apt-mark showauto
aisleriot
...
Per desmarcar un paquet com a marcat automàticament:
$ sudo apt-mark unmarkauto nom_paquet
Per marcar un paquet com instal·lat automàticament:
$ sudo apt-mark markauto nom_paquet
Per exemple:
$ sudo apt-mark markauto aisleroot
==apt-key==
Consulteu [[#Com afegir una clau]].
==apt-file==
És un paquet que cal instal·lar:
$ sudo apt-get install apt-file
===Com esbrinar a quin paquet pertany un fitxer===
$ apt-file search nom_fitxer
===Com llistar els contingut d'un paquet===
$ apt-file list nom_paquet
apt-file manté una base de dades amb els fitxers que contenen tots els paquets, de la mateixa manera que ho fa auto-apt i per això necessita estar actualitzada. Això s'aconsegueix executant:
$ apt-file update
==apt-src==
$ sudo apt-cache search apt-src
apt-src - manage Debian source packages
$ sudo apt-get install apt-src
Ara podem obtenir el codi font d'una paquet amb:
$ sudo apt-src install pingus
En aquest cas en estem descarregant el codi font del joc Pingus (un port del joc Lemmings).
==Fitxers de log==
===Fitxer /var/log/apt/term.log===
Aquest fitxer guarda els resultats de totes les execucions d'apt que s'han fet per la terminal
$ sudo cat /var/log/apt/term.log
==add-apt-repository==
L'ordre es proporcionada per:
$ [[dpkg]] -S /usr/bin/add-apt-repository
[[python-software-properties]]: /usr/bin/add-apt-repository
Es pot utilitzar per afegir una línia de repositori al fitxer [[/etc/apt/sources.list]], per exemple per instal·lar el repositori de [[Gosa]]:
$ [[sudo]] add-apt-repository "deb http://oss.gonicus.de/pub/gosa/debian-squeeze/ ./"
No realitza cap mena de control de si el repositori ja existeix. Si que control però que la sintaxi sigui correcte
Un exemple utilitzant [[PPA]]s:
$ sudo add-apt-repository ppa:jason-scheunemann/ppa
Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --secret-keyring /etc/apt/secring.gpg --trustdb-name /etc/apt/trustdb.gpg --keyring /etc/apt /trusted.gpg --keyserver keyserver.ubuntu.com --recv B7A54DFD57990DE60964F52D932062C9CD30EE56
gpg: requesting key CD30EE56 from hkp server keyserver.ubuntu.com
gpg: key CD30EE56: public key "Launchpad PPA for flyguy97" imported
gpg: Nombre total processat: 1
gpg:              importades: 1  (RSA: 1)
$ sudo [[apt-get update]]
=Com estar informat quant als canvis en els paquets. apt-listchanges=
Cada paquet instal·la en el seu directori de documentació (/usr/share/doc/nom_paquet) un fitxer anomenat changelog.Debian.gz el qual conté una llista dels canvis realitzats al paquet des de l'última versió. Podeu llegir aquests fitxers amb l'ajuda de zless, per exemple, però no és gaire simple que després d'una actualització s'hagin d'estar cercant aquests registres de canvis per a cadascun dels paquets actualitzats.
Hi ha una manera per automatitzar aquesta tasca mitjançant una eina que s'anomena apt-listchanges. Per a començar primer es requereix que instal·leu el paquet apt-listchanges. Durant la seva instal·lació, Debconf la configurarà. Respongueu les preguntes com desitgeu.
L'opció "Voldreu que apt executi automàticament apt-listchanges?" és realment útil perquè mostra una llista dels canvis que s'han realitzat per a cadascun dels paquets que està instal·lant apt durant una actualització i us permet analitzar-los abans de continuar. L'opció "Tindrà apt-listchanges que demanar confirmació després de mostrar els canvis?" és d'utilitat perquè us demana si desitgeu continuar l'instal·lació després de llegir la llista de canvis. Si decidiu no continuar, apt-listchanges retornarà un error i avortarà l'instal·lació.
Una vegada instal·lat apt-listchanges, tan aviat com els paquets hagin estat descarregats (o llegits des d'un CD o dic muntat) per APT, es mostraran les llistes de canvis realitzats a dits paquets abans d'instal·lar-los.
$ sudo apt-get install apt-listchanges
=dpkg=
Dpkg és l'aplicació encarregada de gestionar els paquets [[Debian]]. Dpkg és una eina de baix nivell i normalment com a usuaris utilitzarem altres eines a nivell més alt (com apt-get o aptitude) per la gestió bàsica de paquets (instal·lar, esborrar, actualitzar...).
De totes formes dpkg ens pot servir per obtenir informació del nostre sistema, tal i com podeu veure a les receptes "Com ...." de més avall.
La sintaxi és:
$ dpkg [options][action] [package-files|package-name]
Les accions de dpkg que més ens poden interessar com usuaris son les anomenades dpkg-query-actions, o accions de només consulta (no impliquen canvis al sistema):
:*'''[[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 per un paquet.
:*'''[[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 paquet desinstal·lat.
Aquestes comandes tenen la seva pròpia entrada del manual:
*[http://www.annodex.net/cgi-bin/man/man2html?dpkg-query+1 man dpkg-query]
{{nota|Per a aquestes accions no cal ser superusuari}}
Després hi altres accions que impliquen canvis en els sistema:
:*'''[[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.
{{nota| Els fitxers de configuració d'usuari (fitxers ocults a la [[HOME]] de l'usuari) sempre es mantenen i mai són modificats pels processos d'instal·lació o eliminació de paquets.}}
Les opcions més utilitzades són:
:*'''--root=dir''': permet indicar una altres sistema arrel on efectura les operacions relacionades amb dpkg. Útil en imatges o sistemes [[chroot]] o per recuperar sistemes amb [[Live-CD]]s
:*'''-B or --auto-deconfigure''': Es combina amb l'acció remove (-r). Desactiva els paquets que depenen del paquet a esborrar.
:*'''--force-things''': Opcions force
:*'''--ignore-depends=package''': ignora les dependències
:*'''--no-act''': comprova dependències i altres accions però no instal·lis o eliminis el paquet.
:*'''--recursive'''. utilitzat amb wildcards
:*'''-G''': no instal.lis el paquet si hi ha una versió més nova ja instal·lada
:*'''-E''': No instal·lis el paquet si ja està instal·lada la mateixa versió
I altres accions són més orientades a desenvolupadors:
:*'''[[dpkg -e]]''': extreu el fitxer de control amb la meta-informació del paquet.
:*'''[[dpkg -b]]''': Crea/construeix(build) un paquet Debian binari.
:*'''[[dpkg --fsys-tarfile]]''': extreure els fitxers a instal·lar per part del paquet.
L'ordre dpkg es proporcionada pel paquet del mateix nom:
$ whereis dpkg
dpkg: /usr/bin/dpkg /etc/dpkg /usr/lib/dpkg /usr/share/dpkg /usr/share/man/man1/dpkg.1.gz
$ dpkg -S /usr/bin/dpkg
'''dpkg''': /usr/bin/dpkg
Podeu consultar els fitxers proporcionats per dpkg amb la pròpia ordre dpkg:
$ dpkg -L dpkg
El fitxers més importants són els executables:
$ dpkg -L dpkg | grep bin
/usr/bin
/usr/bin/[[dpkg]]
/usr/bin/[[dpkg-deb]]
/usr/bin/[[dpkg-divert]]
/usr/bin/[[dpkg-query]]
/usr/bin/dpkg-split
/usr/bin/dpkg-statoverride
/usr/bin/dpkg-trigger
/usr/bin/[[update-alternatives]]
/usr/sbin
/usr/sbin/install-info
/sbin
/sbin/[[start-stop-daemon]]
/usr/sbin/[[update-alternatives]]
/usr/sbin/dpkg-statoverride
/usr/sbin/dpkg-divert
I els fitxers de configuració:
$ dpkg -L dpkg | grep etc
/etc
/etc/dpkg
/etc/dpkg/dpkg.cfg
/etc/dpkg/dpkg.cfg.d
/etc/alternatives
/etc/alternatives/README
/etc/cron.daily
/etc/cron.daily/dpkg
/etc/logrotate.d
/etc/logrotate.d/dpkg
Dpkg-deb ens proporciona les eines per [http://www.debian.org/doc/maint-guide/ch-build.en.html crear paquets] però aquest tema esta fora de l'àmbit d'aquest article (consulteu [[Creació de paquets Debian]]).
== dpkg-query ==
Es poden cercar quin paquet ens han proporcionat un fitxer específic:
$ dpkg-query -S '/bin/ls'
$ dpkg-query -S 'passwd*'
$ dpkg-query --search '/path/to/file'
==dpkg-reconfigure==
Permet tornar a configurar un paquet. Per exemple els locales:
$ sudo [[dpkg-reconfigure]] locales
Si l'aplicació utilitzava menús "d'entorn gràfic" [[ncurses]] de [[debconf]] aleshores es tornen a mostrar els menús de configuració.
De fet dpkg-reconfigure és una ordre proporcionada per [[debconf]]:
$ dpkg -L debconf | grep bin
/usr/sbin
/usr/sbin/dpkg-preconfigure
'''/usr/sbin/dpkg-reconfigure '''
/usr/bin
/usr/bin/debconf
/usr/bin/debconf-apt-progress
/usr/bin/debconf-communicate
/usr/bin/debconf-copydb
/usr/bin/debconf-escape
/usr/bin/debconf-set-selections
/usr/bin/debconf-show
...
La sintaxi de l'ordre és:
$ sudo dpkg-reconfigure [options] packages
On les opcions són:
:*'''-ftype, --frontend=type''': Seleccioneu el frontend a utilitzar
:*'''-pvalue, --priority=value''': Especifica el llindar mínim de prioritat. Tots les opcions de configuració igual o per sobre d'aquest llindar, seran mostrades.
:*'''--default-priority''': Utilitzar la prioritat per defecte.
:*'''-a, --all''': Configurar tots els paquets del sistema que utilitzen [[debconf]]
:*'''-u, --unseen-only''': Només mostra les qüestions que no han esta contestades prèviament.
:*''' --force''': Força un dpkg-reconfigure inclús si el paquet està en un estat inconsistent o trencat.
:*'''--no-reload''': No torna a carregar les plantilles.
:*'''-h, --help''': Mostra com funciona l'ordre.
El frontend per defecte es pot configurar amb:
$ sudo dpkg-reconfigure [[debconf]]
[[Fitxer:debconf-reconfigure.png|center|800px]]
[[Fitxer:debconf-reconfigure1.png|center|800px]]
La llista de prioritats possibles es pot consultar al manual de [[debconf]]:
$ man debconf
Consulteu:
*[[Creació_de_paquets_Debian#Prioritats_de_debconf]]
*[[Creació_de_paquets_Debian#Interf.C3.ADcies_de_debconf]]
===dpkg --configure===
No és el mateix que l'apartat anterior ([[dpkg-reconfigure]]). Només s'aplica quan un paquet ha quedat pendent de configurar durant la instal·lació.
Es poden buscar paquets d'aquest tipus amb l'opció auditar [[dpkg -C]]:
$ sudo dpkg -C
Els paquets següents només estan configurats a mitges, probablement
a causa de problemes en la configuració inicial.  S'ha de reintentar
la configuració amb dpkg --configure <paquet> o l'opció configurar
en el menú de dselect:
  linux-image-2.6.31.6-custom Linux kernel binary image for version 2.6.31.6-cus
$ sudo dpkg --configure linux-image-2.6.31.6-custom
S'està configurant linux-image-2.6.31.6-custom (2.6.31.6-custom-10.00.Custom) ...
Running depmod.
...
== dpkg-trigger ==
$ [[man]] dpkg-trigger
dpkg-trigger(1)                                                                  dpkg suite                                                                  dpkg-trigger(1)
NAME
      dpkg-trigger - a package trigger utility
SYNOPSIS
      dpkg-trigger [option...] trigger-name
      dpkg-trigger [option...] command
DESCRIPTION
      dpkg-trigger is a tool to explicitly activate triggers and check for its support on the running dpkg.
      This  can  be  used by maintainer scripts in complex and conditional situations where the file triggers, or the declarative activate triggers control file directive,
      are insufficiently rich. It can also be used for testing and by system administrators (but note that the triggers won't actually be run by dpkg-trigger).
      Unrecognised trigger name syntaxes are an error for dpkg-trigger.
COMMANDS
      --check-supported
              Check if the running dpkg supports triggers (usually called from a postinst). Will exit 0 if a triggers-capable dpkg has run, or 1 with an  error  message  to
              stderr if not. Normally, however, it is better just to activate the desired trigger with dpkg-trigger.
      -h, --help
              Show the usage message and exit.
      --version
              Show the version and exit.
OPTIONS
      --admindir=dir
              Change the location of the dpkg database. The default location is /var/lib/dpkg.
      --by-package=package
              Override  trigger  awaiter  (normally  set  by dpkg through the DPKG_MAINTSCRIPT_PACKAGE environment variable of the maintainer scripts, naming the package to
              which the script belongs, and this will be used by default).
      --no-await
              This option arranges that the calling package T (if any) need not await the processing of this trigger; the interested package(s) I, will not be added to  T's
              trigger processing awaited list and T's status is unchanged.  T may be considered installed even though I may not yet have processed the trigger.
      --no-act
              Just test, do not actually change anything.
SEE ALSO
      dpkg(1), deb-triggers(5), /usr/share/doc/dpkg-dev/triggers.txt.gz.
Debian Project                                                                  2009-03-15                                                                  dpkg-trigger(1)
Vegeu també:
:*[[Creació_de_paquets_Debian#Triggers.2C_activadors.2C_disparadors]]
:*[[dpkg]]
:*[[deb-triggers]]
:*[[/usr/share/doc/dpkg-dev/triggers.txt.gz]] ([[/usr/share/doc/dpkg-dev/triggers.txt]])
==Estat dels paquets==
Els paquets poden estar en algun dels següents estats:
:*'''installed''': el paquet s'ha desempaquetat i instal·lat correctament
:*'''half-installed''': la instal·lació del paquet s'ha començat però no s'ha acabat per algun motiu/error.
:*'''not-installed''': el paquet no esta instal·lat al sistema
:*'''unpacked''': el paquet esta desempaquetat per no configurat.
:*'''half-configured''': el paquet s'ha desempaquetat i la configuració s'ha iniciat però no s'ha acabat per algun motiu/error.
:*'''config-files''': només queden al sistema els fitxers de configuració (remove sense purge)
:*'''triggers-awaited''': pendent d'un trigger (gallet)
:*'''triggers-pending''': El paquet a estat triggered.
L'estat es pot consultar amb l'ordre [[dpkg -l]]:
$  dpkg -l | more
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Nom                                        Versió                                    Descripció
+++-==========================================-==========================================-============================================
ii  acl                                        2.2.47-2                                  Access control list utilities
ii  acpi-support                              0.129                                      scripts for handling many ACPI events
ii  acpid                                      1.0.6-9ubuntu8                            Utilities for using ACPI power management
...
L'estat correspon al segon caràcter de la primera columna. Consulteu:
[[Dpkg#Interpretaci.C3.B3_dels_resultats_de_les_comandes_de_query]]
Consulteu també la llegenda del menú Ajuda de l'aplicació [[Synaptic]].
==Estat de selecció dels paquets==
:*'''install (i)''': El paquet esta seleccionat per ser instal·lat.
:*'''deinstall(r)''': Els paquet esta seleccionat per ser desinstal·lat
:*'''purge (p)''': el paquet esta instal·lat per ser purgat (desinstal·la i esborra els fitxers de configuració)
:*'''Desconegut (u)''': No es coneix l'estat de selecció
Consulteu [[dselect]].
==Indicadors dels paquets (error estatus)==
*'''hold (h)''': Els paquets marcats amb hold no son controlats per dpkg (excepte que s'utilitzi --force-hold).
*'''reinst-require (r)''': El paquet esta trencat i necessita ser reinstal·lat
*'''None''': no apareix cap caràcter
*'''Both problems (x) ''': els dos problemes anteriors
==Procés d'instal·lació d'un paquet==
#S'extreu el fitxer de control del nou paquet.
#Si ja hi ha una versió del paquet a instal·lar en el sistema (actualització) s'executa l'script prerm si existeix.
#S'executa l'script preinst si el paquet proveix d'aquest script.
#Es desempaqueta els nous paquets i al mateix temps és fa una copia dels antics per si quelcom no funciona correctament i es voles restaurar.
#Si ja hi ha una versió del paquet a instal·lar en el sistema (actualització) s'executa l'script postrm si existeix.
#Es configura el paquet (--configure). La configuració del paquet suposa:
##Desempaquetar els fitxers de configuració i al mateix temps fer una copia de seguretat dels antics
##Executar l'script postinst si existeix.
==Procés d'eliminació d'un paquet==
#S'executa l'script prerm.
#S'eliminen els fitxers instal·lats (si am és hi ha la opció --purge s'eliminen els fitxers de configuració també)
#S'executa l'script postrm.
==Interpretació dels resultats de les comandes de query==
La comanda [[dpkg -l]] ens proporciona una sortida composta per quatre columnes:
:*'''Estatus''': estat del paquet
:*'''Name''': nom del paquet
:*'''Version''': versió del paquet.
:*'''Description''': descripció del paquet.
L'estatus té tres columnes formades cadascuna per un digit:
*'''[[Dpkg#Estat_de_selecci.C3.B3_dels_paquets|Selection status]]'''. Els possibles valors són:
**Unknown (u)
**Install (i)
**Remove (r)
**Purge (p)
*'''[[Dpkg#Estat_dels_paquets|Status]]'''. Els possibles valors són:
**Not installed (n)
**Installed (i)
**Config-files (c)
**Unpacked (u)
**Failed-config (f)
**Half-installed (h)
*'''[[APT_i_DPKG#Indicadors_dels_paquets_.28error_estatus.29| Error status]]'''. Els possibles valors són:
**None
**Hold (h)
**Reinstallation required (r)
**Both problems (x)
La columna error esta buida si no hi ha cap error. Un exemple de línia pot ser:
|/ Nom                        Versió          Descripció
+++-==========================-=================-============================================
ii  gnome-about                2.16.1-0ubuntu1  The GNOME about box
Que ens indica que el paquet gnome-about esta instal·lat sense errors en la seva versió 2.16.1-0ubuntu1.
==Mostrar informació sobre un paquet==
$ dpkg -p upstart
Package: upstart
Priority: required
Section: base
Installed-Size: 352
Maintainer: Scott James Remnant <scott@ubuntu.com>
Architecture: i386
Version: 0.3.9-8
Replaces: sysvinit
Pre-Depends: libc6 (>= 2.7), sysvinit-utils
Recommends: upstart-compat-sysv, upstart-logd, startup-tasks, system-services
Conflicts: sysvinit
Size: 173672
Description: event-based init daemon
  upstart is a replacement for the /sbin/init daemon which handles
  starting of tasks and services during boot, stopping them during
  shutdown and supervising them while the system is running.
Vegeu també [[APT_i_DPKG#Opci.C3.B3_show|apt-cache show]].
L'opció [[dpkg -s]] és molt similar però a més mostra l'estatus del paquet.
==Instal·lar un paquet==
$ [[sudo]] dpkg -i [[webmin]]_1.480_all.deb
Consulteu [[APT_i_DPKG#Proc.C3.A9s_d.27instal.C2.B7laci.C3.B3_d.27un_paquet| procés d'instal·lació d'un paquet per tal de saber les passes que es segueixen durant la instal·lació d'un paquet]]
==Desinstal.lar/eliminar un paquet==
$ sudo dpkg -r hello
{{nota|Si el fitxer disposa de fitxers de configuració (carpeta [[/etc]] segons l'estàndard [[FHS]]) aquests es mantenen al sistema. Consulteu [[dpkg- P]].}}
Podeu instal·lar prèviament el paquet de l'exemple amb:
$ sudo apt-get install hello
==Desinstal.lar/eliminar un paquet completament==
Cal utilitzar l'opció purge (-P):
  $ sudo dpkg -P [[bind9]]
Es desintal·la el fitxers i els seus fitxers de configuració.
==Com saber quants paquets tenim instal·lats al nostre sistema==
$ dpkg -l | wc -l
1467
A priori sembla la resposta correcte però realment hauríem de filar més prim:
$ dpkg -l | grep '^i' | wc -l
1451
D'on surt la diferència? La opció grep '^i' ens filtra els paquets que estan instal·lats.. Això vol dir que tenim altres paquets que estan en uns esta diferent a instal·lats. Per '''Exemple''':
$ dpkg --list | grep '^rc' | wc -l
11
Ens mostra que hi ha 11 paquets que han estat eliminats (removed r) però dels quals, s'han deixat els fitxers de configuració (config-files c).
Encara i així ens falten 5 de diferència... La comanda wc conté línies, els 5 "paquets" que ens "falten" són els corresponents a les línies:
Desitjat=Desconegut(u)/Instal·la(i)/Elimina(r)/Neteja(p)/Atura(h)
| Estat=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed
|/ Err?=(none)/Hold/Reinst-required/X=both-problems (Estat,Err: majúsc.=dolent)
||/ Nom                                    Versió                              Descripció
+++-======================================-=====================================-===========================
De la sortida de dpkg -l que també les conté la comanda wc.
==Com obtenir una llista dels paquets instal·lats al nostres sistema==
Podem utilitzar l'acció list:
$ [[dpkg -l]]
o
$ dpkg --list
{{nota| Cal tenir en compte que aquest ordre mostra tant els paquets instal·lats com els eliminats sense purge i altres paquets. Consulteu [[Dpkg#Interpretaci.C3.B3_dels_resultats_de_les_comandes_de_query]]}}
A priori sembla la resposta correcte però realment hauríem de filar més prim si volem només mostrar els instal·lats:
$ dpkg -l | grep '^i'
==Com obtenir una llista dels paquets instal·lats al nostres sistema segons un patró==
Per exemple coneixer tots els paquets instal·lats de gnome:
$ dpkg -l 'gnome*'
Desitjat=Desconegut(u)/Instal·la(i)/Elimina(r)/Neteja(p)/Atura(h)
| Estat=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed
|/ Err?=(none)/Hold/Reinst-required/X=both-problems (Estat,Err: majúsc.=dolent)
||/ Nom                            Versió                        Descripció
+++-==============================-==============================-============================================================================
ii  gnome-about                    2.16.1-0ubuntu1                The GNOME about box
ii  gnome-accessibility-themes    2.16.1.1-0ubuntu1              accessibility themes for the GNOME 2 desktop
un  gnome-admin                    <cap>                          (no hi ha cap descripció disponible)
ii  gnome-app-install              0.2.21                        GNOME Application Installer
un  gnome-app-install-data        <cap>                          (no hi ha cap descripció disponible)
ii  gnome-applets                  2.16.1-0ubuntu3                Various applets for GNOME 2 panel - binary files
ii  gnome-applets-data            2.16.1-0ubuntu3                Various applets for GNOME 2 panel - data files
un  gnome-apt                      <cap>                          (no hi ha cap descripció disponible)
un  gnome-audio                    <cap>                          (no hi ha cap descripció disponible)
un  gnome-bluetooth                <cap>                          (no hi ha cap descripció disponible)
ii  gnome-btdownload              0.0.24-0ubuntu1                Gnome interface for 'executing' BitTorrent files
un  gnome-card-games              <cap>                          (no hi ha cap descripció disponible)
ii  gnome-control-center          2.16.1-0ubuntu4.2              utilities to configure the GNOME desktop
un  gnome-core                    <cap>                          (no hi ha cap descripció disponible)
un  gnome-cpufreq-applet          <cap>                          (no hi ha cap descripció disponible)
ii  gnome-cups-manager            0.31-1.1ubuntu14              CUPS printer admin tool for GNOME
ii  gnome-desktop-data            2.16.1-0ubuntu1                Common files for GNOME 2 desktop apps
ii  gnome-doc-utils                0.8.0-0ubuntu1                a collection of documentation utilities for the Gnome project
ii  gnome-games                    2.16.1-0ubuntu3                games for the GNOME desktop
ii  gnome-games-data              2.16.1-0ubuntu3                data files for the GNOME games
un  gnome-games-extra-data        <cap>                          (no hi ha cap descripció disponible)
un  gnome-gv                      <cap>                          (no hi ha cap descripció disponible)
un  gnome-help                    <cap>                          (no hi ha cap descripció disponible)
ii  gnome-icon-theme              2.16.0.1-0ubuntu2              GNOME Desktop icon theme
un  gnome-intro                    <cap>                          (no hi ha cap descripció disponible)
ii  gnome-keyring                  0.6.0-0ubuntu2                GNOME keyring services (daemon and tools)
ii  gnome-keyring-manager          2.16.0-1ubuntu1                keyring management program for the GNOME desktop
un  gnome-libs-data                <cap>                          (no hi ha cap descripció disponible)
ii  gnome-mag                      0.13.1-0ubuntu3                a screen magnifier for the GNOME desktop
ii  gnome-media                    2.16.1-0ubuntu2                GNOME media utilities
ii  gnome-media-common            2.16.1-0ubuntu2                GNOME media utilities - common files
ii  gnome-menus                    2.16.1-0ubuntu1                an implementation of the freedesktop menu specification for GNOME
ii  gnome-mime-data                2.4.2-2                        base MIME and Application database for GNOME.
ii  gnome-netstatus-applet        2.12.0-5ubuntu6                Network status applet for GNOME 2
ii  gnome-nettool                  2.16.0-0ubuntu1                network information tool for GNOME
un  gnome-network                  <cap>                          (no hi ha cap descripció disponible)
un  gnome-orca                    <cap>                          (no hi ha cap descripció disponible)
ii  gnome-panel                    2.16.1-0ubuntu3                launcher and docking facility for GNOME 2
ii  gnome-panel-data              2.16.1-0ubuntu3                common files for GNOME 2 panel
un  gnome-panel2                  <cap>                          (no hi ha cap descripció disponible)
un  gnome-phone-manager            <cap>                          (no hi ha cap descripció disponible)
ii  gnome-pilot                    2.0.14-0ubuntu2                A GNOME applet for management of your Palm PDA
ii  gnome-pilot-conduits          2.0.14-0ubuntu1                conduits for gnome-pilot
un  gnome-power                    <cap>                          (no hi ha cap descripció disponible)
ii  gnome-power-manager            2.16.1-0ubuntu3                frontend for gnome-powermanager
un  gnome-printinfo                <cap>                          (no hi ha cap descripció disponible)
ii  gnome-screensaver              2.16.1-0ubuntu1                a screen saver and locker
ii  gnome-session                  2.16.1-0ubuntu1                The GNOME 2 Session Manager
ii  gnome-spell                    1.0.7-1ubuntu1                GNOME/Bonobo component for spell checking
un  gnome-sudo                    <cap>                          (no hi ha cap descripció disponible)
ii  gnome-system-monitor          2.16.1-0ubuntu1                Process viewer and system resource monitor for GNOME 2
ii  gnome-system-tools            2.15.5-0ubuntu4                Cross-platform configuration utilities for GNOME
ii  gnome-terminal                2.16.1-0ubuntu1                The GNOME 2 terminal emulator application
ii  gnome-terminal-data            2.16.1-0ubuntu1                Data files for the GNOME terminal emulator
un  gnome-terminal2                <cap>                          (no hi ha cap descripció disponible)
ii  gnome-themes                  2.16.1.1-0ubuntu1              official themes for the GNOME 2 desktop
un  gnome-themes-extras            <cap>                          (no hi ha cap descripció disponible)
un  gnome-user-guide              <cap>                          (no hi ha cap descripció disponible)
ii  gnome-utils                    2.16.1-0ubuntu1                GNOME desktop utilities
ii  gnome-volume-manager          2.15.0-0ubuntu7                GNOME daemon to auto-mount and manage media devices
un  gnome-www-browser              <cap>                          (no hi ha cap descripció disponible)
ii  gnome2-user-guide              2.16.1-0ubuntu1                GNOME 2 User's Guide
==Com comprovar si tenim un paquet instal·lat==
Combinant dpkg amb [[grep]]:
$ dpkg -l | grep nom_del_paquet
Per exemple:
$ dpkg -l | grep coreutils
'''ii''' coreutils                            7.4-2ubuntu1                              The GNU core utilities
{{important|Cal fixar-se que apareguin els caràcters '''ii''' que indiquen que el paquet està instal·lat.}}
Alguns paquets poden apareixer però no està instal·lats. Per exemple els paquets esborrats però del quals s'han mantingut els fitxers de configuració (marcats amb rc):
$ dpkg -l | grep tomcat
rc  tomcat6                              6.0.20-2ubuntu2                            Servlet and JSP engine
==Com podem conèixer quin paquet instal·la un fitxer o comanda concret==
Podem fer cerques amb el paràmetre -S. Per exemple per buscar la comanda users
$ dpkg -S users
moodle: /usr/share/moodle/mod/chat/gui_header_js/users.php
moodle: /usr/share/moodle/pix/i/users.gif
firefox: /usr/share/firefox/chrome/en-US/locale/browser/help/forieusers.xhtml
gnome-system-tools: /usr/share/omf/users-admin/users-admin-C.omf
tango-icon-theme: /usr/share/icons/Tango/22x22/apps/system-users.png
gnome-system-tools: /usr/bin/users-admin
gnome-system-tools: /usr/share/gnome-system-tools/interfaces/users.glade
gnome-system-tools: /usr/share/gnome/help/users-admin/C
.........................
Com podeu veure el resultat és massa llarg....
En aquest cas com que es tracta d'una comanda podem executar
$ [[which]] users
/usr/bin/users
O millor encara:
$ [[whereis]] users
I ara podem filtrar el resultat de l'anterior cerca:
$ dpkg -S users | grep /usr/bin/users
gnome-system-tools: /usr/bin/users-admin
coreutils: /usr/bin/users
I obtenim que el paquet que instal·la la comanda és el paquet core-utils. Alguns fitxers per sort no requereixen filtrar:
$ dpkg -S ifconfig
net-tools: /sbin/ifconfig
net-tools: /usr/share/man/man8/ifconfig.8.gz
==Obtenir la llista de fitxers que instal·la un paquet en el sistema==
$dpkg -L nom_paquet
'''Exemple''':
$ dpkg -L net-tools
/usr
/usr/sbin
/usr/sbin/arp
/usr/share
/usr/share/man
/usr/share/man/man5
/usr/share/man/man5/ethers.5.gz
/usr/share/man/man8
/usr/share/man/man8/mii-tool.8.gz
/usr/share/man/man8/nameif.8.gz
/usr/share/man/man8/netstat.8.gz
/usr/share/man/man8/plipconfig.8.gz
/usr/share/man/man8/rarp.8.gz
/usr/share/man/man8/route.8.gz
/usr/share/man/man8/arp.8.gz
/usr/share/man/man8/ifconfig.8.gz
/usr/share/man/man8/slattach.8.gz
/usr/share/doc
/usr/share/doc/net-tools
/usr/share/doc/net-tools/README
/usr/share/doc/net-tools/README.ipv6
/usr/share/doc/net-tools/TODO
/usr/share/doc/net-tools/copyright
/usr/share/doc/net-tools/changelog.Debian.gz
/sbin
/sbin/ifconfig
/sbin/nameif
/sbin/plipconfig
/sbin/rarp
/sbin/route
/sbin/slattach
/sbin/ipmaddr
/sbin/iptunnel
/sbin/mii-tool
/bin
/bin/netstat
'''NOTA''': El fet que apareguin carpetes com /bin no implica uqe las instal·li aquests paquet. L'´unic que implica és que si en el momnt d'instal·lar el paquet aquesta carpeta no existeix el paquet la crearà.
NOTA 2: Cal tenir el paquet instal·lat per poder consultar els fitxers que instal·la:
$ dpkg -L kdissert
El paquet «kdissert» no està instal·lat.
Useu dpkg --info (= dpkg-deb --info) per a examinar els fitxers d'arxiu,
i dpkg --contents (= dpkg-deb --contents) per a llistar-ne el contingut.
Com diu l'error si disposem del fitxer .deb podem consultar el seu contingut amb
$ dpkg --contents pnom_paquet_debian.deb
Per consultar a priori els continguts d'un paquet si és de Debian podem anar a http://www.debian.org/distrib/packages. Desconeixo si hi ha quelcom semblant per a Ubuntu
Una alternativa és anar a la carpeta [http://es.archive.ubuntu.com/ubuntu/pool pool] dels repositoris d'Ubuntu (o un mirror) com per exemple http://es.archive.ubuntu.com/ubuntu hi buscar el paquet que busquem. Els paquets estan ordenats per carpetes i alfabèticament. Per exemple el paquet liba52-0.7.4_0.7.4-1_amd64:
http://es.archive.ubuntu.com/ubuntu/pool/main/a/a52dec/liba52-0.7.4_0.7.4-1_amd64.deb
un cop hem trobat el paquet podem executar:
$ wget http://es.archive.ubuntu.com/ubuntu/pool/main/a/a52dec/liba52-0.7.4_0.7.4-1_amd64.deb
--19:58:03-- 
            => `liba52-0.7.4_0.7.4-1_amd64.deb'
Resolent es.archive.ubuntu.com... 195.248.90.35, 195.248.90.38
S'està connectant a es.archive.ubuntu.com|195.248.90.35|:80... conectat.
HTTP: Petició enviada, esperant resposta... 200 OK
Longitud: 28,354 (28K) [application/x-debian-package]
100%[====================================================================================================>] 28,354        67.04K/s           
19:58:03 (66.78 KB/s) - s'ha desat «liba52-0.7.4_0.7.4-1_amd64.deb» [28354/28354]
$ dpkg --contents liba52-0.7.4_0.7.4-1_amd64.deb
drwxr-xr-x root/root        0 2004-08-18 02:18 ./
drwxr-xr-x root/root        0 2004-08-18 02:18 ./usr/
drwxr-xr-x root/root        0 2004-08-18 02:18 ./usr/lib/
-rw-r--r-- root/root    42032 2004-08-18 02:18 ./usr/lib/liba52-0.7.4.so
drwxr-xr-x root/root        0 2004-08-18 02:18 ./usr/share/
drwxr-xr-x root/root        0 2004-08-18 02:18 ./usr/share/doc/
drwxr-xr-x root/root        0 2004-08-18 02:18 ./usr/share/doc/liba52-0.7.4/
-rw-r--r-- root/root      648 2004-08-18 02:18 ./usr/share/doc/liba52-0.7.4/changelog.Debian.gz
-rw-r--r-- root/root      443 2002-04-15 09:10 ./usr/share/doc/liba52-0.7.4/TODO
-rw-r--r-- root/root      1031 2002-07-28 03:55 ./usr/share/doc/liba52-0.7.4/AUTHORS
-rw-r--r-- root/root      1104 2004-08-18 02:18 ./usr/share/doc/liba52-0.7.4/copyright
-rw-r--r-- root/root      2027 2002-07-28 05:50 ./usr/share/doc/liba52-0.7.4/changelog.gz
-rw-r--r-- root/root      723 2002-07-28 05:50 ./usr/share/doc/liba52-0.7.4/NEWS.gz
-rw-r--r-- root/root      2820 2002-06-08 22:11 ./usr/share/doc/liba52-0.7.4/README.gz
==Obtenir la llista de comandes (binaris) que instal·la un paquet en el sistema==
$ dpkg -L net-tools | grep bin
/usr/sbin
/usr/sbin/arp
/sbin
/sbin/ifconfig
/sbin/nameif
/sbin/plipconfig
/sbin/rarp
/sbin/route
/sbin/slattach
/sbin/ipmaddr
/sbin/iptunnel
/sbin/mii-tool
/bin
/bin/netstat
==Obtenir la llista de fitxers de configuració (carpeta etc) que instal·la un paquet en el sistema==
$ dpkg -L ifupdown | grep etc
/etc
/etc/network
/etc/network/if-pre-up.d
/etc/network/if-up.d
/etc/network/if-down.d
/etc/network/if-post-down.d
/etc/init.d
/etc/init.d/loopback
/etc/udev
/etc/udev/rules.d
/etc/udev/rules.d/85-ifupdown.rules
==Consultar l'estat i les metadades d'un fitxer==
Molt similar a [[dpkg -p]] però a més mostra l'[[estatus d'un paquet| estatus del paquet]].
$ dpkg -s apache2
Package: apache2
'''Status: install ok installed'''
Priority: optional
Section: httpd
Installed-Size: 36
Maintainer: Ubuntu Core Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Architecture: all
Version: 2.2.12-1ubuntu2.1
Depends: apache2-mpm-worker (>= 2.2.12-1ubuntu2.1) | apache2-mpm-prefork (>= 2.2.12-1ubuntu2.1) | apache2-mpm-event (>= 2.2.12-1ubuntu2.1) |
apache2-mpm-itk (>= 2.2.12-1ubuntu2.1), apache2.2-common (= 2.2.12-1ubuntu2.1)
Description: Apache HTTP Server metapackage
  The Apache Software Foundation's goal is to build a secure, efficient and
  extensible HTTP server as standards-compliant open source software. The
  result has long been the number one web server on the Internet.
  .
  It features support for HTTPS, virtual hosting, CGI, SSI, IPv6, easy
  scripting and database integration, request/response filtering, many
  flexible authentication schemes, and more.
Homepage: http://httpd.apache.org/
Original-Maintainer: Debian Apache Maintainers <debian-apache@lists.debian.org>
==Obtenir el nom dels paquets ordenats per mida==
$ dpkg-query -W --showformat='${Installed-Size} ${Package}\n' | sort -nr | more
99400 openoffice.org-core
76696 tetex-base
65824 mysql-server-5.0
65084 sun-java5-bin
64048 linux-image-2.6.17-10-386
60844 linux-image-2.6.15-27-386
60604 linux-image-2.6.15-23-386
58880 linux-headers-2.6.17-10
54740 linux-headers-2.6.15-27
42152 tetex-extra
41520 foomatic-db-gutenprint
39396 openoffice.org-common
38204 evolution
.......................
==Com obtenir una llista dels paquets instal·lats amb només els noms dels paquets==
Podem utilitzar la comanda awk:
$ dpkg --list | grep '^ii' | awk '{ print $2; }' 
Si volem podem guardar aquesta llista en un fitxer:
$ dpkg --list | grep '^ii' | awk '{ print $2; }' > paquets_instal·lats.txt
==Com saber quins paquets han estat eliminats però no purgats (no s'ha eliminat els fitxers de configuració)==
$ dpkg --list | grep ^rc
==Com saber quins paquets han estat eliminats però no purgats (no s'ha eliminat els fitxers de configuració)==
$ dpkg --list | grep ^rc | awk '{ print $2; }'
==Com eliminar els fitxers de configuració dels paquets no purgats==
$ dpkg --purge $(dpkg --list | grep ^rc | awk '{ print $2; }')
==Com saber els canvis en un paquet==
$ dpkg -L paquet | grep -i changelog
Contesta amb els arxius que contenen el registre de canvis. Exemple
$ dpkg -L kmail|grep -i changelog
/usr/share/doc/kmail/changelog.gz
/usr/share/doc/kmail/changelog.Debian.gz
$ more /usr/share/doc/kmail/changelog
==Com obtenir una llista dels paquets instal·lats i utilitzar-la per tornar a instal·lar-los en cas de reinstal·lació del sistema==
{{nota|Consulteu [[apt-get hold]] per veure com utilitzar l'opció --set-selections per tal de bloquejar l'actualització de paquets}}
L'opció --get-selections de l'ordre [[dpkg]] us mostrà una llista dels paquets instal·lats al sistema:
$ dpkg --get-selections | more
acpi-support install
acpid install
adduser install
aisleriot install
alacarte install
alien install
alsa-base install
alsa-utils install
anacron install
ant install
ant-doc install
ant-gcj install
...
Per exemple amb:
$ [[dpkg --get-selections]] | grep -v deinstall > ubuntu-files
Tenim un fitxer ubuntu-files on tenim la llista de paquets instal·lats al nostre sistema. Per reinstal·lar:
$ [[sudo]] [[aptitude]] update
$ sudo aptitude dist-upgrade
$ [[dpkg --set-selections]] < ubuntu-files
$ sudo [[aptitude]]
{{important| podeu fer quelcom similar amb debconf amb el paquet [[debconf-utils]] i l'ordre [[debcong-get-selections]]}}
==Com auditar el sistema en busca de paquets pendents d'acabar la seva instal·lació==
$ sudo dpkg -C
Els paquets següents només estan configurats a mitges, probablement
a causa de problemes en la configuració inicial.  S'ha de reintentar
la configuració amb dpkg --configure <paquet> o l'opció configurar
en el menú de dselect:
  linux-image-2.6.31.6-custom Linux kernel binary image for version 2.6.31.6-cus
==Mostrar els continguts d'un fitxer paquet==
$ dpkg -c {file.deb}
=Paquets orfes=
$ apt-cache search orphan
.................
deborphan - Find orphaned libraries
....
deborphan és una utilitat per controlar els paquets orfes...
=Troubleshooting=
== Not replacing deleted config file or why the dpkg  ==
$ aptitude -o DPkg::Options="--force-confmiss" reinstall rsyslog
On rsyslog en aquest cas és el paqeut que dona problemes.
:*http://mhalligan.com/not-replacing-deleted-config-file-or-why-the
== Couldn't stat source package list ==
Si rebeu un missatge semblant al següent quan intenteu executar apt-get install paquet...
Reading Package Lists... Done
Building Dependency Tree... Done
W: Couldn't stat source package list 'http://people.debian.org unstable/ Packages'     
(/var/state/apt/lists/people.debian.org_%7ekov_debian_unstable_Packages) - stat (2 No such file or directory)
W: You may want to run apt-get update to correct these missing files
E: Couldn't find package penguineyes
us heu oblidat d'executar apt-get update després del vostre últim canvi al fitxer /etc/apt/sources.list.
Si l'error mostrat és com aquest:
E: Could not open lock file /var/lib/dpkg/lock - open (13 Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
quan escolliu qualsevol altre mètode per a apt-get diferent a source, és que no disposeu dels permisos d'usuari root, el qual ve a indicar, que l'esteu executant com a un usuari normal.
Hi ha un error similar a l'anterior que passa quan executeu dues còpies de apt-get alhora o quan intenteu executar apt-get mentres un procés dpkg està actiu. L'únic mètode que es pot emprar simultàniament amb els altres és source.
Si una instal·lació peta a la meitat del procés i us trobeu amb que ja no és possible instal·lar o eliminar paquets, intenteu executar aquests dos comandaments:
# apt-get -f install
# dpkg --configure -a
I després proveu-ho una altra vegada. Podria ser necessari executar el segon comandament més d'una vegada. Aquest és una important lliçó per aquells aventurers que usen "unstable".
Si rebeu l'error "E: Dynamic MMap ran out of room" a l'executar apt-get update, afegiu la següent línia a /etc/apt/apt.conf:
APT::Cache-Limit 10000000;
= Vegeu també =
:*[[Creació de paquets Debian]]
:*[[apt-utils]]
:*[[Com crear un Repositori Debian]]
= Enllaços externs =
*[http://www.debian.org/doc/manuals/apt-howto/ch-search.ca.html Apt-Howto de debian]
*http://www.debian.org/doc/manuals/reference/ch-package.en.html
*http://www.debian.org/doc/FAQ/ch-pkgtools.en.html
[[Category:DissenyXarxesLinux]] [[Category:LinuxAdministracioAvancada]] [[Category:IntroduccioLinux]]

Revisión actual - 17:23 10 ene 2013