Vraag Hoe maak ik een PPA aan?


Hoe maak ik mijn eigen aangepaste PPA om te delen met de Ubuntu-community? Ik probeer mijn eigen aangepaste pakketset te maken en wil deze graag delen met de community.


114
2017-10-24 15:54


oorsprong


gerelateerd of hetzelfde: askubuntu.com/questions/28562/... - fossfreedom♦
Misschien helpt dit packaging.ubuntu.com/html/getting-set-up.html - rubo77


antwoorden:


Een persoonlijk pakketarchief gebruiken (PPA), kunt u software en updates rechtstreeks aan Ubuntu-gebruikers verspreiden. Maak je bronpakket, upload het en Launchpad zal binaries maken en ze vervolgens hosten in je eigen apt repository.

Hier is een gedetailleerde uitleg.


86
2017-10-24 16:01



FWIW Ik was in staat om mijn PPA te activeren voordat ik de gedragscode ondertekende. - Sparhawk
Dit is het beste antwoord. Er werd u zojuist verteld hoe u een PPA aanmaakt. Het antwoord hieronder (door totti) is geen PPA, maar het is een openbare repository. De twee zijn verschillend, ondanks het (potentieel) bereiken van hetzelfde. Hij zegt zelfs in de eerste regel van zijn antwoord: "Deze vraag heeft een goed geschreven, geaccepteerd antwoord. Omdat de OP een eenvoudige manier wil om zijn pakketten te publiceren, geef ik een eenvoudige hack." Omdat u liever de eenvoudige hack maakt, is dit niet het beste antwoord. - lbaile200
OK, maar geen van de links in dit antwoord beschrijft echt hoe je het vanaf het begin moet doen. alle links hier zijn gemaakt voor ontwikkelaars, die al veel meer in het materiaal zitten - rubo77
@ rubo77 - het "hoe te creëren" is strikt te breed om verantwoording af te leggen. Het hangt er helemaal vanaf wat u probeert in te pakken. Inderdaad, elk van de stappen in het bovenstaande antwoord kan individuele Q's zijn met elk een goed gedetailleerd antwoord. - fossfreedom♦
Het nieuwe antwoord van Totti is al geweldig - rubo77


Hoe een .deb-bestand te maken

Dit is een zelfstudie over het maken van een standaard .deb-bestand van een bepaald voorbeeldscript. In deze tutorial maken we eerst een voorbeeldprogramma in bash die alleen 'HALLO VAN PROGRAMMA' laat zien. Dan creëren we een besturingsbestand voor het programma om een ​​debian-installatieprogramma te maken. Eindelijk zijn ze verpakt in een .deb het dossier.

Stappen:

  1. maak een voorbeeldprogramma in bash

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

    plak de volgende code erin

    #!/bin/bash
    echo 'HELLO FROM PROGRAM' | zenity --text-info 
    
  2. Maak het programma uitvoerbaar

    chmod +x "$HOME/create_deb/pgmdir/zenity_hello.sh"
    
  3. Maak een controlebestand voor het Debian-pakket

    Maak een bestand met de naam control binnen map DEBIAN

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

    en plak de volgende details

    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.
    

    U kunt de inhoud bewerken als u dat wilt. Lees meer over de indeling van dit bestand hier en hier.

  4. creëren postinst script, dat onmiddellijk na installatie van het pakket wordt uitgevoerd

    gedit "$HOME"/create_deb/DEBIAN/postinst
    

    dan plakken

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

    en maak het uitvoerbaar

    chmod +x "$HOME/create_deb/DEBIAN/postinst"
    
  5. creëren prerm script, dat wordt uitgevoerd voordat het pakket wordt verwijderd

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

    en maak het uitvoerbaar

    chmod +x "$HOME/create_deb/DEBIAN/prerm"
    
  6. Maak pakketstructuur en kopieer programma's, gegevens, enz.
    Maak een structuur van uw geïnstalleerde programma's en de bijbehorende gegevens. In dit voorbeeld plaatsen we het bestand op /bin.

    mkdir -p "$HOME"/create_deb/bin
    cp "$HOME/create_deb/pgmdir/zenity_hello.sh" "$HOME/create_deb/bin/zenity_hello"
    
  7. Bouw het .deb het dossier.

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

    De . zal automatisch de naam geven .deb bestand met versie, boog enz. Of uw aangepaste naam

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

    Of als u het .deb-bestand samen met

    debuild -k'your GPG key here' -S
    

    dan kun je het uploaden naar Ubuntu Launchpad met

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

    zoals beschreven hier (bron: maak een .deb-pakket van scripts of binaries)

  8. Installeer de nieuw gecreëerde .deb pakket. Je kunt het openen met software-center maar het zal je misschien niet toestaan ​​om te installeren. Dus ik raad aan om te gebruiken gdebi pakket manager.

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

    Nu kunt u het installeren. Tijdens de installatie zou u een gtk-dialoog 

    Programma installeren: zenity_hello.sh ......

  9. Na het installeren opent u een terminal en typt u zenity_hello. Als het programma correct is geïnstalleerd en alles in orde is, ziet u a gtk-dialoog 

    HALLO VAN PROGRAMMA

  10. Pakket verwijderen

    sudo apt-get remove zenity_hello
    

