Provided by: dpkg-dev_1.16.1.2ubuntu7_all bug

NOMBRE

       dpkg-shlibdeps  -  Genera  dependencias  de  bibliotecas compartidas de
       sustitución de variables

SINOPSIS

       dpkg-shlibdeps [option...] [-e]executable [option...]

DESCRIPCIÓN

       dpkg-shlibdeps calculates shared library dependencies  for  executables
       named  in its arguments. The dependencies are added to the substitution
       variables     file     debian/substvars     as      variable      names
       shlibs:dependencyfield  where  dependencyfield  is  a  dependency field
       name. Any other variables starting with shlibs: are  removed  from  the
       file.

       dpkg-shlibdeps  tiene  dos posibles fuentes de información para generar
       la información de  dependencias.  Estos  son  los  ficheros  symbols  y
       shlibs.  Por cada binario que dpkg-shlibdeps analiza, busca la lista de
       bibliotecas enlazadas con éste. 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       debería        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:  búsqueda  en  el sistema del fichero de la
       biblioteca (buscando en los mismos directorios  que  usaría  ld.so),  y
       ejecución   de  dpkg  -S  library-file  para  conocer  el  paquete  que
       proporciona la biblioteca.

   Ficheros de símbolos
       Los ficheros de símbolos contienen una información más precisa  de  las
       dependencias,  proporcionando la dependencia mínima de cada símbolo que
       la biblioteca exporta.  El  script  intenta  encontrar  un  fichero  de
       símbolos  asociado  al  paquete  de  la  biblioteca  en  las siguientes
       ubicaciones (se usa la primera coincidencia):

       debian/*/DEBIAN/symbols
              La información de biblioteca compartida generada por el  proceso
              de  construcción  actual,  que también invoca dpkg-shlibdeps. Se
              generan mediante dpkg-gensymbols(1). Sólo se  usan  en  caso  de
              encontrar la biblioteca en la árbol de construcción del paquete.
              El fichero de  símbolos  de  ese  árbol  de  construcción  tiene
              prioridad  sobre  los  ficheros  de  símbolos  de otros paquetes
              binarios.

       /etc/dpkg/symbols/paquete.symbols.arquitectura

       /etc/dpkg/symbols/paquete.symbols
              Información de redefinición 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 versión mínima (más grande)  necesaria  para
       cada biblioteca al analizar los símbolos usados por todos los binarios.
       Al finalizar el proceso, puede escribir la dependencia mínima para cada
       biblioteca  usada  (siempre  que la información de los ficheros symbols
       sea precisa).

       Como medida de precaución, un fichero de símbolos puede proporcionar un
       campo de meta información Build-Depends-Package para que dpkg-shlibdeps
       extraiga la versión mínima requerida por el paquete correspondiente  en
       el campo «Build-Depends», y usar tal versión si es mayor que la versión
       mínima calculada en el análisis de símbolos.

   Ficheros «shlibs»
       Los ficheros «shlibs» asocian de forma directa  una  librería  con  una
       dependencia  (sin  analizar  «symbols»).  Por  ello,  es más sólido que
       necesario, pero sencillo y seguro de manipular.

       Las dependencias de una biblioteca se buscan en varias ubicaciones.  Se
       usará  el  primer  fichero que proporcione información de la biblioteca
       relevante.

       debian/shlibs.local
              Información  acerca   de   redefinición   de   dependencias   de
              bibliotecas compartidas específicas al paquete local.

       /etc/dpkg/shlibs.override
              Información   acerca   de   redefinición   de   dependencias  de
              bibliotecas compartidas para cada sistema.

       debian/*/DEBIAN/shlibs
              La  información  de  bibliotecas  compartidas  generada  por  el
              proceso  de  construcción  actual,  que  dpkg-shlibdeps  también
              invoca. Sólo se usa si la biblioteca se encuentra en el árbol de
              construcción  del  paquete.  El  fichero «shlibs» en el árbol de
              construcción 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
              Información  del sistema acerca de las dependencias predefinidas
              de bibliotecas compartidas.

       Tras ello, se usan las dependencias extraídas directamente (a menos que
       se  hayan omitido debido que se les identifique como duplicados, o como
       más débiles que otra dependencia).

