Bagaimana cara saya membuat PPA?

Jawaban:

97

Menggunakan Arsip Paket Pribadi ( PPA ), Anda dapat mendistribusikan perangkat lunak dan pembaruan langsung ke pengguna Ubuntu. Buat paket sumber Anda, unggah itu dan Launchpad akan membangun binari dan kemudian menghostingnya di repositori apt Anda sendiri.

Berikut ini penjelasan terperinci .

hhlp
sumber
5
FWIW saya bisa mengaktifkan PPA saya sebelum saya menandatangani kode etik.
Sparhawk
2
Ini jawaban terbaik. Anda baru saja diberitahu cara membuat PPA. Tanggapan di bawah ini (oleh totti) bukan PPA, tetapi itu adalah repositori publik. Keduanya berbeda, meskipun (berpotensi) mencapai hal yang sama. Dia bahkan mengatakan di baris pertama jawabannya: "Pertanyaan ini memiliki jawaban yang ditulis dengan baik, diterima. Karena OP ingin cara sederhana untuk mempublikasikan paket-paketnya, saya memberikan hack mudah." Karena Anda lebih suka peretasan yang mudah tidak menjadikannya jawaban terbaik.
lbaile200
OK, tetapi tidak ada tautan dalam jawaban ini yang benar-benar menjelaskan cara melakukannya dari awal. semua tautan di sini dibuat untuk pengembang, yang sudah menjadi materi jauh lebih banyak
rubo77
1
@ rubo77 - "cara membuat" terlalu luas untuk dijawab. Itu semua tergantung apa yang Anda coba paket. Memang masing-masing langkah dalam jawaban di atas dapat masing-masing Q dengan jawaban rinci yang baik masing-masing.
fossfreedom
1
Jawaban baru Totti sudah bagus
rubo77
86

Cara membuat file deb

Ini adalah tutorial tentang cara membuat file .deb dasar dari skrip sampel yang diberikan. Dalam tutorial ini pertama-tama kita membuat contoh program di bash yang hanya menampilkan 'HELLO FROM PROGRAM'. Kemudian kami membuat file kontrol untuk program untuk membuat installer debian. Akhirnya mereka dikemas ke dalam .debfile.

Langkah:

  1. buat contoh program di bash

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

    rekatkan kode berikut ke dalamnya

    #!/bin/bash
    echo 'HELLO FROM PROGRAM' | zenity --text-info 
    
  2. Jadikan program tersebut dapat dieksekusi

    chmod +x "$HOME/create_deb/pgmdir/zenity_hello.sh"
    
  3. Buat file kontrol untuk paket debian

    Buat file dengan nama controldi dalam folderDEBIAN

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

    dan rekatkan detail berikut

    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.
    

    Anda dapat mengedit konten jika Anda mau. Baca lebih lanjut tentang format file ini di sini dan di sini .

  4. Buat postinstskrip, yang dijalankan segera setelah instalasi paket

    gedit "$HOME"/create_deb/DEBIAN/postinst
    

    lalu tempel

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

    dan membuatnya bisa dieksekusi

    chmod +x "$HOME/create_deb/DEBIAN/postinst"
    
  5. Buat prermskrip, yang dijalankan sebelum penghapusan paket

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

    dan membuatnya bisa dieksekusi

    chmod +x "$HOME/create_deb/DEBIAN/prerm"
    
  6. Buat struktur paket dan salin program, data, dll.
    Buat struktur program yang terinstal dan datanya. Dalam contoh ini kita meletakkan file di /bin.

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

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

    The .akan otomatis nama .debfile tersebut dengan versi, lengkungan dll Atau nama kustom Anda

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

    Atau jika Anda membangun file .deb dengan

    debuild -k'your GPG key here' -S
    

    maka Anda dapat mengunggahnya ke Ubuntu Launchpad dengan

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

    seperti dijelaskan di sini (sumber: buat Paket deb dari skrip atau binari ).

  8. Instal .debpaket yang baru dibuat . Anda dapat membukanya dengan software-centertetapi itu mungkin tidak memungkinkan Anda untuk menginstal. Jadi saya sarankan untuk menggunakan gdebimanajer paket.

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

    Sekarang Anda dapat menginstalnya. Selama instalasi Anda akan melihat dialog gtk

    Menginstal program: zenity_hello.sh ......

  9. Setelah menginstal, buka terminal dan ketik zenity_hello. Jika program terinstal dengan benar dan semuanya OK, Anda akan melihat dialog gtk

    NERAKA DARI PROGRAM

  10. Menghapus paket

    sudo apt-get remove zenity_hello
    

