Pergunta do arquivo de controle de pacotes do Debian
-
22-09-2019 - |
Pergunta
Estou tentando criar um pacote Debian para um aplicativo Java.
No meu pacote, há um .jar
arquivo que é executável, um script que executará este arquivo jar e um .so
Arquivo para FMOD. Eu li este tutorial.
No arquivo de controle, existe um campo 'Depende' que basicamente descreve os pacotes que precisam ser instalados para instalar meu aplicativo. Minha pergunta é: como encontro quais pacotes são necessários para o meu aplicativo? Eu segui as instruções no tutorial para um dos arquivos .So e comprei o seguinte:
$ dpkg -S libfmodex64-4.28.09.so
dpkg: *libfmodex64-4.28.09.so* not found.
Além disso, meu aplicativo exige que o Java 1.5 seja instalado para que ele seja executado. Como especificar isso no meu pacote Debian?
Solução
Eu recomendo fortemente a criação de seu pacote a partir da fonte na infraestrutura de embalagens do Debian. Tudo será bem cuidado automaticamente se você usar a aula de formigas em CDBS.
Se você insistir em montar um binário .deb
só, equives é muito menos hackish do que o método descrito pelo seu documento.
Outras dicas
Você vai querer obter o nome canônico da sua biblioteca:
apt-cache search libname
Tome cuidado para observar a nomenclatura no final do pacote. Você não quer especificar um específico Versão no arquivo de controle, apenas a versão mais antiga da biblioteca adequada para o seu aplicativo.
Você então usaria canonical_libname >= major.minor
, que permite que o sistema decida se você tem (ou pode atualizar) a versão da biblioteca que pode suportar seu aplicativo. Se você esculpir isso a tempo, ou seja, especificando a versão completa da sua biblioteca atual, você quebrará no futuro.
Por exemplo, se você especificar libfoo-1.2.34
e versões futuras do navio Debian libfoo-2.3.45
, seu pacote não se instala, porque acha que você tem uma versão incompatível do Libfoo.