Bir .deb dosyası oluşturun.

70

Derlemek için kaynak kodları olmayan şeyleri .deb paketleri (config, shellscripts, tescilli yazılım) oluşturmak için basit bir yol aradım. Bu oldukça sorun oldu çünkü paket eğitmenlerinin çoğu derlemek istediğiniz bir kaynak tarponun olduğunu varsayarlar. Sonra bu kısa öğretici (Almanca) buldum ).

Daha sonra, basit bir depo oluşturmak için küçük bir komut dosyası oluşturdum. Bunun gibi:

rm /export/my-repository/repository/*
cd /home/tdeutsch/deb-pkg
for i in $(ls | grep my); do dpkg -b ./$i /export/my-repository/repository/$i.deb; done
cd /export/avanon-repository/repository
gpg --armor --export "My Package Signing Key" > PublicKey
apt-ftparchive packages ./ | gzip > Packages.gz
apt-ftparchive packages ./ > Packages
apt-ftparchive release ./ > /tmp/Release.tmp; mv /tmp/Release.tmp Release
gpg --output Release.gpg -ba Release

Anahtarı apt anahtarlığına ekledim ve kaynağı şu şekilde ekledim:

deb http://my.default.com/my-repository/ ./

Repo'nun kendisi iyi çalışıyor gibi görünüyor (Bazı sorunlara rastladım, düzeltmek için Paketleri iki kez eklemem gerekiyordu ve Release dosyası için geçici dosya çözümü yapmam gerekiyordu). Ayrıca indirilmiş bir .deb'i de repoya koyuyorum, problemsiz çalışıyorlar gibi görünüyor. Ama kendi kendime oluşturulan paketlerim yapmadı ... Wenn sudo apt-get update yapiyor, bu gibi hatalara neden oluyorlar:

E: Problem parsing dependency Depends
E: Error occurred while processing my-printerconf (NewVersion2)
E: Problem with MergeList /var/lib/apt/lists/my.default.com_my-repository_._Packages
E: The package lists or status file could not be parsed or opened.

Neyi yanlış yaptığımı bilen var mı?

GÜNCELLEME 2012-03-06: Sadece DEB'leri oluşturmanın kolay bir yolunu arayan başka bir kişi için ipucu: FPM .

    
sordu Thomas Deutsch 23.02.2011 12:11

1 cevap

69

Bağladığınız eğitici, bir paket oluşturmak için düşük düzeyli bir yaklaşım kullanıyor. Böyle bir yaklaşım genellikle tavsiye edilmez ve dikkatli bir şekilde yapılmadığında her türlü soruna yol açabilir.

Paketleme temellerini anladıktan sonra bir betik için .deb oluşturmak çok basittir. Özetle:

# Configure your paths and filenames
SOURCEBINPATH=~
SOURCEBIN=myscript.sh
DEBFOLDER=~/somescripts
DEBVERSION=0.1

DEBFOLDERNAME=$DEBFOLDER-$DEBVERSION

# Create your scripts source dir
mkdir $DEBFOLDERNAME

# Copy your script to the source dir
cp $SOURCEBINPATH/$SOURCEBIN $DEBFOLDERNAME 
cd $DEBFOLDERNAME

# Create the packaging skeleton (debian/*)
dh_make -s --indep --createorig 

# Remove make calls
grep -v makefile debian/rules > debian/rules.new 
mv debian/rules.new debian/rules 

# debian/install must contain the list of scripts to install 
# as well as the target directory
echo $SOURCEBIN usr/bin > debian/install 

# Remove the example files
rm debian/*.ex

# Build the package.
# You  will get a lot of warnings and ../somescripts_0.1-1_i386.deb
debuild

Daha fazla komut dosyası eklemek bunların dizine kopyalanmasını ve debian / install dosyasına eklenmesini gerektirir - daha sonra debuild'i yeniden çalıştırmanız yeterlidir. Ayrıca debian / * dosyalarını gerektiği gibi kontrol etmeli ve güncellemelisiniz.

Adam sayfalarını şu adreste okumalısınız: dh_make , dh_install ve debuild

    
verilen cevap João Pinto 23.02.2011 14:27

Etiketlerdeki diğer soruları oku