.\" dpkg manual page - dpkg-deb(1) .\" .\" Copyright © 1995-1996 Ian Jackson .\" Copyright © 2000 Wichert Akkerman .\" Copyright © 2006 Frank Lichtenheld .\" Copyright © 2007-2011 Raphaël Hertzog .\" Copyright © 2012 Guillem Jover .\" .\" This is free software; you can redistribute it and/or modify .\" it under the terms of the GNU General Public License as published by .\" the Free Software Foundation; either version 2 of the License, or .\" (at your option) any later version. .\" .\" This is distributed in the hope that it will be useful, .\" but WITHOUT ANY WARRANTY; without even the implied warranty of .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the .\" GNU General Public License for more details. .\" .\" You should have received a copy of the GNU General Public License .\" along with this program. If not, see . . .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH dpkg\-shlibdeps 1 "4 de mayo del 2012" "Proyecto Debian" "Herramientas de dpkg" .SH NOMBRE dpkg\-shlibdeps \- Genera dependencias de bibliotecas compartidas de sustitución de variables . .SH SINOPSIS \fBdpkg\-shlibdeps\fP [\fIopción\fP...] [\fB\-e\fP]\fIejecutable\fP [\fIopción\fP...] . .SH DESCRIPCIÓN \fBdpkg\-shlibdeps\fP 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 \fBdebian/substvars\fP como nombres de variable \fBshlibs:\fP\fIcampo\-dependencia\fP, donde \fIcampo\-dependencia\fP es un nombre de campo de dependencia. Cualquier otra variable que empiece con \fBshlibs:\fP se elimina del fichero. .P \fBdpkg\-shlibdeps\fP tiene dos posibles fuentes de información para generar la información de dependencias. Estos son los ficheros \fIsymbols\fP y \fIshlibs\fP. Por cada binario que \fBdpkg\-shlibdeps\fP analiza, busca la lista de bibliotecas enlazadas con éste. Entonces, por cada biblioteca, busca el fichero \fIsymbols\fP o el fichero \fIshlibs\fP (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/\fIpaquete\fP.\fIsymbols\fP» o «/var/lib/dpkg/info/\fIpackage\fP.\fIshlibs\fP». 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 \fBld.so\fP), y ejecución de \fBdpkg \-S \fP\fIlibrary\-file\fP para conocer el paquete que proporciona la biblioteca. .SS "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): .IP debian/*/DEBIAN/symbols La información de biblioteca compartida generada por el proceso de construcción actual, que también ejecuta \fBdpkg\-shlibdeps\fP. Se generan mediante \fBdpkg\-gensymbols\fP(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. .IP /etc/dpkg/symbols/\fIpaquete\fP.symbols.\fIarquitectura\fP .IP /etc/dpkg/symbols/\fIpaquete\fP.symbols Información de redefinición de bibliotecas compartidas por cada sistema. \fIarquitectura\fP es la arquitectura del sistema actual (obtenido mediante \fBdpkg\-architecture \- qDEB_HOST_ARCH\fP). .IP "Salida de \(lq\fBdpkg\-query \-\-control\-path\fP \fIpackage\fP symbols\(rq" Información de dependencias de bibliotecas compartidas proporcionadas por el paquete. A menos que se redefina a través «\-\-admindir», los ficheros se encuentran bajo «/var/lib/dpkg». .P \fBdpkg\-shlibdeps\fP 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 \fIsymbols\fP sea precisa). .P Como medida de precaución, un fichero de símbolos puede proporcionar un campo de meta información \fIBuild\-Depends\-Package\fP para que \fBdpkg\-shlibdeps\fP extraiga la versión mínima requerida por el paquete correspondiente en el campo «Build\-Depends», y utilizar tal versión si es mayor que la versión mínima calculada en el análisis de símbolos. .SS "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. .P Las dependencias de una biblioteca se buscan en varias ubicaciones. Se usará el primer fichero que proporcione información de la biblioteca relevante. .IP debian/shlibs.local Información acerca de redefinición de dependencias de bibliotecas compartidas específicas al paquete local. .IP /etc/dpkg/shlibs.override Información acerca de redefinición de dependencias de bibliotecas compartidas para cada sistema. .IP debian/*/DEBIAN/shlibs La información de bibliotecas compartidas generada por el proceso de construcción actual, que \fBdpkg\-shlibdeps\fP 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. .IP "Salida de \(lq\fBdpkg\-query \-\-control\-path\fP \fIpackage\fP shlibs\(rq" Información de dependencias de bibliotecas compartidas proporcionadas por el paquete. A menos que se redefina a través «\-\-admindir», los ficheros se encuentran bajo «/var/lib/dpkg». .IP /etc/dpkg/shlibs.default Información del sistema acerca de las dependencias predefinidas de bibliotecas compartidas. .P 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). .SH OPCIONES \fBdpkg\-shlibdeps\fP interpreta cualquier argumento que no sea una opción como el nombre de un fichero ejecutable, igual que si se hubiesen proporcionado con \fB\-e\fP\fIejecutable\fP. .TP \fB\-e\fP\fIejecutable\fP Incluye dependencias apropiadas para las bibliotecas compartidas requeridas por el \fIejecutable\fP. .TP \fB\-d\fP\fIcampo\-dependencias\fP Añade dependencias al campo \fIcampo\-dependencias\fP del fichero de control. (Las dependencias para este campo se ubican en la variable \fBshlibs:\fP\fIcampo\-dependencias\fP). La opción \fB\-d\fP\fIcampo\-dependencias\fP tiene efecto para todos los ejecutables después de dicha opción, hasta el siguiente \fB\-d\fP\fIcampo\-dependencias\fP. Por omisión el \fIcampo\-dependencias\fP es \fBDepends\fP. Si la misma dependencia (o un conjunto de alternativas) aparece en más de uno de los nombres de campo de dependencias reconocidos: \fBPre\-Depends\fP, \fBDepends\fP, \fBRecommends\fP, \fBEnhances\fP o \fBSuggests\fP, \fBdpkg\-shlibdeps\fP eliminará automáticamente la dependencia de todos los campos, exceptuando aquél que contenga las dependencias más importantes. .TP \fB\-p\fP\fIprefijo\-de\-variable\fP Provoca que las variables de sustitución empiecen por \fIprefijo\-de\-variable\fP\fB:\fP en vez de \fBshlibs:\fP. Asimismo, cualquier variable de sustitución ya existente que empiece por \fIprefijo\-de\-variable\fP\fB:\fP (en vez de \fBshlibs:\fP) se eliminará del fichero de sustitución de variables. .TP \fB\-O\fP 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 \fBdebian/substvars\fP). .TP \fB\-t\fP\fItipo\fP 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. .TP \fB\-L\fP\fIfichero\-shlibs\-local\fP Provoca que \fBdpkg\-shlibs\fP lea la información sobre dependencias con bibliotecas compartidas desde \fIfichero\-shlibs\-local\fP en vez de \fBdebian/shlibs.local\fP. .TP \fB\-T\fP\fIfichero\-variables\-sustitución\fP Escribe las variables de sustitución en \fIfichero\-sustitución\-variables\fP; por omisión \fBdebian/substvars\fP. .TP \fB\-v\fP Activa el modo informativo. Se muestran numerosos mensajes que explican las acciones de \fBdpkg\-shlindeps\fP. .TP \fB\-x\fP\fIpaquete\fP 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. .TP \fB\-S\fP\fIdirectorio\-compilación\-paquete\fP Analiza el \fIdirectorio\-compilación\-paquete\fP 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. .TP \fB\-\-ignore\-missing\-info\fP 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. .TP \fB\-\-warnings=\fP\fIvalor\fP \fIvalor\fP es un campo de bit que define el conjunto de avisos que \fBdpkg\-shlibdeps\fP puede mostrar. Bit 0 (valor=1) activa el aviso «symbol \fIsym\fP used by \fIbinary\fP 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 «\fIbinary\fP shouldn't be linked with \fIlibrary\fP». El \fIvalor\fP predefinido es 3: los dos primeros avisos están activados por omisión, y no el último. Defina el \fIvalor\fP con 7 si desea que todos los avisos estén activos. .TP \fB\-\-admindir=\fP\fIdirectorio\fP Cambia el directorio con la base de datos de \fBdpkg\fP. Por omisión es \fI/var/lib/dpkg\fP. .TP \fB\-?\fP, \fB\-\-help\fP Muestra el modo de uso y termina. .TP \fB\-\-version\fP Muestra la versión y termina. . .SH ADVERTENCIAS Debido a que \fBdpkg\-shlibdeps\fP 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. .TP \fBsymbol\fP\fI sym\fP\fB used by \fP\fIbinary\fP\fB found in none of the libraries.\fP El símbolo indicado no se encontró en las bibliotecas enlazadas con el binario. Posiblemente, \fIbinario\fP es una biblioteca, y necesita estar enlazado con una biblioteca adicional durante el proceso de construcción (opción \fB\-l\fP\fIbiblioteca\fP del enlazador). .TP \fIbinary\fP\fB contains an unresolvable reference to symbol \fP\fIsym\fP\fB: it's probably a plugin\fP El símbolo indicado no se ha encontrado en las bibliotecas enlazadas con el binario. Probablemente, el \fIbinario\fP 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. .TP \fBpackage could avoid a useless dependency if \fP\fIbinary\fP\fB was not linked against \fP\fIlibrary\fP\fB (it uses none of the library's symbols)\fP Ninguno de los \fIbinarios\fP enlazados con la \fIbiblioteca\fP 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). .TP \fBpackage could avoid a useless dependency if \fP\fIbinaries\fP\fB were not linked against \fP\fIlibrary\fP\fB (they uses none of the library's symbols)\fP Idéntico al aviso anterior, pero para varios binarios. .TP \fIbinary\fP\fB should not be linked against \fP\fIlibrary\fP\fB (it uses none of the library's symbols)\fP El \fIbinario\fP 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. .SH FALLOS \fBdpkg\-shlibdeps\fP 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.\fIx\fP). Una biblioteca privada (como una extensión) no debería tener un «SONAME», y por ello no necesita información de versión. .TP \fBcouldn't find library \fP\fIlibrary\-soname\fP\fB needed by \fP\fIbinary\fP\fB (its RPATH is '\fP\fIrpath\fP\fB')\fP El \fIbinario\fP utiliza una biblioteca llamada \fIsoname\-biblioteca\fP, pero \fBdpkg\-shlibdeps\fP ha sido incapaz de encontrar la biblioteca. \fBdpkg\-shlibdeps\fP 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 públicos estándar (/lib, /usr/lib, /lib32, /usr/lib32, /lib64, /usr/lib64). Después revisa esos directorios en el árbol de construcción del paquete del binario analizado, en los árboles de construcción de los paquetes indicados con la opción de línea de órdenes «\-S», en otros árboles de construcción de paquetes que contienen el fichero «DEBIAN/shlibs» o «DEBIAN/symbols», y por último en el directorio raíz. Este error se muestra cuando la biblioteca no se encuentra en ninguno de estos directorios. 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. .TP \fBno dependency information found for \fP\fIlibrary\-file\fP\fB (used by \fP\fIbinary\fP\fB).\fP \fBdpkg\-shlibdeps\fP encontró la biblioteca que \fIbinario\fP necesita en \fIfichero\-biblioteca\fP, 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 \fBdpkg \-S \fP\fIfichero\-biblioteca\fP. 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 \fBdpkg\-shlibdeps\fP). 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. \fBdpkg\-shlibdeps\fP intenta evitar esto usando un nombre canónico (con \fBrealpath\fP(3)), pero no siempre funciona. Siempre es mejor limpiar el «RPATH» del binario para evitar problemas. Ejecutar \fBdpkg\-shlibdeps\fP 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. .SH "VÉASE TAMBIÉN" \fBdeb\-shlibs\fP(5), \fBdeb\-symbols\fP(5), \fBdpkg\-gensymbols\fP(1). .SH "TRADUCTOR" Rudy Godoy , Rubén Porras , Bruno Barrera C. , Carlos Izquierdo , Esteban Manchado y NOK. Debian L10n Spanish . .br Revisiones por Santiago Vila , Javier Fernández\-Sanguino, Rubén Porras, Luis Uribe y Omar Campagne.