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