Jak utworzyć umowę PPA?


Odpowiedzi:


97

Korzystając z osobistego pakietu pakietów ( PPA ), możesz rozpowszechniać oprogramowanie i aktualizacje bezpośrednio wśród użytkowników Ubuntu. Utwórz pakiet źródłowy, prześlij go, a Launchpad zbuduje pliki binarne, a następnie umieści je w swoim własnym repozytorium apt.

Oto szczegółowe wyjaśnienie .


5
FWIW Byłem w stanie aktywować PPA przed podpisaniem kodeksu postępowania.
— Sparhawk

2
To najlepsza odpowiedź. Właśnie powiedziano ci, jak utworzyć PPA. Poniższa odpowiedź (autor: totti) nie jest umową PPA, ale publicznym repozytorium. Oba są różne, pomimo (potencjalnie) osiągnięcia tego samego. Mówi nawet w pierwszym wierszu swojej odpowiedzi: „To pytanie ma dobrze napisaną, zaakceptowaną odpowiedź. Ponieważ OP chce prostego sposobu na opublikowanie swoich paczek, daję łatwy hack”. Ponieważ wolisz łatwy hack, nie jest to najlepsza odpowiedź.
— lbaile200

OK, ale żaden z linków w tej odpowiedzi tak naprawdę nie opisuje, jak to zrobić od zera. wszystkie linki tutaj są przeznaczone dla programistów, którzy są już w materiale o wiele więcej
— rubo77

1
@ rubo77 - „jak tworzyć” jest zbyt szerokie, aby można było na nie odpowiedzieć. Wszystko zależy od tego, co próbujesz spakować. Rzeczywiście, każdy z kroków w powyższej odpowiedzi może być indywidualnym Q z każdą szczegółową dobrą odpowiedzią.
— fossfreedom

1
Nowa odpowiedź Tottiego jest już świetna
— rubo77

86

Jak utworzyć plik .deb

To jest samouczek na temat tworzenia podstawowego pliku .deb z danego przykładowego skryptu. W tym samouczku najpierw tworzymy przykładowy program w bash, który po prostu pokazuje „CZEŚĆ Z PROGRAMU”. Następnie tworzymy plik kontrolny dla programu, aby stworzyć instalator Debiana. Na koniec są pakowane do .debpliku.

Kroki:

  1. utwórz przykładowy program w bash

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

    wklej do niego następujący kod

    #!/bin/bash
    echo 'HELLO FROM PROGRAM' | zenity --text-info 
    
  2. Spraw, aby program był wykonywalny

    chmod +x "$HOME/create_deb/pgmdir/zenity_hello.sh"
    
  3. Utwórz plik kontrolny dla pakietu debian

    Utwórz plik o nazwie controlwewnątrz folderuDEBIAN

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

    i wklej następujące szczegóły

    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.
    

    Możesz edytować zawartość, jeśli chcesz. Przeczytaj więcej o formacie tego pliku tutaj i tutaj .

  4. Utwórz postinstskrypt, który jest wykonywany natychmiast po instalacji pakietu

    gedit "$HOME"/create_deb/DEBIAN/postinst
    

    następnie wklej

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

    i uczynić go wykonywalnym

    chmod +x "$HOME/create_deb/DEBIAN/postinst"
    
  5. Utwórz prermskrypt, który jest wykonywany przed usunięciem pakietu

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

    i uczynić go wykonywalnym

    chmod +x "$HOME/create_deb/DEBIAN/prerm"
    
  6. Twórz strukturę pakietów i kopiuj programy, dane itp.
    Utwórz strukturę zainstalowanych programów i ich danych. W tym przykładzie umieściliśmy plik w /bin.

    mkdir -p "$HOME"/create_deb/bin
    cp "$HOME/create_deb/pgmdir/zenity_hello.sh" "$HOME/create_deb/bin/zenity_hello"
    
  7. Zbuduj plik .deb .

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

    .Zostanie automatycznie nazwę .debpliku z wersji, łuk itp lub nazwę niestandardowego

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

    Lub jeśli zbudujesz plik .deb

    debuild -k'your GPG key here' -S
    

    następnie możesz przesłać go do Ubuntu Launchpad za pomocą

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

    jak opisano tutaj (źródło: utwórz pakiet .deb ze skryptów lub plików binarnych )

  8. Zainstaluj nowo utworzony .debpakiet. Możesz go otworzyć za pomocą, software-centerale może nie pozwolić na instalację. Dlatego polecam użyć gdebimenedżera pakietów.

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

    Teraz możesz go zainstalować. Podczas instalacji powinien zostać wyświetlony dialog gtk

    Instalowanie programu: zenity_hello.sh ......

  9. Po zainstalowaniu otwórz terminal i wpisz zenity_hello. Jeśli program został poprawnie zainstalowany i wszystko w porządku, powinieneś zobaczyć okno dialogowe GTK

    CZEŚĆ Z PROGRAMU

  10. Usuwanie pakietu

    sudo apt-get remove zenity_hello
    

