Bagaimana cara membuat PPA khusus saya sendiri untuk dibagikan dengan komunitas Ubuntu? Saya mencoba membuat set paket kustom saya sendiri dan saya benar-benar ingin membaginya dengan komunitas.
Bagaimana cara membuat PPA khusus saya sendiri untuk dibagikan dengan komunitas Ubuntu? Saya mencoba membuat set paket kustom saya sendiri dan saya benar-benar ingin membaginya dengan komunitas.
Jawaban:
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 .
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 .deb
file.
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
Jadikan program tersebut dapat dieksekusi
chmod +x "$HOME/create_deb/pgmdir/zenity_hello.sh"
Buat file kontrol untuk paket debian
Buat file dengan nama control
di 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 .
Buat postinst
skrip, 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"
Buat prerm
skrip, 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"
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"
Buat file deb .
dpkg-deb --build "$HOME"/create_deb .
The .
akan otomatis nama .deb
file 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 ).
Instal .deb
paket yang baru dibuat . Anda dapat membukanya dengan software-center
tetapi itu mungkin tidak memungkinkan Anda untuk menginstal. Jadi saya sarankan untuk menggunakan gdebi
manajer 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 ......
Setelah menginstal, buka terminal dan ketik zenity_hello
. Jika program terinstal dengan benar dan semuanya OK, Anda akan melihat dialog gtk
NERAKA DARI PROGRAM
Menghapus paket
sudo apt-get remove zenity_hello
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.
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
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
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.
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
releases/
lihat github.com/rubo77/mouse-speed/blob/master/release/…
debuild -us -uc -k'your GPG key here'
maka Anda dapat mengunggahnya dput ppa:<lp-username>/<ppa-name> packet-source.changes
ke Launchpad seperti yang dijelaskan di sini (sumber: membuat Paket deb. Dari skrip atau binari )
debuild -k'your GPG key here' -S
karena Launchpad akan membuat file deb (jika tidak ditolak) - apa akankah `-us -uc` digunakan untuk?