blob: 8380ee3498330e4fb9552bba79c48f9649679dfe [file] [log] [blame]
.\"*******************************************************************
.\"
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
.TH dpkg\-shlibdeps 1 2011\-08\-14 "Proyecto Debian" "Herramientas de dpkg"
.SH NOMBRE
dpkg\-shlibdeps \- Genera dependencias de bibliotecas compartidas de
sustitución de variables
.
.SH SINOPSIS
\fBdpkg\-shlibdeps\fP [\fIoption\fP...] [\fB\-e\fP]\fIexecutable\fP [\fIoption\fP...]
.
.SH DESCRIPCIÓN
\fBdpkg\-shlibdeps\fP calculates shared library dependencies for executables
named in its arguments. The dependencies are added to the substitution
variables file \fBdebian/substvars\fP as variable names
\fBshlibs:\fP\fIdependencyfield\fP where \fIdependencyfield\fP is a dependency field
name. Any other variables starting with \fBshlibs:\fP are removed from the
file.
.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 invoca \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 "Output from \(lq\fBdpkg\-query \-\-control\-path\fP \fIpackage\fP symbols\(rq"
Package\-provided shared library dependency information. Unless overridden
by \-\-admindir, those files are located in /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 usar 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 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.
.IP "Output from \(lq\fBdpkg\-query \-\-control\-path\fP \fIpackage\fP shlibs\(rq"
Package\-provided shared library dependency information. Unless overridden
by \-\-admindir, those files are located in /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\-sust\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 usar 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 usar 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 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.
.TP
\fB\-\-warnings=\fP\fIvalor\fP
\fIvalor\fP es un campo de bit que define el conjunto de avisos que
\fBdpkg\-shlibdeps\fP puede emitir. 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 «dependency on \fIlibrary\fP could be avoided», 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, 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\-h\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
\fBdependency on \fP\fIlibrary\fP\fB could be avoided if \fP\fIbinaries\fP\fB were not uselessly linked against it (they use none of its 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
\fIbinary\fP\fB shouldn't be linked with \fP\fIlibrary\fP\fB (it uses none of its 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
The \fIbinary\fP uses a library called \fIlibrary\-soname\fP but \fBdpkg\-shlibdeps\fP
has been unable to find the library. \fBdpkg\-shlibdeps\fP 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.
.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 invocar \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.
Invocar \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 AUTORES
Copyright \(co 1995\-1996 Ian Jackson
.br
Copyright \(co 2000 Wichert Akkerman
.br
Copyright \(co 2006 Frank Lichtenheld
.br
Copyright \(co 2007\-2008 Rapha\[:e]l Hertzog
.sp
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.
.SH "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>.
.br
Revisiones por Santiago Vila <sanvila@unex.es>,
Javier Fernández\-Sanguino, Rubén Porras,
Luis Uribe y Omar Campagne.