Opublikuj swoje repozytorium za 2 minuty

Ponieważ OP chce prostego sposobu na opublikowanie swoich pakietów, daję łatwy hack.

wymaganie: konto dropbox (lub dowolna inna usługa, na przykład github ) z folderem publicznym.

  1. Utwórz folder w folderze publicznym Dropbox, w którym umieścisz pliki * .deb:

    mkdir ~/Dropbox/Public/deb-packages  
    

    lub utwórz ten folder gdzie indziej i umieść dowiązanie symboliczne w swoim folderze publicznym:

    mkdir ~/deb-packages
    cd ~/Dropbox/Public
    ln -s ~/deb-packages/ deb-packages
    
  2. Przejdź do tego folderu i utwórz skrypt, który po uruchomieniu tworzy Packages.gz, zawierający wszystkie potrzebne informacje o twoich pakietach deb. Stwórz:

    gedit import.sh  
    

    włóż to w to:

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

    spraw, by był wykonywalny:

    chmod  x import.sh
    
  3. Skopiuj niektóre pliki * .deb do folderu. Może to być twoje własne lub niektóre, które nie są dostępne za pośrednictwem innych repozytoriów. Następnie przejdź do folderu i uruchom skrypt, który tam umieściliśmy:

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

    To powinno stworzyć tak zwany plik Packages.gz , który będzie szukał informacji, które pakiety znajdują się w tym repozytorium.


Otóż ​​to

Teraz poczekaj, aż Dropbox zsynchronizuje folder i pobierz publiczny adres URL zPackages.gz . Powinno to wyglądać mniej więcej tak:

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

Pozbądź się końca tego linku, dodaj do niego kilka słów, a teraz możesz użyć i wypełnić następujący wiersz dla sources.list:

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

To jest to, że masz własne repozytorium deb. Zawsze synchronizowany lokalnie, ale dostępny dla każdego, zawsze i wszędzie.

UWAGA: dpkg-scanpackages jest dostępny w celach dpkg-dev
informacyjnych


3
+1 świetnie! to zadziałało: użyłem Github, a tam surowy katalog na folder releases/patrz github.com/rubo77/mouse-speed/blob/master/release/…
— rubo77

Opisuje PPA, ale jak mogę zbudować pakiet Debian Ubuntu
— rubo77

3
Jeśli utworzysz plik .deb w kroku 7. debuild -us -uc -k'your GPG key here', możesz przesłać go dput ppa:<lp-username>/<ppa-name> packet-source.changesdo Launchpada w sposób opisany tutaj (źródło: utwórz pakiet .deb ze skryptów lub plików binarnych )
— rubo77

@ rubo77, Dzięki, witam, aby dodać te informacje na końcu mojej odpowiedzi.
— totti

1
OK, właśnie to zrobiłem, dowiedziałem się również, że potrzebujesz innych parametrów, aby Launchpad nie mógł teraz utworzyć pliku .deb (tylko -S): debuild -k'your GPG key here' -Sponieważ Launchpad utworzy plik deb (jeśli nie zostanie odrzucony) - co byłoby dla `-us -uc`?
— rubo77

2

Będziesz potrzebować konta Launchpad.net, aby utworzyć PPA. Wystarczy kliknąć użytkownika na Launchpad (kliknij swoje imię i nazwisko w lewym górnym rogu) i utworzyć PPA. Może być konieczne podpisanie Kodeksu postępowania i zarejestrowanie klucza GPG na koncie.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.