Jak mohu vytvořit PPA?

115

Jak vytvořím vlastní PPA, která se bude sdílet s komunitou Ubuntu? Snažím se vytvořit vlastní balíček balíků a chtěl bych je opravdu sdílet s komunitou.

    
dané Jebeld17 24.10.2011 17:54

3 odpovědi

86

Pomocí archivu osobních balíčků ( PPA ) můžete distribuovat software a aktualizace přímo uživatelům Ubuntu. Vytvořte zdrojový balíček, nahrajte jej a Launchpad vytvoří soubory binárních souborů a poté je uložte do vlastního repozitáře apt.

Zde je podrobné vysvětlení .

    
odpověděl hhlp 24.10.2011 18:01
74

Jak vytvořit soubor .deb

Jedná se o tutoriál o vytvoření základního souboru .deb z daného vzorového skriptu. V tomto tutoriálu nejprve vytvoříme ukázkový program v bash, který právě zobrazí "HELLO FROM PROGRAM". Poté vytvoříme řídicí soubor pro program, abychom vytvořili instalační program debian. Nakonec jsou zabaleny do souboru.deb.

Kroky:

  1. Vytvořte ukázkový program v bash

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

    vložte do něj následující kód

    #!/bin/bash
    echo 'HELLO FROM PROGRAM' | zenity --text-info 
    
  2. Spusťte program

    chmod +x "$HOME/create_deb/pgmdir/zenity_hello.sh"
    
  3. Vytvořte kontrolní soubor balíčku Debian

    Vytvořte soubor s názvemcontrol uvnitř složkyDEBIAN

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

    a vložte následující podrobnosti

    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.
    

    Pokud chcete, můžete upravit obsah. Přečtěte si více o formátu tohoto souboru zde a zde .

  4. Vytvořte skriptpostinst, který se provede bezprostředně po instalaci balíčku

    gedit "$HOME"/create_deb/DEBIAN/postinst
    

    vložte

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

    a je možné jej spustit

    chmod +x "$HOME/create_deb/DEBIAN/postinst"
    
  5. Vytvořte skriptprerm, který se provede před odstraněním balíčku

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

    a je možné jej spustit

    chmod +x "$HOME/create_deb/DEBIAN/prerm"
    
  6. Vytvořte strukturu balíků a kopírujte programy, data atd. .. Vytvořte strukturu nainstalovaných programů a jejich dat. V tomto příkladu jsme soubor umístili na/bin.

    mkdir -p "$HOME"/create_deb/bin
    cp "$HOME/create_deb/pgmdir/zenity_hello.sh" "$HOME/create_deb/bin/zenity_hello"
    
  7. Vytvořte soubor .deb .

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

    . bude automaticky pojmenovat soubor.deb s verzí, obloukem apod. Nebo vaše vlastní jméno

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

    Nebo pokud vytvoříte soubor .deb

    debuild -k'your GPG key here' -S
    

    můžete jej nahrát do Ubuntu Launchpad s

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

    popsáno zde (zdroj: vytvořit balíček .deb ze skriptů nebo binárních souborů

  8. Nainstalujte nově vytvořený balíček.deb. Můžete jej otevřít pomocísoftware-center, ale pravděpodobně vám to neumožňuje instalovat. Proto doporučuji použítgdebi správce balíčků.

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

    Nyní jej můžete nainstalovat. Během instalace byste měli vidět dialog gtk

      

    Instalace programu: zenity_hello.sh ......

  9. Po instalaci otevřete terminál a zadejtezenity_hello. Pokud je program správně nainstalován a vše OK, měli byste vidět dialog gtk

      

    HELLO FROM PROGRAM

  10. Odstranění balíčku

    sudo apt-get remove zenity_hello
    

Publikujte úložiště za 2 minuty

Protože OP chce jednoduchý způsob publikování svých balíčků, dávám snadný hack.

požadavek: schránka (nebo jakákoli jiná služba, např. github ) účet s veřejnou složkou.

  1. Vytvořte složku ve složce Public-Dropbox, kde umístíte soubory * .deb:

    mkdir ~/Dropbox/Public/deb-packages  
    

    nebo vytvořte tuto složku někde jinde a vložte do své veřejné složky symbolický odkaz:

    mkdir ~/deb-packages
    cd ~/Dropbox/Public
    ln -s ~/deb-packages/ deb-packages
    
  2. Přejděte do této složky a vytvořte skript, který při spuštění vytvoří balíček Packages.gz obsahující všechny potřebné informace o balíčcích Deb. vytvořit:

    gedit import.sh  
    

    vložte do něj:

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

    je možné spustit:

    chmod  x import.sh
    
  3. Kopírujte některé soubory * .deb do složky. Mohou být vaše nebo některé, které nejsou k dispozici v jiných úložištích. Potom jděte do složky a proveďte skript, který jsme tam vložili:

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

    Vytvořit takzvaný soubor Packages.gz , který hledá, aby zjistil, které balíčky se nacházejí v tomto úložišti.

To je to

Nyní počkejte, až Dropbox synchronizuje složku a uchopí Public-URL zPackages.gz . Mělo by to vypadat takto:

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

Zbavte se konce tohoto odkazu, dejte mu další slova a nyní můžete použít a zalomit následující řádek pro sources.list:

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

To je to, že máte vlastní deb debet. Vždy synchronizovány místně, ale k dispozici všem, kdykoli a kdekoli.

POZNÁMKA: dpkg-scanpackages je k dispozici zdpkg-dev
odkaz

    
odpověděl totti 09.07.2014 13:16
2

K vytvoření PPA budete potřebovat účet Launchpad.net. Jednoduše klikněte na svého uživatele na Launchpadu (klikněte na své jméno vlevo nahoře) a vytvořte PPA. Pravděpodobně budete muset nejprve podepsat Kodex chování a mít ke svému účtu zaregistrovaný klíč GPG.

    
odpověděl GTRsdk 24.10.2011 18:03