Provided by: dpkg-dev_1.17.5ubuntu5.8_all bug

NOMBRE

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

SINOPSIS

       dpkg-shlibdeps [opción...] [-e]ejecutable [opción...]

DESCRIPCIÓN

       dpkg-shlibdeps calcula las dependencias de  bibliotecas  compartidas  de  los  ejecutables
       suministrados  en  sus argumentos. Las dependencias se añaden al fichero de sustitución 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 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 ejecuta 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).

       Salida de “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).

       As  a  safe-guard  measure,  a  symbols   file   can   provide   a   Build-Depends-Package
       meta-information field and dpkg-shlibdeps will extract the minimal version required by the
       corresponding package in the Build-Depends field and use this version if it's higher  than
       the minimal version computed by scanning symbols.

   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  ejecuta.  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.

       Salida de “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
              Include dependencies appropriate for the shared libraries required  by  executable.
              This option can be used multiple times.

       -ldirectory
              Add  directory  to  the  list of directories to search for private shared libraries
              (since dpkg 1.17.0). This option can be used multiple times.

              Note: Use this option instead  of  setting  LD_LIBRARY_PATH,  as  that  environment
              variable  is  used  to control the run-time linker and abusing it to set the shared
              library paths at build-time can be problematic when cross-compiling for example.

       -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[filename]
              Print substitution variable settings to standard output (or filename if specified),
              rather than being added to the substitution  variables  file  (debian/substvars  by
              default).

       -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-sustitución
              Escribe las variables de sustitución en fichero-sustitución-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 utilizar varias veces para excluir varios paquetes.

       -Sdirectorio-compilación-paquete
              Analiza el directorio-compilación-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
              utilizar 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 utilizar  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
              mostrar. 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 «package could avoid a
              useless dependency», 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, y 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.

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

       --version
              Muestra la versión y termina.

DIAGNÓSTICOS

   Warnings
       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.

       package could avoid a useless dependency if binary was not linked against library (it uses
       none of the library's 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).

       package could avoid a useless dependency if binaries were not linked against library (they
       uses none of the library's symbols)
              Idéntico al aviso anterior, pero para varios binarios.

       binary should not be linked against library (it uses none of the library's 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.

   Errors
       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  added  by  the  -l option, 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.

              If the library not found is in a private directory of the same  package,  then  you
              want  to  add the directory with -l. If it's in another binary package being built,
              you want to make sure that the shlibs/symbols  file  of  this  package  is  already
              created  and  that -l contains the appropriate directory if it also is in a private
              directory.

       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 ejecutar
              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.

              Calling  dpkg-shlibdeps  in  verbose  mode  (-v) will provide much more information
              about where it tried to find the dependency information. This might  be  useful  if
              you don't understand why it's giving you this error.

VÉASE TAMBIÉN

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

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.