Como criar um PPA para o programa C ++?

6

Se eu tiver um projeto c ++ / gtkmm criado com o NetBean, como posso fazer um pacote para o PPA a partir disso?

Eu criei a estrutura de arquivos de destino (arquivos * .desktop, iconfile, ui glade).

O binário vai para /opt/extras.ubuntu.com/myagenda/bin/myagenda .

Existe também uma pasta de arquivos glade, que deve ir para /opt/extras.ubuntu.com/myagenda/bin/myagenda/ui .

O arquivo da área de trabalho vai para /usr/share/applications/myagenda.desktop .  O ícone vai para /usr/share/icons/hicolor/scalable/apps/myagenda.svg

Como você pode ver, há apenas um pequeno número de arquivos.

Agora, como gerenciar tudo isso, criar um pacote no PPA, que sabe onde e como colocar esses arquivos em seus destinos?

├── opt
│   └── extras.ubuntu.com
│       └── myagenda
│           ├── bin
│           │   └── myagenda
│           └── ui
│               ├── item_btn_delete.png
│               ├── item_btn_edit.png
│               ├── myagenda.png
│               ├── myagenda.svg
│               ├── reminder.png
│               └── ui.glade
└── usr
    └── share
        ├── applications
        │   └── myagenda.desktop
        └── icons
            └── hicolor
                └── scalable
                    └── apps
                        └── myagenda.svg

Atualização:

  1. Criado o arquivo install no diretório debian com destinos:

    data/myagenda /opt/extras.ubuntu/com/myagenda/bin
    data/ui/* /opt/extras.ubuntu/com/myagenda/ui
    data/myagenda.desktop /usr/share/applications
    data/myagenda.svg /usr/share/icons/hicolor/scalable/apps
    

Depois de dpkg-buildpackage , mas para arquitetura amd64. Agora, tentando mudar isso para i386.

    
por piotr 08.07.2012 / 14:54

1 resposta

7

A criação de PPA é muito simples & amp; ao mesmo tempo um processo complexo dependendo da complexidade do pacote (ou seja, binário simples, binário múltiplo ... etc). Mas para uma aplicação simples como a sua MyAgenda, criar um PPA é muito simples.

Primeiro, instale os pacotes necessários.

sudo apt-get install build-essential devscripts ubuntu-dev-tools debhelper dh-make diff patch cdbs quilt gnupg fakeroot lintian pbuilder piuparts . A maioria deles provavelmente já está instalada por padrão.

Agora configure seu & gpg-key & amp; ssh-key Siga as instruções de aqui & amp; aqui .

STEP1: layout do pacote de origem

Agora, vá para a pasta de origem do aplicativo. Aqui está o layout básico do pacote de origem:

 MyAgenda-1.0/
    -- data/
          -- myagenda
          -- myagenda.desktop
          -- myagenda.svg
          --ui
             -- myagenda.glade
             -- otherfiles
    -- debian/
        -- changelog
        -- copyright
        -- compat
        -- rules
        -- control
        -- install

STEP2: conheça sua ID da chave GPG & amp; Formato

Primeira execução:

gpg --list-keys . Ele vai te dar algo assim:

   pub: YOURGPG-KEY
   uid: YOURUSERNAME <YOURMAIL-ID>   #note your username & email.
   sub: --------

STEP3: Crie uma pasta Debian

Para criar a pasta debian & amp; todos os outros arquivos necessários em execução na pasta debian ( use o mesmo nome de usuário e e-mail acima) :

DEBFULLNAME="YOURUSERNAME" dh_make -n -s -e YOUREMAIL-ID . Isso ajudará a assinar o pacote com a chave gpg.

No entanto, isso não criará o arquivo "install" na pasta debian. Crie o arquivo manualmente & amp; salve com os seguintes dados:

        data/myagenda /opt/extras.ubuntu/com/myagenda/bin
        data/ui/* /opt/extras.ubuntu/com/myagenda/ui
        data/myagenda.desktop /usr/share/applications
        data/myagenda.svg /usr/share/icons/hicolor/scalable/apps

STEP4: atualizar o registro de alterações

Para atualizar o changelog, execute:

dch -i

Aqui está um changelog de amostra:

package (version) distribution; urgency=urgency

 * change details
   more change details
 * even more change details

 -- maintainer name <email address>[two spaces]  Sun, 8 July 2012 18:14:08 +0530

Verifique se o formato acima está preservado. Quando terminar de editar, pressione CTRL + O para escrever. parte .dch & amp; sobrescrever changelog arquivo.Pressione CTRL + X para sair.

Você pode querer excluir arquivos .ex extras em debian.Enter na pasta debian & amp; excluir .ex & amp; .EX arquivos.

cd debian
rm *.ex *.EX

STEP5: criar pacote DEB

Em seguida, para criar o pacote deb:

debuild --no-tgz-check # Optional.it não verificará o tarball de origem.

ETAPA 6: Fazer upload para o PPA

Para fazer upload do pacote de origem para um PPA, você deve executar:

debuild -S

O que o sinalizador -S faz é dizer ao debuild para construir um pacote fonte usando outro script, o dpkg-buildpackage, junto com o fakeroot, que nos concede privilégios de root falsos ao fazer o pacote. Ele pegará o arquivo .orig.tar.gz e produzirá um .diff.gz (a diferença entre o tarball original do autor e o diretório que criamos, debian / e seu conteúdo) e um arquivo .dsc que tem a descrição e md5sums para o pacote fonte. Os arquivos .dsc e * _source.changes (usados para fazer o upload do pacote fonte) são assinados usando sua chave GPG.

debuild -S criará um arquivo source.changes fora do diretório de origem. Vá para a barra de lançamento & amp; crie um PPA. Agora carregue o source.changes para esse PPA (( altere o nome do arquivo de acordo ):

dput ppa:YOUR-LAUNCHPAD-USERNAME/myagenda myagenda-1.0-ubuntu1.changes 

FEITO!

Notas:

Se você quiser fazer o upload de um pacote para várias versões do ubuntu, obtenha ajuda de aqui .

Fontes: Wiki do Guia Completo de Embalagem .

    
por Khurshid Alam 08.07.2012 / 18:07