- bookworm 13.11.4
- bookworm-backports 13.19~bpo12+1
- testing 13.20
- unstable 13.20
DH_MAKESHLIBS(1) | Debhelper | DH_MAKESHLIBS(1) |
NOME¶
dh_makeshlibs - cria automaticamente o ficheiro shlibs e chama dpkg-gensymbols
RESUMO¶
dh_makeshlibs [opções do debhelper] [-mmajor] [-V[dependências]] [-n] [-Xitem] [-- parâmetros]
DESCRIÇÃO¶
dh_makeshlibs é um programa debhelper que sonda automaticamente por bibliotecas partilhadas, e gera um ficheiro shlibs para as bibliotecas que encontra.
Também assegura que o ldconfig é invocado durante a instalação e remoção quando encontra bibliotecas partilhadas. Desde o debhelper 9.20151004, isto é feito via um trigger do dpkg. Nas versões mais antigas do debhelper, dh_makeshlibs seria geralmente um script de mantenedor para este objectivo.
Since debhelper 12.3, dh_makeshlibs will by default add an additional udeb line for udebs in the shlibs file, when the udeb has the same name as the deb followed by a "-udeb" suffix (e.g. if the deb is called "libfoo1", then debhelper will auto-detect the udeb if it is named "libfoo1-udeb"). Please use the --add-udeb and --no-add-udeb options below when this auto-detection is insufficient.
If you previously used --add-udeb and is considering to migrate to using the auto-detection new auto-detection feature in 12.3, then please remember to test that the resulting DEBIAN/shlibs files are as expected. There are some known corner cases, where the auto-detection is insufficient. These include when the udeb contains library files from multiple regular deb packages or when the packages do not follow the expected naming convention.
FICHEIROS¶
- debian/pacote.shlibs
- Instala este ficheiro, se presente, no pacote como DEBIAN/shlibs. Se
omitido, o debhelper irá gerar um ficheiro shlibs automaticamente
se detectar quaisquer bibliotecas.
Note que em níveis de compatibilidade 9 e anteriores, este ficheiro era instalado pelo dh_installdeb(1) em vez do dh_makeshlibs.
- debian/pacote.symbols
- debian/pacote.symbols.arquitectura
- Estes ficheiros de símbolos, se presentes, são passados para dpkg-gensymbols(1) para serem processados e instalados. Use os nomes específicos de arch se precisar de disponibilizar ficheiros de símbolos diferentes para diferentes arquitecturas.
OPÇÕES¶
- -mmajor, --major=major
- Em vez de tentar adivinhar o maior número da biblioteca com o objdump, usa o maior número especificado após o parâmetro -m. Isto é muito menos útil do que costumava ser, de volta aos maus velhos tempos quando este programa olhava para os nomes de ficheiro das bibliotecas em vez de usar o objdump.
- -V, -Vdependências
- --version-info, --version-info=dependências
- Se um ficheiro shlibs for gerado por este programa, esta
opção controla que versão será usada na
relação de dependência.
Em compatibilidade 12 e posterior, dh_makeshlibs usa por predefinição -VUpstream-Version. Em compatibilidade 11 e anterior o comportamento predefinido é como -VNone..
A ferramenta dh_makeshlibs pode gerar dependências em três variantes:
- -VUpstream-Version
- A dependência será "packagename (>=
packageversion)". Note que Upstream-Version
é sensível a maiúsculas/minúsculas e tem de
ser escrito exactamente como mostrado aqui.
Esta é uma definição conservativa que assegura sempre que as dependências de bibliotecas partilhadas dos pacotes mais antigos são pelo menos tão justas o quanto precisam de ser (a menos que a biblioteca seja inclinada a alterar a ABI sem actualizar o número de versão do autor).
O reverso da medalha é que os pacotes podem acabar com dependências muito apertadas em alguns casos (note que um ficheiro symbols pode mitigar esta situação). Isto é geralmente uma inconveniência menor temporária e normalmente muito melhor que a falha causada ao esquecer de inserir a informação de dependência.
Este formato explícito foi adicionado no debhelper/11.3. Nas versões anteriores, era usado em vez disto um -V sem nenhuma informação de dependência (e esse formato ainda funciona).
- -VNone
- A dependência será "packagename". Note que
None é sensível a maiúsculas/minúsculas
e tem de ser escrito exactamente como mostrado aqui.
Este formato é na generalidade não seguro sendo a única excepção se o autor original não estender a ABI de maneira nenhuma. No entanto, a maioria dos autores originais melhoram as suas interfaces com o passar do tempo e é recomendado que os pacotes usem -VUpstream-Version (ou um dos outros formatos de -Vdependencies).
Alternativamente, isto pode ser suficiente se (e apenas se) o pacote usar versão por símbolo (veja dpkg-gensymbols(1)) e não compilar nenhum pacote udeb. Note que symbols não são suportados para pacotes udeb, os quais apenas se apoiam em shlibs para manuseamento das dependências.
- -Vpackage-relation
- Neste caso, o valor passado a -V irá ser usado como uma
relação de dependência. O package-relation
deve geralmente ser do formato "algum-nome-pacote
(>= alguma-versão-pacote)". Lembre-se
de incluir o nome do pacote.
Note que o debhelper irá usar o calor como está sem verificações de sanidade ou modificação. Em casos raros e especiais, isto é preciso para gerar uma dependência num pacote diferente daquele que contém a biblioteca.
Quando escolher um valor para esta opção, por favor lembre-se que se o pacote fornecer um ficheiro symbols, então esse é geralmente preferido sobre o ficheiro shlibs para pacotes .deb regulares. Veja dpkg-shlibdeps(1) para mais informação sobre este tópico.
- -n, --no-scripts
- Não adiciona o trigger "ldconfig" mesmo que parece que o pacote possa precisar dele. A opção é chamada --no-scripts por razões históricas pois o dh_makeshlibs previamente gerava scripts do mantenedor que chamavam ldconfig.
- -Xitem, --exclude=item
- Exclui ficheiros que contenham item em qualquer ponto do seu nome de ficheiro ou directório de serem tratados como bibliotecas partilhadas.
- --add-udeb=udeb
- Cria uma linha adicionar para udebs no ficheiro shlibs e usa udeb
como o nome do pacote para o udebs depender dele em vez do pacote da
biblioteca normal.
This is option is only useful for special cases such as when debhelper cannot auto-detect package name of the udeb package, when the udeb will contain libraries from multiple deb packages, or when the udeb contains libraries not present in the deb package.
- --no-add-udeb
- Do not add any udeb lines to the shlibs file. This can be used to disable the default auto-detection of udebs.
- -- params
- Passa params para dpkg-gensymbols(1).
EXEMPLOS¶
- dh_makeshlibs -VNone
- Assumindo que este é um pacote chamado libfoobar1, gera um
ficheiro shlibs que se parece com algo como isto:
libfoobar 1 libfoobar1 - dh_makeshlibs -VUpstream-Version
- Assumindo que a versão actual do pacote é 1.1-3, gera um
ficheiro shlibs que se parece com algo como isto:
libfoobar 1 libfoobar1 (>= 1.1) - dh_makeshlibs -V 'libfoobar1 (>= 1.0)'
- Gera um ficheiro shlibs que se parece com isto:
libfoobar 1 libfoobar1 (>= 1.0)
VEJA TAMBÉM¶
debhelper(7)
Este programa é parte do debhelper.
AUTOR¶
Joey Hess <joeyh@debian.org>
TRADUÇÃO¶
Américo Monteiro
Se encontrar algum erro na tradução deste documento, por favor comunique para Américo Monteiro a_monteiro@gmx.com ou Equipa Debian de Tradução Portuguesa traduz@debianpt.org.
2019-09-14 | 12.6 |