Publikasikan repositori Anda dalam 2 menit

Karena OP ingin cara sederhana untuk mempublikasikan paket-paketnya, saya memberikan peretasan yang mudah.

persyaratan: akun dropbox (atau layanan lain, misalnya ex github ) dengan folder publik.

  1. Buat folder di dalam folder Public-Dropbox-Folder tempat Anda meletakkan file * .deb:

    mkdir ~/Dropbox/Public/deb-packages  
    

    atau buat folder itu di tempat lain dan letakkan symlink di folder Publik Anda:

    mkdir ~/deb-packages
    cd ~/Dropbox/Public
    ln -s ~/deb-packages/ deb-packages
    
  2. Buka folder itu dan buat skrip yang, ketika dijalankan, membuat Package.gz, yang berisi semua informasi yang dibutuhkan tentang paket-deb Anda. membuat:

    gedit import.sh  
    

    letakkan ini di dalamnya:

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

    membuatnya dapat dieksekusi:

    chmod  x import.sh
    
  3. Salin beberapa file * .deb ke dalam Folder. Bisa jadi milik Anda sendiri atau beberapa yang tidak tersedia melalui repositori lain. Lalu masuk ke Folder dan jalankan script yang kita letakkan di sana:

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

    Itu seharusnya membuat File Packages.gz , yang biasanya mencari tahu Paket mana yang berada di repositori ini.


Itu dia

Sekarang, tunggu Dropbox untuk menyinkronkan Folder dan ambil URL Publik dariPackages.gz . Seharusnya terlihat seperti ini:

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

Singkirkan bagian akhir tautan itu, tulis beberapa kata lagi dan sekarang Anda dapat menggunakan dan mengisi baris berikut untuk sources.list:

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

Itu saja Anda punya repositori deb Anda berjalan. Selalu disinkronkan secara lokal, tetapi tersedia untuk siapa saja, kapan saja, di mana saja.

CATATAN: dpkg-scanpackages tersedia dari dpkg-dev
referensi

totti
sumber
3
+1 Hebat! ini berhasil: Saya menggunakan Github dan di sana direktori mentah untuk folder releases/lihat github.com/rubo77/mouse-speed/blob/master/release/…
rubo77
Ini menjelaskan PPA yang di-host-sendiri, tetapi bagaimana saya bisa membuat paket debian Ubuntu
rubo77
3
Jika Anda membangun file deb di langkah 7. dengan debuild -us -uc -k'your GPG key here'maka Anda dapat mengunggahnya dput ppa:<lp-username>/<ppa-name> packet-source.changeske Launchpad seperti yang dijelaskan di sini (sumber: membuat Paket deb. Dari skrip atau binari )
rubo77
@ rubo77, Terima kasih, saya menyambut Anda untuk menambahkan info ini di akhir jawaban saya.
totti
1
OK, saya baru saja melakukannya, saya juga menemukan, bahwa Anda memerlukan parameter lain untuk Launchpad untuk tidak membuat file deb sekarang (hanya -S): debuild -k'your GPG key here' -Skarena Launchpad akan membuat file deb (jika tidak ditolak) - apa akankah `-us -uc` digunakan untuk?
rubo77
2

Anda akan memerlukan akun Launchpad.net untuk membuat PPA. Cukup klik pada pengguna Anda di Launchpad (klik pada nama Anda di kiri atas) dan buat PPA. Anda mungkin harus terlebih dahulu menandatangani Kode Etik dan memiliki kunci GPG yang terdaftar di akun Anda.

GTRsdk
sumber