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.

Proyecto Debian                                    2013-09-06                                  dpkg-shlibdeps(1)