[Pardus-kullanicilari] Seçilmiş paketler ile yerel pisi deposu kurulumu
Erkan Altan
ealt78 at gmail.com
9 Eki 2007 Sal 07:10:17 EEST
Kendi sorularımın cevabını kendim vereceğim :)
- Bir dizindeki paketler için pisi-index.xml dosyasını nasıl yeniden
> oluştururuz?
Eğer herhangi bir ikili paket deposunun indeksini oluşturmak istiyorsak o
dizine gidip pisi'ye index komutunu veriyormuşuz, o kadar:
$pisi index
deneme diye bir dizin açıp, içine birkaç paket atıp hemen bir deneme yaptım.
Fakat aşağıdaki hata ile karşılaştım:
# pisi --debug index deneme/
DEBUG: PiSi API initialized
* deneme/ altındaki PiSi dosyalarının bir indeksi yapılıyor
Sistem Hatası: Program Sonlandırıldı.
exceptions.AttributeError: 'NoneType' object has no attribute 'obsoletes'
Genel yardım için lütfen 'pisi help' komutunu kullanınız.
Geri-iz:
File "/usr/bin/pisi", line 89, in ?
cli.run_command()
File "/usr/lib/pardus/pisi/cli/pisicli.py", line 108, in run_command
self.command.run()
File "/usr/lib/pardus/pisi/cli/commands.py", line 1098, in run
skip_signing = ctx.get_option('skip_signing'))
File "/usr/lib/pardus/pisi/api.py", line 386, in index
index.index(repo_dir, skip_sources)
File "/usr/lib/pardus/pisi/index.py", line 104, in index
obsoletes_list = map(str, self.distribution.obsoletes)
DEBUG: PiSi API finalized
obsoletes_list'in oluşturulması ile ilgili bir sıkıntı vardı. Tavsiye
etmeyeceğim ve edilmeyecek bir şey yaptım. /usr/lib/pardus/pisi/index.py
dosyasında, aşağıdaki satırları açıklama olarak kapattım:
104: # obsoletes_list = map(str, self.distribution.obsoletes)
108: # if pkg_name not in obsoletes_list:
Aşağıdaki şekilde yine bazı hata/uyarı mesajları aldım:
# pisi --debug index
DEBUG: PiSi API initialized
Şu andaki dizini indeksliyor.
* . altındaki PiSi dosyalarının bir indeksi yapılıyor
./acerhk-0.5.34-3-44.pisi paket indeksine ekleniyor
./3ddesktop-0.2.9-1-2.pisi paket indeksine ekleniyor
./acl-2.2.44-6-6.pisi paket indeksine ekleniyor
DEBUG: "gpg --detach-sig pisi-index.xml" için dönüş değeri 2
Program sonlandırıldı.
pisi.file.Error: HATA: gpg --detach-sig pisi-index.xml çalışmadı
Genel yardım için lütfen 'pisi help' komutunu kullanınız.
Geri-iz:
File "/usr/bin/pisi", line 89, in ?
cli.run_command()
File "/usr/lib/pardus/pisi/cli/pisicli.py", line 108, in run_command
self.command.run()
File "/usr/lib/pardus/pisi/cli/commands.py", line 1103, in run
skip_signing = ctx.get_option('skip_signing'))
File "/usr/lib/pardus/pisi/api.py", line 391, in index
index.write(output, sha1sum=True, compress=pisi.file.File.bz2, sign=
pisi.file.File.detached)
File "/usr/lib/pardus/pisi/pxml/autoxml.py", line 476, in write
self.writexml(uri, tmpDir, sha1sum=sha1sum, compress=compress,
sign=sign)
File "/usr/lib/pardus/pisi/pxml/xmlfile.py", line 91, in writexml
f.close()
File "/usr/lib/pardus/pisi/file.py", line 202, in close
raise Error(_("ERROR: gpg --detach-sig %s failed") % self.localfile)
DEBUG: PiSi API finalized
Fakat bu sefer pisi-index.xml dosyam düzgün bir şekilde oluştu ve oluşan
depoyu başarılı bir şekilde pisi'ye ekleyebildim.
- Bir paketin oyun olup olmadığını otomatik olarak nasıl tespit edebiliriz?
Sistemin sembolik linklerle de doğru çalıştığını gördükten sonra, geriye tek
sorunum kalmıştı bir paketin oyun olup olmadığını tespit etmek ve buna göre
bir dizine sembolik linklerini atmak.
Burada da "$pisi info paketdosyasi.pisi" komutu yardımıma yetişti. (*)
Örneğin "$pisi info enemy-territory | grep Bileşen" gibi bir komutla
"Bileşen: applications.games" çıktısını alıyor ve bir paketin oyun olduğunu
tespit edebiliyordum.
Sonra aşağıdaki gibi küçük bir betikle depo dizini içerisindeki oyunları
otomatik olarak temizleyebildim.
#!/bin/bash
for f in $(ls *.pisi); do
fs=$(pisi info "$f" | grep applications.games)
if [ "x$fs" != "x" ]
then
echo "$f ise a game, deleting."
rm $f
fi
done
Çok hızlı çalışmıyor ama yine de iş görüyor :)
Şimdi geriye sadece "$pisi index" komunda aldığım "obsoletes_list" hatasının
sebebini bulmak ve gerekiyorsa böcekkıran diyarına (**) bildirmek kaldı.
- Uygulayabileceğim alternatif yöntemler hakkında fikriniz var mı?
Bulduğum yöntemler işimi görecek gibi ama başka fikirlere de açığım.
Sağlıcakla,
(*) PISI'yi seviyorum...
(**) http://hata.pardus.org.tr/
-------------- sonraki bölüm --------------
Bir HTML eklentisi temizlendi...
URL: http://liste.pardus.org.tr/pardus-kullanicilari/attachments/20071009/88041e3e/attachment-0001.htm
Pardus-kullanicilari mesaj listesiyle ilgili
daha fazla bilgi