On Tue, 01 Nov 2011 21:34:26 +0200, Ozan Çağlayan <o...@pardus.org.tr> wrote:
On 01.11.2011 16:40, H. İbrahim Güngör wrote:
On 01 Kasım 2011 Salı 16:32:31 Gökçen Eraslan wrote:
Gökhan Özbulak wrote On 11/01/2011 04:07 PM:
01 Kasım 2011 Salı günü (saat 16:03:51) Fatih Aşıcı şunları yazmıştı:
01.11.2011 15:40, Gökhan Özbulak yazmış:
Merhaba,

Şu anda bir servisi (A) başlatırken o servise bağımlı servislerin de
(B, C) başlatılması için ilgili paketin servis betiğinde
startDependencies ile bağımlı servislerin listesini geçiriyoruz ve
sonrasında servisi (A) başlatıyoruz. Çomarda bunu otomatikleştirmek
için paketin (A) servis olan çalışma anı bağımlılıklarını pisi API
ile çözümlemeyi ve
başlamamışsa başlatmayı sağlayacak bir dizi değişiklik yapmayı
planlıyoruz. Bununla ilgili itirazı/önerisi olan?

A'nın B ve C'ye bağımlı olduğu sonucuna nasıl varacaksınız?

/var/lib altında metadata.xml'deki spec'i parse edip bağımlılıkları
çözdükten sonra bağımlı paketlerden yine aynı yöntemle service.py
sağlayanları bağımlı servis olarak işaretleyerek. Mümkün gibi geldi bu,
değilse başka önerebileceğin yol var mı? Sistem paket db'sini
sorgulayabilir miyiz?
Bu iş biraz yaş. Diyelim A, B'ye runtimeda bağımlı ve B'den de 3 tane
farklı isimde servis çıkıyor (aynı binary paketten, misal nfs-utils),
fakat A servisinin başlaması için bunların başlamasına da gerek yok. Ne
olacak o zaman? Boşuna boşuna mı başlatılacak B'den çıkan servisler?

Paketlerin bağımlılıklarını nasıl ki otomatik bulmaya çalışmıyorsak
(nelere linklendiğine vs. bakıp), servis bağımlılıklarını çözmek için de
otomasyon yapmayalım derim. Zira bi servis için en önemli şeylerden biri
servis bağımlılıkları, onu da paketçisi bilsin ve elle yazsın.

Bu işi otomatize etmeye çalışmayalım bence de. Paket ne kadar ideal yapılırsa yapılsın (her daemon için bir servis betiği, her servis betiğine ayrı paket
gibi) öngöremediğimiz senaryolar olacak. Genelde bir servisin başlatması
gereken azami 2-3 servis oluyor, onlar da servis betiğinde belirtilsin.

+1. Servisin başına yazalım ya, startDependencies() çağırmak da saçma bence:

require = ["cups", "bluez"]
optional = ["rsync"]

gibi şeyler olabilir..

Belirttiğim tasarım gereksiz servisler başlatabileceğinden servis betiğinde bu şekilde çözsek daha iyi olacak.

--
Gökhan Özbulak / go
Pardus -- Tübitak/UEKAE
http://www.pardus.org.tr/eng
_______________________________________________
Gelistirici mailing list
Gelistirici@pardus.org.tr
http://liste.pardus.org.tr/mailman/listinfo/gelistirici

Cevap