it-swarm-pt.tech

Como obter o arquivo .so para aparecer no pacote?

Como muitos já sabem, estou construindo um pacote :)

Estou tão perto de finalizá-lo para poder carregá-lo no meu PPA, mas ainda há um pequeno problema: a biblioteca compartilhada (arquivo .so) não deseja entrar no pacote.

Ok, aqui está o que eu tenho no meu arquivo de controle:

 Fonte: jsoncpp 
 Prioridade: extra 
 Mantenedor: ****** 
 Depende de compilação: debhelper (> = 7) 
 Padrões -Versão: 3.8.3 
 Seção: libs 
 Página inicial: http://jsoncpp.sf.net 
 
 Pacote: jsoncpp-dev 
 Seção: libdevel 
 Arquitetura: any 
 Depende: jsoncpp0 (= $ {binary: Version}) 
 Descrição: JSON parsing library for C++ 
 Jsoncpp é uma biblioteca C++ isso facilita 
 ler/gravar dados JSON. 
. 
 Este pacote contém as ferramentas de desenvolvimento necessárias 
 para criar aplicativos que usam jsoncpp. 
 
 Pacote: jsoncpp0 
 Seção: libs 
 Arquitetura: qualquer 
 Depende: $ {shlibs: Depends}, $ {misc: Depends} 
 Descrição: biblioteca de análise JSON para C++ 
 Jsoncpp é uma biblioteca C++ que facilita a 
 Leitura/gravação de dados JSON. 

Agora, o jsoncpp-dev é compilado e os arquivos de desenvolvimento aparecem no pacote , mas a biblioteca compartilhada não aparece no pacote.

Aqui está a aparência de jsoncpp0.dirs:

 usr/lib 

... e jsoncpp-dev.dirs:

 usr/lib 
 usr/inclua 

Meu Makefile atualizado é aqui .

Entre em contato se precisar de mais informações.

1
Nathan Osman

Este foi o resultado de um erro bastante grave da minha parte. De alguma forma, jsoncpp0.install foi renomeado para jsoncpp0install (sem o período).

Enfim, funciona agora.

0
Nathan Osman

Você realmente deseja usar o sistema de construção (scons) que o jsoncpp usa, pois provavelmente é bem adaptado ao pacote. Em primeiro lugar, os nomes dos pacotes que você está usando devem ter o prefixo lib, como libjsoncpp0 (assumindo que o arquivo resultante seja /usr/lib/libjsoncpp.so.0) Para instalar os arquivos, você deve listá-los no diretório Os arquivos .install, por exemplo, debian/libjsoncpp0.install teriam /usr/lib/lib*.so.* para instalar o arquivo correto. libjsoncpp-dev teria os arquivos em/usr/include/* e /usr/lib/lib*.so

O guia de empacotamento da biblioteca em http://www.netfort.gr.jp/~dancer/column/libpkg-guide/libpkg-guide.html pode ser complexo, mas possui algumas informações importantes sobre o maneira correta de empacotar bibliotecas para que elas se integrem bem no Debian e Ubuntu.

Além disso, muitas vezes existem pessoas disponíveis no # ubuntu-motu ou no # ubuntu-packaging no irc.ubuntu.com para ajudar com as dúvidas que você possa ter.

2
ajmitch