Ubuntu topluluğu ile paylaşmak için kendi özel PPAmı nasıl oluşturabilirim? Kendi özel paket kümemi oluşturmaya çalışıyorum ve bunu toplulukla gerçekten paylaşmak istiyorum.
Ubuntu topluluğu ile paylaşmak için kendi özel PPAmı nasıl oluşturabilirim? Kendi özel paket kümemi oluşturmaya çalışıyorum ve bunu toplulukla gerçekten paylaşmak istiyorum.
Yanıtlar:
Kişisel Paket Arşivi ( PPA ) kullanarak, yazılım ve güncellemeleri doğrudan Ubuntu kullanıcılarına dağıtabilirsiniz. Kaynak paketinizi oluşturun, yükleyin ve Launchpad ikilik dosyalar oluşturacak ve daha sonra kendi uygun deponuzda barındıracaktır.
İşte ayrıntılı bir açıklama .
Bu, belirli bir örnek komut dosyasından temel bir .deb dosyası oluşturma konusunda bir öğreticidir. Bu derste, ilk önce bash olarak 'PROGRAM'DAN HELLO'yu gösteren örnek bir program oluşturuyoruz . Daha sonra debian kurucu yapmak için program için bir kontrol dosyası oluşturuyoruz . Sonunda bir .deb
dosya halinde paketlenirler .
bash'ta örnek bir program yarat
mkdir "$HOME/create_deb/pgmdir"
gedit "$HOME/create_deb/pgmdir/zenity_hello.sh"
aşağıdaki kodu içine yapıştırın
#!/bin/bash
echo 'HELLO FROM PROGRAM' | zenity --text-info
Programı çalıştırılabilir yap
chmod +x "$HOME/create_deb/pgmdir/zenity_hello.sh"
Debian paketi için kontrol dosyası oluştur
control
Klasör içinde bir dosya oluşturunDEBIAN
mkdir "$HOME"/create_deb/DEBIAN
gedit "$HOME"/create_deb/DEBIAN/control
ve aşağıdaki ayrıntıları yapıştırın
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.
İsterseniz içerikleri düzenleyebilirsiniz. Burada ve burada bu dosyanın formatı hakkında daha fazla bilgi edinin .
postinst
Paket yüklendikten hemen sonra çalıştırılan komut dosyasını oluşturun
gedit "$HOME"/create_deb/DEBIAN/postinst
sonra yapıştır
#!/bin/sh
set -e
echo 'Installing program : zenity_hello.sh ......' | zenity --text-info
ve çalıştırılabilir yap
chmod +x "$HOME/create_deb/DEBIAN/postinst"
prerm
Paket kaldırılmadan önce yürütülen komut dosyasını oluşturun.
#!/bin/sh
set -e
echo 'Removing program : zenity_hello.sh ......' | zenity --text-info
ve çalıştırılabilir yap
chmod +x "$HOME/create_deb/DEBIAN/prerm"
Paket yapısını yapın ve programları, verileri vb. Kopyalayın
. Yüklü programlarınızın ve verilerinin bir yapısını oluşturun. Bu örnekte dosyayı koyduk /bin
.
mkdir -p "$HOME"/create_deb/bin
cp "$HOME/create_deb/pgmdir/zenity_hello.sh" "$HOME/create_deb/bin/zenity_hello"
İnşa .deb dosyasını.
dpkg-deb --build "$HOME"/create_deb .
.
İrade oto isim .deb
sürümü, kemer vb Veya özel adıyla dosyayı
dpkg-deb --build "$HOME"/create_deb "$HOME"/create_deb/hellodeb.deb
Veya .deb dosyasını ile oluşturursanız
debuild -k'your GPG key here' -S
o zaman ile Ubuntu Launchpad’e yükleyebilirsiniz.
dput ppa:<lp-username>/<ppa-name> packet-source.changes
Burada açıklandığı gibi (kaynak: scriptlerden veya ikili dosyalardan bir .deb paketi oluşturun )
Yeni oluşturulan .deb
paketi yükleyin . İle açabilirsiniz, software-center
ancak yüklemenize izin vermeyebilir. Bu yüzden gdebi
paket yöneticisini kullanmanızı öneririm .
sudo apt-get install gdebi
gdebi "$HOME"/create_deb/hellodeb.deb
Şimdi yükleyebilirsiniz. Kurulum sırasında bir gtk diyaloğu görmelisiniz
Yükleme programı: zenity_hello.sh ......
Taktıktan sonra bir terminal açın ve yazın zenity_hello
. Program doğru kurulmuşsa ve her şey yolundaysa bir gtk diyalogu görmelisiniz
PROGRAMDAN HELLO
Paketi çıkarma
sudo apt-get remove zenity_hello
OP, paketlerini yayınlamak için basit bir yol istediği için, kolay bir saldırı veriyorum.
gereksinimi: ortak bir klasör içeren dropbox (veya örneğin github için herhangi bir hizmet ).
Public-Dropbox-Folder içinde * .deb Dosyalarınızı koyduğunuz bir klasör oluşturun:
mkdir ~/Dropbox/Public/deb-packages
veya bu klasörü başka bir yerde oluşturun ve Ortak klasörünüze bir link ekleyin:
mkdir ~/deb-packages
cd ~/Dropbox/Public
ln -s ~/deb-packages/ deb-packages
Bu klasöre gidin ve çalıştırıldığında, deb paketleri hakkında gerekli tüm bilgileri içeren Packages.gz dosyasını oluşturan bir komut dosyası oluşturun. yaratmak, yapmak, tasarlamak, üretmek:
gedit import.sh
Bunu içine koy:
#!/bin/bash
dpkg-scanpackages . /dev/null |gzip > Packages.gz
çalıştırılabilir yap:
chmod x import.sh
Bazı * .deb Dosyalarını Klasöre kopyalayın. Başka depolarda bulunmayan, kendiniz veya bir kısmı olabilir. Ardından Klasöre gidin ve buraya koyduğumuz komut dosyasını yürütün:
cd ~/deb-packages/
./import.sh
Bu , hangi depoda bu depoda bulunduğunu bilmek isteyen apt adlı paketler.gz Dosyası'nı yaratmalıdır .
Şimdi, Dropbox'ın Klasörü senkronize etmesini ve Genel-URL'siniPackages.gz
. Bunun gibi bir şeye benzemeli:
http://dl.getdropbox.../Packages.gz
Bu bağlantının sonundan kurtulun, ona biraz daha kelime koyun; şimdi aşağıdakileri kullanın ve kopyalayabilirsiniz.
deb http://dl.getdropbox.../deb-packages ./
İşte kendi borç deponuzu yayınladınız. Her zaman yerel olarak senkronize edilir, ancak herhangi bir zamanda, herhangi bir zamanda, herhangi bir yerde kullanılabilir.
NOT: dpkg-scanpackages
edinilebilir dpkg-dev
referans
releases/
bakın github.com/rubo77/mouse-speed/blob/master/release/...
debuild -us -uc -k'your GPG key here'
yükleyebilirsiniz (kaynak: scriptler veya ikili dosyalardan bir .deb paketi oluşturun )dput ppa:<lp-username>/<ppa-name> packet-source.changes
debuild -k'your GPG key here' -S
çünkü Launchpad deb dosyasını oluşturacak (reddedilmediyse) - ne -us -uc` için olurdu?