OPCIONES

       dpkg-shlibdeps interpreta cualquier argumento que  no  sea  una  opción
       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
              Añade  dependencias  al  campo campo-dependencias del fichero de
              control. (Las dependencias para  este  campo  se  ubican  en  la
              variable shlibs:campo-dependencias).

              La  opción  -dcampo-dependencias  tiene  efecto  para  todos los
              ejecutables  después  de  dicha  opción,  hasta   el   siguiente
              -dcampo-dependencias.   Por  omisión  el  campo-dependencias  es
              Depends.

              Si la misma dependencia (o un conjunto de alternativas)  aparece
              en   más  de  uno  de  los  nombres  de  campo  de  dependencias
              reconocidos:  Pre-Depends,  Depends,  Recommends,   Enhances   o
              Suggests,    dpkg-shlibdeps    eliminará    automáticamente   la
              dependencia de todos los campos, exceptuando aquél que  contenga
              las dependencias más importantes.

       -pprefijo-de-variable
              Provoca   que   las   variables   de  sustitución  empiecen  por
              prefijo-de-variable: en  vez  de  shlibs:.  Asimismo,  cualquier
              variable   de   sustitución   ya   existente   que  empiece  por
              prefijo-de-variable:  (en  vez  de  shlibs:)  se  eliminará  del
              fichero de sustitución de variables.

       -O     Muestra  las  propiedades de las variables de sustitución por la
              salida estándar, en lugar de añadirse al fichero de  sustitución
              de variables (por omisión debian/substvars).

       -ttipo Da  prioridad  a  la  información  de dependencia de bibliotecas
              compartidas etiquetada para el tipo de paquete dado. En caso  de
              no  existir  ninguna información etiquetada, usa información sin
              etiquetar por omisión. El tipo de paquete predefinido es  «deb».
              La  información  de  dependencia  de  bibliotecas compartidas se
              etiqueta para un tipo dado prefijando éste  con  el  nombre  del
              tipo, dos puntos, y un espacio.

       -Lfichero-shlibs-local
              Provoca  que  dpkg-shlibs  lea la información sobre dependencias
              con bibliotecas compartidas desde fichero-shlibs-local en vez de
              debian/shlibs.local.

       -Tfichero-variables-sust
              Escribe      las      variables      de      sustitución      en
              fichero-sustitucin-variables; por omisión 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 útil 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 opción  se  puede
              usar varias veces para excluir varios paquetes.

       -Sdirectorio-compilacin-paquete
              Analiza  el directorio-compilacin-paquete primero al buscar una
              biblioteca. Es útil 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
              opción  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 información de
              dependencia de una biblioteca compartida. No se recomienda  usar
              esta  opción  ya que todas las bibliotecas deberían proporcionar
              información de dependencia (mediante los  ficheros  «shlibs»,  o
              ficheros de símbolos), 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 están  activados  por  omisión,  no  el  último.
              Defina  el  valor  con  7  si  desea  que todos los avisos estén
              activos.

       --admindir=directorio
              Cambia el directorio con la base de datos de dpkg.  Por  omisión
              es /var/lib/dpkg.

       -h, --help
              Muestra el modo de uso y termina.

       --version
              Muestra la versión y termina.

ADVERTENCIAS

       Debido  a  que dpkg-shlibdeps analiza el conjunto de símbolos usado por
       cada binario del paquete  generado,  puede  mostrar  avisos  en  varias
       situaciones.  Éstos  informan de aspectos mejorables del paquete. En la
       mayoría de los casos, conciernen directamente a las fuentes original. A
       continuación  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 símbolo indicado no se encontró en las bibliotecas  enlazadas
              con  el  binario.  Posiblemente,  binario  es  una biblioteca, y
              necesita estar enlazado con una biblioteca adicional durante  el
              proceso de construcción (opción -lbiblioteca del enlazador).

       binary  contains an unresolvable reference to symbol sym: it's probably
       a plugin
              El símbolo indicado no  se  ha  encontrado  en  las  bibliotecas
              enlazadas  con  el  binario.  Probablemente,  el  binario es una
              extensión, y cabe  que  el  programa  que  carga  tal  extensión
              proporciona  el  símbolo.  Teóricamente,  una extensión no tiene
              ningún «SONAME», pero sí este binario, y por ello no se le puede
              identificar  claramente  como  tal.  Aún así, el hecho de que el
              binario se guarda en un directorio no público es una  indicación
              de  que no es una biblioteca compartida normal. Si el binario es
              realmente una extensión, 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  dinámico lo encuentre. En tal caso, la biblioteca está
              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
              símbolos que proporciona la biblioteca. Al  arreglar  todos  los
              binarios,  evitaría la dependencia asociada a esta biblioteca (a
              menos que la dependencia se genere también para otra  biblioteca
              que sí la usa).

       binary shouldn't be linked with library (it uses none of its symbols).
              El  binario está 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 información que el anterior, pero lo  hace
              para  cada binario, en lugar de una revisión global de todos los
              binarios.

