Provided by:
dpkg-dev_1.16.0.3ubuntu5_all 
NOMBRE
dpkg-shlibdeps - Genera dependencias de bibliotecas compartidas de
sustitucion de variables
SINOPSIS
dpkg-shlibdeps [opciones] ejecutable|-eejecutable [opciones]
DESCRIPCI'ON
dpkg-shlibdeps calcula las dependencias de bibliotecas compartidas de
los ejecutables suministrados en sus argumentos. Las dependencias se
anaden al fichero de sustitucion de variables debian/substvars como
nombres de variable shlibs:campo-dependencia, donde campo-dependencia
es un nombre de campo de dependencia. Cualquier otra variable que
empiece con shlibs: se elimina del fichero.
dpkg-shlibdeps tiene dos posibles fuentes de informacion para generar
la informacion de dependencias. Estos son los ficheros symbols y
shlibs. Por cada binario que dpkg-shlibdeps analiza, busca la lista de
bibliotecas enlazadas con este. Entonces, por cada biblioteca, busca el
fichero symbols o el fichero shlibs (en caso de que el primero no
exista, o si <<debian/shlibs.local>> contiene la dependencia
relevante). Se asume que el paquete de la biblioteca proporciona ambos
ficheros, y por ello deberia estar disponible como
<</var/lib/dpkg/info/paquete.symbols>> o
<</var/lib/dpkg/info/package.shlibs>>. El nombre del paquete se
identifica en dos pasos: busqueda en el sistema del fichero de la
biblioteca (buscando en los mismos directorios que usaria ld.so), y
ejecucion de dpkg -S library-file para conocer el paquete que
proporciona la biblioteca.
Ficheros de s'imbolos
Los ficheros de simbolos contienen una informacion mas precisa de las
dependencias, proporcionando la dependencia minima de cada simbolo que
la biblioteca exporta. El script intenta encontrar un fichero de
simbolos asociado al paquete de la biblioteca en las siguientes
ubicaciones (se usa la primera coincidencia):
debian/*/DEBIAN/symbols
La informacion de biblioteca compartida generada por el proceso
de construccion actual, que tambien invoca dpkg-shlibdeps. Se
generan mediante dpkg-gensymbols(1). Solo se usan en caso de
encontrar la biblioteca en la arbol de construccion del paquete.
El fichero de simbolos de ese arbol de construccion tiene
prioridad sobre los ficheros de simbolos de otros paquetes
binarios.
/etc/dpkg/symbols/paquete.symbols.arquitectura
/etc/dpkg/symbols/paquete.symbols
Informacion de redefinicion de bibliotecas compartidas por cada
sistema. arquitectura es la arquitectura del sistema actual
(obtenido mediante dpkg-architecture - qDEB_HOST_ARCH).
Output from "dpkg-query --control-path package symbols"
Package-provided shared library dependency information. Unless
overridden by --admindir, those files are located in
/var/lib/dpkg.
dpkg-shlibdeps recuerda la version minima (mas grande) necesaria para
cada biblioteca al analizar los simbolos usados por todos los binarios.
Al finalizar el proceso, puede escribir la dependencia minima para cada
biblioteca usada (siempre que la informacion de los ficheros symbols
sea precisa).
Como medida de precaucion, un fichero de simbolos puede proporcionar un
campo de meta informacion Build-Depends-Package para que dpkg-shlibdeps
extraiga la version minima requerida por el paquete correspondiente en
el campo <<Build-Depends>>, y usar tal version si es mayor que la
version minima calculada en el analisis de simbolos.
Ficheros <<shlibs>>
Los ficheros <<shlibs>> asocian de forma directa una libreria con una
dependencia (sin analizar <<symbols>>). Por ello, es mas solido que
necesario, pero sencillo y seguro de manipular.
Las dependencias de una biblioteca se buscan en varias ubicaciones. Se
usara el primer fichero que proporcione informacion de la biblioteca
relevante.
debian/shlibs.local
Informacion acerca de redefinicion de dependencias de
bibliotecas compartidas especificas al paquete local.
/etc/dpkg/shlibs.override
Informacion acerca de redefinicion de dependencias de
bibliotecas compartidas para cada sistema.
debian/*/DEBIAN/shlibs
La informacion de bibliotecas compartidas generada por el
proceso de construccion actual, que dpkg-shlibdeps tambien
invoca. Solo se usa si la biblioteca se encuentra en el arbol de
construccion del paquete. El fichero <<shlibs>> en el arbol de
construccion tiene prioridad sobre otros ficheros <<shlibs>> de
otros paquetes binarios.
Output from "dpkg-query --control-path package shlibs"
Package-provided shared library dependency information. Unless
overridden by --admindir, those files are located in
/var/lib/dpkg.
/etc/dpkg/shlibs.default
Informacion del sistema acerca de las dependencias predefinidas
de bibliotecas compartidas.
Tras ello, se usan las dependencias extraidas directamente (a menos que
se hayan omitido debido que se les identifique como duplicados, o como
mas debiles que otra dependencia).
OPCIONES
dpkg-shlibdeps interpreta cualquier argumento que no sea una opcion
como el nombre de un fichero ejecutable, igual que si se hubiesen
proporcionado con -eejecutable.
-eejecutable
Incluye dependencias apropiadas para las bibliotecas compartidas
requeridas por el ejecutable.
-dcampo-dependencias
Anade dependencias al campo campo-dependencias del fichero de
control. (Las dependencias para este campo se ubican en la
variable shlibs:campo-dependencias).
La opcion -dcampo-dependencias tiene efecto para todos los
ejecutables despues de dicha opcion, hasta el siguiente
-dcampo-dependencias. Por omision el campo-dependencias es
Depends.
Si la misma dependencia (o un conjunto de alternativas) aparece
en mas de uno de los nombres de campo de dependencias
reconocidos: Pre-Depends, Depends, Recommends, Enhances o
Suggests, dpkg-shlibdeps eliminara automaticamente la
dependencia de todos los campos, exceptuando aquel que contenga
las dependencias mas importantes.
-pprefijo-de-variable
Provoca que las variables de sustitucion empiecen por
prefijo-de-variable: en vez de shlibs:. Asimismo, cualquier
variable de sustitucion ya existente que empiece por
prefijo-de-variable: (en vez de shlibs:) se eliminara del
fichero de sustitucion de variables.
-O Muestra las propiedades de las variables de sustitucion por la
salida estandar, en lugar de anadirse al fichero de sustitucion
de variables (por omision debian/substvars).
-ttipo Da prioridad a la informacion de dependencia de bibliotecas
compartidas etiquetada para el tipo de paquete dado. En caso de
no existir ninguna informacion etiquetada, usa informacion sin
etiquetar por omision. El tipo de paquete predefinido es
<<deb>>. La informacion de dependencia de bibliotecas
compartidas se etiqueta para un tipo dado prefijando este con el
nombre del tipo, dos puntos, y un espacio.
-Lfichero-shlibs-local
Provoca que dpkg-shlibs lea la informacion sobre dependencias
con bibliotecas compartidas desde fichero-shlibs-local en vez de
debian/shlibs.local.
-Tfichero-variables-sust
Escribe las variables de sustitucion en
fichero-sustituci'on-variables; por omision debian/substvars.
-v Activa el modo informativo. Se muestran numerosos mensajes que
explican las acciones de dpkg-shlindeps.
-xpaquete
Excluye el paquete de las dependencias generadas. Es util para
evitar auto-dependencias de paquetes que proporcionan binarios
ELF (ejecutables o extensiones de bibliotecas) y que usan una
biblioteca contenida en el mismo paquete. Esta opcion se puede
usar varias veces para excluir varios paquetes.
-Sdirectorio-compilaci'on-paquete
Analiza el directorio-compilaci'on-paquete primero al buscar una
biblioteca. Es util cuando el paquete fuente genera distintas
variantes de la misma biblioteca, y quiere asegurar que obtiene
la dependencia de un paquete binario dado. Puede usar esta
opcion varias veces: los directorios se analizan en el mismo
orden antes de analizar los directorios de otros paquetes
binarios.
--ignore-missing-info
No devuelve un fallo en caso de no encontrar la informacion de
dependencia de una biblioteca compartida. No se recomienda usar
esta opcion ya que todas las bibliotecas deberian proporcionar
informacion de dependencia (mediante los ficheros <<shlibs>>, o
ficheros de simbolos), incluso cuando otros paquetes no los usan
actualmente.
--warnings=valor
valor es un campo de bit que define el conjunto de avisos que
dpkg-shlibdeps puede emitir. Bit 0 (valor=1) activa el aviso
<<symbol sym used by binary found in none of the libraries>>, el
bit 1 (valor=2) activa el aviso <<dependency on library could be
avoided>>, y bit 2 (valor=4) activa el aviso <<binary shouldn't
be linked with library>>. El valor predefinido es 3: los dos
primeros avisos estan activados por omision, no el ultimo.
Defina el valor con 7 si desea que todos los avisos esten
activos.
--admindir=directorio
Cambia el directorio con la base de datos de dpkg. Por omision
es /var/lib/dpkg.
-h, --help
Muestra el modo de uso y termina.
--version
Muestra la version y termina.
ADVERTENCIAS
Debido a que dpkg-shlibdeps analiza el conjunto de simbolos usado por
cada binario del paquete generado, puede mostrar avisos en varias
situaciones. Estos informan de aspectos mejorables del paquete. En la
mayoria de los casos, conciernen directamente a las fuentes original. A
continuacion se muestran los varios mensajes de advertencia que pueden
aparecer, por orden de importancia decreciente.
symbol sym used by binary found in none of the libraries.
El simbolo indicado no se encontro en las bibliotecas enlazadas
con el binario. Posiblemente, binario es una biblioteca, y
necesita estar enlazado con una biblioteca adicional durante el
proceso de construccion (opcion -lbiblioteca del enlazador).
binary contains an unresolvable reference to symbol sym: it's probably
a plugin
El simbolo indicado no se ha encontrado en las bibliotecas
enlazadas con el binario. Probablemente, el binario es una
extension, y cabe que el programa que carga tal extension
proporciona el simbolo. Teoricamente, una extension no tiene
ningun <<SONAME>>, pero si este binario, y por ello no se le
puede identificar claramente como tal. Aun asi, el hecho de que
el binario se guarda en un directorio no publico es una
indicacion de que no es una biblioteca compartida normal. Si el
binario es realmente una extension, no haga caso de este aviso.
Siempre cabe la posibilidad de que es una biblioteca real, y que
los programas que enlazan con el usan un <<RPATH>> para que el
cargador dinamico lo encuentre. En tal caso, la biblioteca esta
rota y precisa un arreglo.
dependency on library could be avoided if binaries were not uselessly
linked against it (they use none of its symbols).
Ninguno de los binarios enlazados con la biblioteca usan
simbolos que proporciona la biblioteca. Al arreglar todos los
binarios, evitaria la dependencia asociada a esta biblioteca (a
menos que la dependencia se genere tambien para otra biblioteca
que si la usa).
binary shouldn't be linked with library (it uses none of its symbols).
El binario esta enlazado con una biblioteca que no necesita. No
es un problema, pero puede optimizar levemente el tiempo de
carga del binario si no enlaza tal binario a la biblioteca. Este
aviso revisa la misma informacion que el anterior, pero lo hace
para cada binario, en lugar de una revision global de todos los
binarios.
FALLOS
dpkg-shlibdeps fallara si no puede encontrar ninguna biblioteca publica
usada por un binario, o si no existe ninguna informacion de dependencia
asociada a esta biblioteca (el fichero <<shlibs>>, o el fichero
<<symbols>>). Una biblioteca publica tiene un <<SONAME>>, el cual tiene
informacion de version (biblioteca.so.x). Una biblioteca privada (como
una extension) no deberia tener un <<SONAME>>, y por ello no necesita
informacion de version.
couldn't find library library-soname needed by binary (its RPATH is
'rpath')
El binario usa una biblioteca llamada soname-biblioteca, pero
dpkg-shlibdeps ha sido incapaz de encontrar la biblioteca.
dpkg-shlibdeps crea una lista de directorios a revisar en el
siguiente orden: los directorios listados en el <<RPATH>> del
binario, los directorios listados en /etc/ld.so.conf, los
directorios listados en la variable de entorno
<<LD_LIBRARY_PATH>>, y los directorios publicos estandar (/lib,
/usr/lib, /lib32, /usr/lib32, /lib64, /usr/lib64). Despues
revisa esos directorios en el arbol de construccion del paquete
del binario analizado, en los arboles de construccion del
paquete indicados con la opcion de linea de ordenes <<-S>>, en
otros arboles de construccion de paquete que contienen el
fichero <<DEBIAN/shlibs>> o <<DEBIAN/symbols>>, y por ultimo en
el directorio raiz. Esto error aparece cuando la biblioteca no
se encuentra en ninguno de estos directorios.
Si la biblioteca que no se encontro esta dentro de un directorio
privado del mismo paquete, querra anadir el directorio a
<<LD_LIBRARY_PATH>>. Si esta en otro paquete binario en
construccion, querra asegurar que el fichero <<shlibs>> o
<<symbols>> de este paquete ya existe, y que <<LD_LIBRARY_PATH>>
contiene el directorio adecuado, en caso de ser un directorio
privado.
no dependency information found for library-file (used by binary).
dpkg-shlibdeps encontro la biblioteca que binario necesita en
fichero-biblioteca, pero no ha sido capaz de encontrar ninguna
informacion de dependencia para esta biblioteca. Para encontrar
la dependencia, intento establecer una correlacion de la
biblioteca con el paquete Debian con la ayuda de dpkg -S
fichero-biblioteca. Despues reviso los correspondientes ficheros
<<shlibs>> y <<symbols>> en <</var/lib/dpkg/info/>>, y en los
distintos arboles de construccion del paquete
(<<debian/*/DEBIAN/>>).
Este fallo puede estar causado por un fichero <<shlibs>> o
<<symbols>> incorrecto o ausente en el paquete de la biblioteca.
Tambien cabe que la biblioteca se construya dentro del mismo
paquete fuente, y que aun no se haya creado el fichero
<<shlibs>> (en cuyo caso deberia arreglar <<debian/rules>> para
crear <<shlibs>> antes de invocar dpkg-shlibdeps). Un incorrecto
<<RPATH>> tambien puede llevar a encontrar la biblioteca bajo un
nombre no canonico (por ejemplo,
<</usr/lib/openoffice.org/../lib/libssl.so.0.9.8>> en lugar de
<</usr/lib/libssl.so.0.9.8>>) que no este asociado a ningun
paquete. dpkg-shlibdeps intenta evitar esto usando un nombre
canonico (con realpath(3)), pero no siempre funciona. Siempre es
mejor limpiar el <<RPATH>> del binario para evitar problemas.
Invocar dpkg-shlibdeps en modo informativo (-v) ofrece mucha mas
informacion acerca de donde busco la informacion de dependencia.
Puede ser util si no entiende porque muestra este fallo.
V'EASE TAMBI'EN
deb-shlibs(5), deb-symbols(5), dpkg-gensymbols(1).
AUTORES
Copyright (C) 1995-1996 Ian Jackson
Copyright (C) 2000 Wichert Akkerman
Copyright (C) 2006 Frank Lichtenheld
Copyright (C) 2007-2008 Raphael Hertzog
Esto es software libre; vea la version 2 o posterior de la Licencia
Publica General GNU para condiciones de copia. NO hay ninguna garantia.
TRADUCTOR
Rudy Godoy <rudy@kernel-panik.org>, Ruben Porras <nahoo@inicia.es>,
Bruno Barrera C. <bruno.barrera@igloo.cl>, Carlos Izquierdo
<gheesh@ertis.net>, Esteban Manchado y NOK. Debian L10n Spanish
<debian-l10n-spanish@lists.debian.org>.
Revisiones por Santiago Vila <sanvila@unex.es>, Javier
Fernandez-Sanguino, Ruben Porras, Luis Uribe y Omar Campagne.