Como crio meu próprio PPA personalizado para compartilhar com a comunidade Ubuntu? Estou tentando criar meu próprio conjunto de pacotes personalizado e realmente gostaria de compartilhá-lo com a comunidade.
Usando um PPA (Personal Package Archive ), você pode distribuir software e atualizações diretamente aos usuários do Ubuntu. Crie seu pacote de origem, faça o upload e o Launchpad criará binários e depois os hospedará em seu próprio repositório apt.
FWIW Pude ativar meu PPA antes de assinar o código de conduta.
Sparhawk 03/04
2
Esta é a melhor resposta. Você acabou de saber como criar um PPA. A resposta abaixo (de totti) não é um PPA, mas é um repositório público. Os dois são diferentes, apesar de (potencialmente) realizarem a mesma coisa. Ele até diz na primeira linha de sua resposta: "Esta pergunta tem uma resposta bem escrita e aceita. Como o OP quer uma maneira simples de publicar seus pacotes, estou dando um hack fácil". Como você prefere o hack fácil, não é a melhor resposta.
lbaile200
OK, mas nenhum dos links nesta resposta realmente descreve como fazê-lo do zero. todos os links são feitos para desenvolvedores, que já estão no material muito mais
rubo77
11
@ rubo77 - o "como criar" é estritamente amplo demais para ser responsável. Tudo depende do que você está tentando empacotar. De fato, cada uma das etapas da resposta acima pode ser um Q individual com uma boa resposta detalhada cada.
fossfreedom
11
A nova resposta de Totti já é ótima
rubo77
86
Como criar um arquivo .deb
Este é um tutorial sobre como criar um arquivo .deb básico a partir de um determinado script de exemplo. Neste tutorial, primeiro criamos um programa de amostra no bash que mostra apenas 'OLÁ DO PROGRAMA'. Em seguida, criamos um arquivo de controle para o programa para criar um instalador debian. Finalmente, eles são empacotados em um .debarquivo.
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 .
Criar postinstscript, 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"
Criar prermscript, 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"
Faça a estrutura do pacote e copie programas, dados, etc.
Crie uma estrutura dos seus programas instalados e de seus dados. Neste exemplo, colocamos o arquivo em /bin.
Instale o .debpacote recém-criado . Você pode abri-lo com, software-centermas pode não permitir a instalação. Então, eu recomendo usar o gdebigerenciador de pacotes.
Agora você pode instalá-lo. Durante a instalação, você verá um diálogo gtk
Instalando o programa: zenity_hello.sh ......
Após a instalação, abra um terminal e digite zenity_hello. Se o programa estiver instalado corretamente e tudo estiver bem, você deverá ver um diálogo gtk
OLÁ DO PROGRAMA
Removendo o pacote
sudo apt-get remove zenity_hello
Publique seu repositório em 2 minutos
Como o OP quer uma maneira simples de publicar seus pacotes, estou dando um hack fácil.
requisito: dropbox (ou qualquer outro serviço, por exemplo, github ) conta com uma pasta pública.
Crie uma pasta dentro da sua pasta pública-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 na sua pasta Pública:
mkdir ~/deb-packages
cd ~/Dropbox/Public
ln -s ~/deb-packages/ deb-packages
Vá para essa pasta e crie um script que, quando executado, crie o Packages.gz, contendo todas as informações necessárias sobre seus pacotes deb. crio:
Copie alguns arquivos * .deb para a pasta. Pode ser seu ou alguns que não estão disponíveis em outros repositórios. Então entre na 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 aí
Agora, aguarde o Dropbox para sincronizar a pasta e pegue o URL público noPackages.gz . Deve ser algo como isto:
http://dl.getdropbox.../Packages.gz
Livre-se do final desse link, coloque mais algumas palavras nele 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 rodando. Sempre sincronizado localmente, mas disponível para qualquer pessoa, a qualquer hora e em qualquer lugar.
NOTA:dpkg-scanpackages está disponível na dpkg-dev
referência
Se você construir o arquivo .deb na etapa 7. com debuild -us -uc -k'your GPG key here'então você pode carregá-lo com dput ppa:<lp-username>/<ppa-name> packet-source.changesa Launchpad como descrito aqui (fonte: criar um pacote .deb a partir de scripts ou binários )
rubo77
@ rubo77, Obrigado, seja bem-vindo a adicionar essas informações no final da minha resposta.
Totti
11
OK, acabei de descobrir, também descobri, que você precisa de outros parâmetros para o Launchpad não criar o arquivo .deb agora (apenas -S): debuild -k'your GPG key here' -Sporque o Launchpad criará o arquivo deb (se não for rejeitado) - o que seria o `-us -uc`?
rubo77
2
Você precisará de uma conta no Launchpad.net para criar um PPA. Basta clicar no seu usuário no Launchpad (clique no seu nome no canto superior esquerdo) e criar um PPA. Pode ser necessário primeiro assinar o Código de Conduta e ter uma chave GPG registrada em sua conta.
Respostas:
Usando um PPA (Personal Package Archive ), você pode distribuir software e atualizações diretamente aos usuários do Ubuntu. Crie seu pacote de origem, faça o upload e o Launchpad criará binários e depois os hospedará em seu próprio repositório apt.
Aqui está uma explicação detalhada .
fonte
Como criar um arquivo .deb
Este é um tutorial sobre como criar um arquivo .deb básico a partir de um determinado script de exemplo. Neste tutorial, primeiro criamos um programa de amostra no bash que mostra apenas 'OLÁ DO PROGRAMA'. Em seguida, criamos um arquivo de controle para o programa para criar um instalador debian. Finalmente, eles são empacotados em um
.deb
arquivo.Passos:
crie um programa de amostra no bash
cole o seguinte código nele
Tornar o programa executável
Crie um arquivo de controle para o pacote debian
Crie um arquivo nomeado
control
dentro da pastaDEBIAN
e cole os seguintes detalhes
Você pode editar o conteúdo, se quiser. Leia mais sobre o formato deste arquivo aqui e aqui .
Criar
postinst
script, que é executado imediatamente após a instalação do pacotedepois cole
e torná-lo executável
Criar
prerm
script, que é executado antes da remoção do pacotee torná-lo executável
Faça a estrutura do pacote e copie programas, dados, etc.
Crie uma estrutura dos seus programas instalados e de seus dados. Neste exemplo, colocamos o arquivo em
/bin
.Crie o arquivo .deb .
Ele
.
nomeará automaticamente o.deb
arquivo com versão, arco etc. Ou seu nome personalizadoOu se você criar o arquivo .deb com
então você pode enviá-lo para o Ubuntu Launchpad com
como descrito aqui (fonte: crie um pacote .deb a partir de scripts ou binários )
Instale o
.deb
pacote recém-criado . Você pode abri-lo com,software-center
mas pode não permitir a instalação. Então, eu recomendo usar ogdebi
gerenciador de pacotes.Agora você pode instalá-lo. Durante a instalação, você verá um diálogo gtk
Após a instalação, abra um terminal e digite
zenity_hello
. Se o programa estiver instalado corretamente e tudo estiver bem, você deverá ver um diálogo gtkRemovendo o pacote
Publique seu repositório em 2 minutos
Como o OP quer uma maneira simples de publicar seus pacotes, estou dando um hack fácil.
requisito: dropbox (ou qualquer outro serviço, por exemplo, github ) conta com uma pasta pública.
Crie uma pasta dentro da sua pasta pública-Dropbox onde você coloca seus arquivos * .deb:
ou crie essa pasta em outro lugar e coloque um link simbólico na sua pasta Pública:
Vá para essa pasta e crie um script que, quando executado, crie o Packages.gz, contendo todas as informações necessárias sobre seus pacotes deb. crio:
coloque isso nele:
torne-o executável:
Copie alguns arquivos * .deb para a pasta. Pode ser seu ou alguns que não estão disponíveis em outros repositórios. Então entre na pasta e execute o script que colocamos lá:
Isso deve criar o chamado arquivo Packages.gz , que o apt procura saber quais pacotes estão localizados neste repositório.
É isso aí
Agora, aguarde o Dropbox para sincronizar a pasta e pegue o URL público no
Packages.gz
. Deve ser algo como isto:Livre-se do final desse link, coloque mais algumas palavras nele e agora você pode usar e preencher a seguinte linha para o sources.list:
É isso que você tem seu próprio repositório deb rodando. Sempre sincronizado localmente, mas disponível para qualquer pessoa, a qualquer hora e em qualquer lugar.
NOTA:
dpkg-scanpackages
está disponível nadpkg-dev
referência
fonte
releases/
ver github.com/rubo77/mouse-speed/blob/master/release/...debuild -us -uc -k'your GPG key here'
então você pode carregá-lo comdput ppa:<lp-username>/<ppa-name> packet-source.changes
a Launchpad como descrito aqui (fonte: criar um pacote .deb a partir de scripts ou binários )debuild -k'your GPG key here' -S
porque o Launchpad criará o arquivo deb (se não for rejeitado) - o que seria o `-us -uc`?Você precisará de uma conta no Launchpad.net para criar um PPA. Basta clicar no seu usuário no Launchpad (clique no seu nome no canto superior esquerdo) e criar um PPA. Pode ser necessário primeiro assinar o Código de Conduta e ter uma chave GPG registrada em sua conta.
fonte