Qual é o Guia de Empacotamento Debian mais simples?

150

Eu fui ao wiki do Ubuntu, mas fiquei confuso, havia muitas maneiras. Por favor, me conte um guia fácil para empacotar o Debian.

akshatj
fonte
3
Deseja criar pacotes para seu próprio uso, em um computador específico ou para outros usarem?
andol
1
Qual idioma é o software que você gostaria de empacotar?
Umang
4
Eu tenho o mesmo problema. A maioria dos tutoriais e guias começa com "get the upstream tarball". A partir deste ponto, estamos perdidos. Temos uma coisa simples que queremos implantar, não há tarball upstream, não há código fonte. é apenas um arquivo de guerra, alguns scripts e alguns arquivos jar. O que é a bola tar a montante sobre todos, e alguém viu um guia não usar um, que é abrangente (por exemplo, lida com as questões de utilizadores)
John pouco
2
Eu vou para o que eu postei sobre StackOVerflow.
Se você deseja criar "pacotes virtuais" (agrupar dependências juntos), vale a pena dar uma olhada no equivs-build
Rolf

Respostas:

103

Este é um bom HOWTO para criar um .debarquivo básico . É adequado para criar .debarquivos para uso pessoal, mas não é rigoroso o suficiente se você quiser que o pacote seja incluído no Debian / Ubuntu - para isso, leia o Guia do Novo Mantenedor da Debian e / ou o Guia de Empacotamento do Ubuntu (que eu acredito que você ' já tentei).

Uma boa ferramenta para verificar a .debconformidade do seu arquivo é lintian(instalável nos repositórios).

Havia duas sessões aqui nas salas de chat Ask Ubuntu.

Noções básicas de empacotamento no Ubuntu (empacotamento: parte 1)

Empacotamento Ubuntu para PPAs da barra de ativação (Empacotamento: Parte 2)

dv3500ea
fonte
Isso compila bem o que é necessário para começar com o empacotamento, mas no COMO FAZER, perco informações para incluir o ícone do aplicativo no arquivo deb (e não encontrei nada sobre isso em nenhum outro lugar). Alguma dica de como fazer isso?
precisa saber é
14

Com quais partes você está tendo problemas? Embora complicado, o guia parecia bastante claro quando eu o seguia.

Resumo rápido:

  • Extrair fonte .tar.gz
  • Corre dh_make
  • Editar arquivos debian
  • Execute debuild
Nathan Osman
fonte
3
O que me confunde é: esse processo é o mesmo, independentemente do idioma de origem ou da estrutura de diretórios?
Seth
9
O ponto crucial é que não temos um .tar.gz. queremos empacotar um aplicativo que escrevemos. Nenhum guia parece cobrir isso, todos eles começam com um "tarball a montante" que não temos.
John
@JohnLittle esta resposta pode ser útil: askubuntu.com/a/27731/5
Nathan Osman
1
E as embalagens repetidas a longo prazo? Eu tenho que sempre fazer um processo de embalagem tão longo e complicado?
Kravemir
Se o usuário não tiver uma chave GPG , debuildfalhará com " erro debsign: gpg ocorreu! Interrompendo .... ".
AGC
10

Você pode até usar dpkg-debpara criar pacotes simples.

Aqui está um bom tutorial do Ubuntuforums .

Searock
fonte
5

A maneira mais fácil de empacotar algo é usar o checkinstall .

e8johan
fonte
4
checkinstall fornece uma maneira rápida de compilar o pacote binário debin (.deb) a partir de um método de instalação de origem. No entanto, ele não fornece um pacote debian adequado (construído a partir de um pacote fonte debian).
João Pinto
OH cara .. eu tive que usar isso ANTES de compilar .. isso é como horas de compilação.
Piotr Kula
5

Originalmente publicado no StackOverFlow , este guia é para software pré-compilado ou interpretado:

A maneira correta de construir um pacote deb está usando, dpkg-buildpackagemas às vezes é um pouco complicado. Em vez disso, você pode usar dpkg -b <folder>e ele criará seu pacote Debian.

Estes são os princípios básicos para criar um pacote Debian dpkg -b <folder>com qualquer binário ou qualquer tipo de script que seja executado automaticamente sem a necessidade de compilação manual (Python, Bash, Pearl, Ruby):

  1. Crie os arquivos e pastas para recriar a seguinte estrutura:

    ProgramName-Version/
    ProgramName-Version/DEBIAN
    ProgramName-Version/DEBIAN/control
    ProgramName-Version/usr/
    ProgramName-Version/usr/bin/
    ProgramName-Version/usr/bin/your_script
    

    Os scripts colocados em /usr/bin/são chamados diretamente do terminal, observe que eu não adicionei uma extensão ao script. Você também pode notar que a estrutura do pacote deb será a estrutura do programa, uma vez instalado. Portanto, se você seguir essa lógica se o seu programa tiver um único arquivo, poderá colocá-lo diretamente abaixo ProgramName-Version/usr/bin/your_script, mas se tiver vários arquivos, deverá colocá-los abaixo ProgramName-Version/usr/share/ProgramName/all your filese colocar apenas um arquivo abaixo /usr/bin/que chamará seus scripts de/usr/share/ProgramName/

  2. Altere todas as permissões da pasta para raiz:

     chown root:root -R /path/to/ProgramName-Version  
    
  3. Altere as permissões do script:

     chmod 0755 /path/to/the/script
    
  4. Finalmente, você pode executar: dpkg -b /path/to/the/ProgramName-Versione seu pacote deb será criado! (Você também pode adicionar os scripts post / pre inst e tudo o que quiser, ele funciona como um pacote Debian normal)

Aqui está um exemplo do controlarquivo Você só precisa copiar / colar em um arquivo vazio chamado "control" e colocá-lo na pasta DEBIAN.

Package: ProgramName
Version: VERSION
Architecture: all
Maintainer: YOUR NAME <EMAIL>
Depends: python2.7, etc , etc,
Installed-Size: in_kb
Homepage: http://foo.com
Description: Here you can put a one line description.This is the short Description.
 Here you put the long description, indented by 1 space.
karel
fonte
3

Não, o guia de embalagem mais simples e claro do mundo é

Empacotando aplicativos Java para Ubuntu e outros Debian

Alguns dias atrás, para meu primeiro aplicativo, criei o pacote DEB seguindo este tutorial. Muito claro e meu aplicativo foi empacotado com sucesso. Sim, pelo menos é mais simples para mim.

Você pode compará-lo com o Debian Packaging Guide.

Ade Malsasa Akbar
fonte
3
"Simples" não significa "completo". Existem muitas políticas que um tutorial básico de empacotamento .deb não abordará para diferentes tipos de programas e, portanto, empacotar não é tão fácil quanto apenas um "tutorial simples".
Thomas Ward
definitivamente simples. Isso começou e eu pude criar meu primeiro pacote debian em questão de minutos. Ainda há muitos detalhes para lidar (mensagens ruins de qualidade de pacote do lintian), mas um excelente ponto de partida.
Atmelino