FALLOS

       dpkg-shlibdeps fallará si no puede encontrar ninguna biblioteca pública
       usada por un binario, o si no existe ninguna información de dependencia
       asociada  a  esta  biblioteca  (el  fichero  «shlibs»,  o  el   fichero
       «symbols»).  Una  biblioteca  pública  tiene un «SONAME», el cual tiene
       información de versión (biblioteca.so.x). Una biblioteca privada  (como
       una  extensión)  no  debería  tener un «SONAME», y por ello no necesita
       información de versión.

       couldn't find library library-soname needed by  binary  (its  RPATH  is
       'rpath')
              The   binary   uses   a   library   called   library-soname  but
              dpkg-shlibdeps  has   been   unable   to   find   the   library.
              dpkg-shlibdeps  creates  a  list  of  directories  to  check  as
              following: directories  listed  in  the  RPATH  of  the  binary,
              directories listed in /etc/ld.so.conf, directories listed in the
              LD_LIBRARY_PATH  environment  variable,  and   standard   public
              directories   (/lib,   /usr/lib,   /lib32,  /usr/lib32,  /lib64,
              /usr/lib64). Then it checks those directories in  the  package's
              build  tree of the binary being analyzed, in the packages' build
              trees indicated  with  the  -S  command-line  option,  in  other
              packages'   build   trees   that  contains  a  DEBIAN/shlibs  or
              DEBIAN/symbols file and finally in the root directory.   If  the
              library  is  not found in any of those directories, then you get
              this error.

              Si la biblioteca que no se encontró está dentro de un directorio
              privado  del  mismo  paquete,  querrá  añadir  el  directorio  a
              «LD_LIBRARY_PATH».  Si  está  en   otro   paquete   binario   en
              construcción,   querrá   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 encontró la biblioteca que  binario  necesita  en
              fichero-biblioteca,  pero  no ha sido capaz de encontrar ninguna
              información de dependencia para esta biblioteca. Para  encontrar
              la   dependencia,  intentó  establecer  una  correlación  de  la
              biblioteca con el  paquete  Debian  con  la  ayuda  de  dpkg  -S
              fichero-biblioteca. Después revisó los correspondientes ficheros
              «shlibs»  y  «symbols»  en  «/var/lib/dpkg/info/»,  y   en   los
              distintos     árboles     de     construcción     del    paquete
              («debian/*/DEBIAN/»).

              Este fallo  puede  estar  causado  por  un  fichero  «shlibs»  o
              «symbols»  incorrecto  o ausente en el paquete de la biblioteca.
              También cabe que la biblioteca se  construya  dentro  del  mismo
              paquete  fuente, y que aún no se haya creado el fichero «shlibs»
              (en  cuyo  caso  debería  arreglar  «debian/rules»  para   crear
              «shlibs» antes de invocar dpkg-shlibdeps). Un incorrecto «RPATH»
              también puede llevar a encontrar la biblioteca bajo un nombre no
              canónico                      (por                      ejemplo,
              «/usr/lib/openoffice.org/../lib/libssl.so.0.9.8»  en  lugar   de
              «/usr/lib/libssl.so.0.9.8»)   que  no  esté  asociado  a  ningún
              paquete. dpkg-shlibdeps intenta evitar  esto  usando  un  nombre
              canónico (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 más
              información acerca de dónde buscó la información de dependencia.
              Puede ser útil si no entiende porque muestra este fallo.

VÉASE TAMBIÉN

       deb-shlibs(5), deb-symbols(5), dpkg-gensymbols(1).

AUTORES

       Copyright © 1995-1996 Ian Jackson
       Copyright © 2000 Wichert Akkerman
       Copyright © 2006 Frank Lichtenheld
       Copyright © 2007-2008 Raphaël Hertzog

       Esto es software libre; vea la versión 2 o  posterior  de  la  Licencia
       Pública General GNU para condiciones de copia. NO hay ninguna garantía.

TRADUCTOR

       Rudy  Godoy  <rudy@kernel-panik.org>,  Rubén  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
       Fernández-Sanguino, Rubén Porras, Luis Uribe y Omar Campagne.