Como obter o arquivo .so para aparecer no pacote?

1

Como muitos de vocês já sabem, estou construindo um pacote:)

Estou tão perto de terminar isso, então posso fazer o upload para o meu PPA, mas ainda há um pequeno problema: a biblioteca compartilhada (arquivo .so) não quer entrar no pacote.

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

Source: jsoncpp
Priority: extra
Maintainer: ****** 
Build-Depends: debhelper (>= 7)
Standards-Version: 3.8.3
Section: libs
Homepage: http://jsoncpp.sf.net

Package: jsoncpp-dev
Section: libdevel
Architecture: any
Depends: jsoncpp0 (= ${binary:Version})
Description: JSON parsing library for C++
 jsoncpp is a C++ library that makes it easy to
 read / write JSON data.
 .
 This package contains the development tools necessary
 to create applications that use jsoncpp.

Package: jsoncpp0
Section: libs
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: JSON parsing library for C++
 jsoncpp is a C++ library that makes it easy to
 read / write JSON data.

Agora, o jsoncpp-dev constrói bem e os arquivos de desenvolvimento aparecem no pacote mas a biblioteca compartilhada não aparece em seu pacote.

Veja como o jsoncpp0.dirs se parece:

usr/lib

... e jsoncpp-dev.dirs :

usr/lib
usr/include

Meu Makefile atualizado é aqui .

Por favor, deixe-me saber se você precisar de mais informações.

    
por Nathan Osman 04.08.2010 / 07:08

2 respostas

0

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).

De qualquer forma, funciona agora.

    
por Nathan Osman 04.08.2010 / 07:51
2

Você realmente quer usar o sistema de compilação (scons) que o jsoncpp usa, já que ele provavelmente está bem adaptado para o pacote. Em primeiro lugar, os nomes dos pacotes que você está usando devem ser prefixados com lib, como libjsoncpp0 (supondo que o arquivo resultante seja /usr/lib/libjsoncpp.so.0) Para instalar os arquivos, você precisa ter esses arquivos listados nos arquivos .install, por exemplo, debian / libjsoncpp0.install teria /usr/lib/lib*.so.* para instalar o arquivo correto. O libjsoncpp-dev teria os arquivos em / usr / include / * e /usr/lib/lib*.so

O guia de empacotamento de bibliotecas no link pode ser complexo, mas tem algumas informações importantes sobre o caminho certo para empacotar bibliotecas para que elas se integrem bem no Debian & amp; Ubuntu.

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

    
por ajmitch 04.08.2010 / 07:52