Como eu crio um PPA?

109

Como faço para criar meu próprio PPA personalizado para compartilhar com a comunidade Ubuntu? Estou tentando criar meu próprio conjunto de pacotes personalizados e gostaria de compartilhá-lo com a comunidade.

    
por Jebeld17 24.10.2011 / 17:54

3 respostas

84

Usando um arquivo pessoal de pacotes ( PPA ), você pode distribuir software e atualizações diretamente para usuários do Ubuntu. Crie seu pacote fonte, carregue-o e o Launchpad criará binários e, em seguida, hospedará-os em seu próprio repositório apt.

Aqui está uma explicação detalhada .

    
por hhlp 24.10.2011 / 18:01
69

Como criar um arquivo .deb

Este é um tutorial sobre como criar um arquivo .deb básico a partir de um determinado script de amostra. Neste tutorial, primeiro criamos um exemplo de programa no bash que mostra apenas 'OLÁ DO PROGRAMA'. Então criamos um arquivo de controle para o programa para fazer um instalador debian. Finalmente eles são empacotados em um arquivo .deb .

Etapas:

  1. crie um programa de exemplo no bash

    mkdir "$HOME/create_deb/pgmdir"
    gedit "$HOME/create_deb/pgmdir/zenity_hello.sh"
    

    cole o seguinte código nele

    #!/bin/bash
    echo 'HELLO FROM PROGRAM' | zenity --text-info 
    
  2. Tornar o programa executável

    chmod +x "$HOME/create_deb/pgmdir/zenity_hello.sh"
    
  3. Crie um arquivo de controle para o pacote debian

    Crie um arquivo chamado control dentro da pasta DEBIAN

    mkdir "$HOME"/create_deb/DEBIAN
    gedit "$HOME"/create_deb/DEBIAN/control
    

    e cole os detalhes a seguir

    Package: hellodeb
    Version: 0.1
    Architecture: all
    Maintainer: totti
    Installed-Size: 6
    Depends: zenity, bash
    Section: testing
    Priority: optional
    Homepage: http://askubuntu.com
    Description: This is my first debian package.
     Guided by Totti Torvalds.
     In Description new line start with a space.
    

    Você pode editar o conteúdo, se quiser. Leia mais sobre o formato deste arquivo aqui e aqui .

  4. Crie o script postinst , que é executado imediatamente após a instalação do pacote

    gedit "$HOME"/create_deb/DEBIAN/postinst
    

    depois, cole

    #!/bin/sh
    set -e
    echo 'Installing program : zenity_hello.sh ......' | zenity --text-info
    

    e torná-lo executável

    chmod +x "$HOME/create_deb/DEBIAN/postinst"
    
  5. Crie o script prerm , que é executado antes da remoção do pacote

    #!/bin/sh
    set -e
    echo 'Removing program : zenity_hello.sh ......' | zenity --text-info
    

    e torná-lo executável

    chmod +x "$HOME/create_deb/DEBIAN/prerm"
    
  6. Crie estrutura de pacotes e copie programas, dados, etc. Crie uma estrutura de seus programas instalados e seus dados. Neste exemplo, colocamos o arquivo em /bin .

    mkdir -p "$HOME"/create_deb/bin
    cp "$HOME/create_deb/pgmdir/zenity_hello.sh" "$HOME/create_deb/bin/zenity_hello"
    
  7. Compile o arquivo .deb .

    dpkg-deb --build "$HOME"/create_deb .
    

    O . nomeará automaticamente o arquivo .deb com a versão, o arco etc. Ou o seu nome personalizado

    dpkg-deb --build "$HOME"/create_deb "$HOME"/create_deb/hellodeb.deb
    

    Ou se você criar o arquivo .deb com

    debuild -k'your GPG key here' -S
    

    então você pode enviá-lo para o Ubuntu Launchpad com

    dput ppa:<lp-username>/<ppa-name> packet-source.changes
    

    como descrito aqui (fonte: crie um pacote .deb a partir de scripts ou binários )

  8. Instale o pacote .deb recém-criado. Você pode abri-lo com software-center , mas pode não permitir a instalação. Então, eu recomendo usar o gerenciador de pacotes gdebi .

    sudo apt-get install gdebi
    
    gdebi "$HOME"/create_deb/hellodeb.deb
    

    Agora você pode instalá-lo. Durante a instalação, você verá um diálogo do gtk

      

    Instalando o programa: zenity_hello.sh ......

  9. Após instalar, abra um terminal e digite zenity_hello . Se o programa estiver instalado corretamente e tudo estiver OK, você verá um diálogo gtk

      

    OLÁ DO PROGRAMA

  10. Removendo o pacote

    sudo apt-get remove zenity_hello
    

Publique seu repositório em 2 minutos

Como o OP quer uma forma simples de publicar seus pacotes, estou dando um truque fácil.

requisito: conta dropbox (ou qualquer outro serviço, por ex. github ) com uma pasta pública.

  1. Crie uma pasta dentro da sua pasta Public-Dropbox onde você coloca seus arquivos * .deb:

    mkdir ~/Dropbox/Public/deb-packages  
    

    ou crie essa pasta em outro lugar e coloque um link simbólico em sua pasta Pública:

    mkdir ~/deb-packages
    cd ~/Dropbox/Public
    ln -s ~/deb-packages/ deb-packages
    
  2. Entre nessa pasta e crie um script que, quando executado, cria o Packages.gz, contendo todas as informações necessárias sobre seus pacotes deb. criar:

    gedit import.sh  
    

    coloque isso aqui:

    #!/bin/bash
    dpkg-scanpackages . /dev/null |gzip > Packages.gz
    

    torne-o executável:

    chmod  x import.sh
    
  3. Copie alguns arquivos * .deb para a pasta. Pode ser o seu próprio ou algum que não esteja disponível através de outros repositórios. Então vá para a pasta e execute o script que colocamos lá:

    cd ~/deb-packages/ 
    ./import.sh
    

    Isso deve criar o chamado arquivo Packages.gz , que o apt procura saber quais pacotes estão localizados neste repositório.

É isso

Agora, aguarde até que o Dropbox sincronize a pasta e pegue o URL público do Packages.gz . Deve ser algo como isto:

http://dl.getdropbox.../Packages.gz

Livre-se do final desse link, coloque mais algumas palavras e agora você pode usar e preencher a seguinte linha para o sources.list:

deb http://dl.getdropbox.../deb-packages ./

É isso que você tem seu próprio repositório deb em execução. Sempre sincronizado localmente, mas disponível para qualquer pessoa, a qualquer hora, em qualquer lugar.

NOTA: dpkg-scanpackages está disponível em dpkg-dev
referência

    
por totti 09.07.2014 / 13:16
2

Você precisará de uma conta do Launchpad.net para criar um PPA. Basta clicar no seu usuário no Launchpad (clique no seu nome no canto superior esquerdo) e crie um PPA. Você pode ter que primeiro assinar o Código de Conduta e ter uma chave GPG registrada em sua conta.

    
por GTRsdk 24.10.2011 / 18:03

Tags