Diferencia entre revisiones de «Instal·lar en Liux»
(→dpkg) |
|||
Línea 1366: | Línea 1366: | ||
APT::Cache-Limit 10000000; | APT::Cache-Limit 10000000; | ||
= Enllaços externs = | = Enllaços externs = |
Revisión del 17:21 10 ene 2013
Repositoris o Fonts de programari
Els 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
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:
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:
Que permeten cercar i instal·lar paquets. El suport esta activat per defecte a Firefox i funciona gràcies al paquet:
apturl
Recursos:
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:
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:
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é 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 PPAs:
$ 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:
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.
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-CDs
- -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
Dpkg-deb ens proporciona les eines per crear paquets.
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.
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. ...
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:
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:
- Selection status. Els possibles valors són:
- Unknown (u)
- Install (i)
- Remove (r)
- Purge (p)
- Status. Els possibles valors són:
- Not installed (n)
- Installed (i)
- Config-files (c)
- Unpacked (u)
- Failed-config (f)
- Half-installed (h)
- 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-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
Desinstal.lar/eliminar un paquet
$ sudo dpkg -r hello
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
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
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 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 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
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
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.
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;