Publiceer uw repository in 2 minuten

Omdat de OP een eenvoudige manier wil om zijn pakketten te publiceren, geef ik een eenvoudige hack.

vereiste: dropbox (of een andere service, bijvoorbeeld. github) account met een openbare map.

  1. Maak een map in je Public-Dropbox-map waar je je * .deb-bestanden plaatst:

    mkdir ~/Dropbox/Public/deb-packages  
    

    of maak ergens anders die map en plaats een symlink in je openbare map:

    mkdir ~/deb-packages
    cd ~/Dropbox/Public
    ln -s ~/deb-packages/ deb-packages
    
  2. Ga naar die map en maak een script dat, wanneer het wordt uitgevoerd, de Packages.gz maakt, met daarin alle benodigde informatie over uw deb-pakketten. maken:

    gedit import.sh  
    

    zet dit erin:

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

    maak het uitvoerbaar:

    chmod  x import.sh
    
  3. Kopieer enkele * .deb-bestanden naar de map. Kan van uzelf zijn of van sommige die niet beschikbaar zijn via andere opslagplaatsen. Ga dan naar de map en voer het script uit dat we daar hebben geplaatst:

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

    Dat zou de zogenaamde creëren Packages.gz Bestand, dat apt opzoekt om te weten welke pakketten zich in deze repository bevinden.


Dat is het

Wacht nu tot Dropbox de map synchroniseert en de Publieke URL van de Packages.gz. Het zou er ongeveer zo uit moeten zien:

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

Verwijder het einde van die link, voeg er nog wat woorden aan toe en je kunt nu de volgende regel gebruiken en invullen voor de sources.list:

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

Dat is het, je hebt je eigen debrepository draaiende. Altijd lokaal gesynchroniseerd, maar altijd en overal beschikbaar voor iedereen.

NOTITIE:  dpkg-scanpackages is beschikbaar vanaf dpkg-dev
referentie


74
2017-07-09 11:16



+1 Geweldig! dit werkte: ik gebruikte Github en daar de ruwe map voor een map releases/ zien github.com/rubo77/mouse-speed/blob/master/release/... - rubo77
Dit beschrijft een zelf gehoste PPA, maar hoe kan dat Bouw een Ubuntu debian-pakket - rubo77
Als u het .deb-bestand bouwt in stap 7 met debuild -us -uc -k'your GPG key here' dan kun je het uploaden met dput ppa:<lp-username>/<ppa-name> packet-source.changes om Launchpad leuk te vinden hier beschreven (bron: maak een .deb-pakket van scripts of binaries) - rubo77
@ rubo77, bedankt, ik verwelkom je om deze info toe te voegen aan het einde van mijn antwoord. - totti
OK, ik heb net, ik heb ook ontdekt, dat je andere parameters nodig hebt voor Launchpad om het .deb-bestand nu niet aan te maken (alleen -S): debuild -k'your GPG key here' -S omdat Launchpad het deb-bestand zal maken (als het niet wordt geweigerd) - wat zou de `-us -uc` zijn geweest? - rubo77


U hebt een Launchpad.net-account nodig om een ​​PPA aan te maken. Klik gewoon op uw gebruiker op Launchpad (klik linksboven op uw naam) en maak een PPA aan. Mogelijk moet u eerst de gedragscode ondertekenen en moet u een GPG-sleutel laten registreren bij uw account.


2
2017-10-24 16:03