diff --git a/doc/pisi.lyx b/doc/pisi.lyx index 5957c918..a5581569 100644 --- a/doc/pisi.lyx +++ b/doc/pisi.lyx @@ -78,7 +78,7 @@ Bu k Kullanıcı Gereksinimleri \layout Standard -Kullanıcı gereksinimleri, bir bilişim okuryazarı olarak daha önce tanımladığımız +Kullanıcı gereksinimleri, bilişim okuryazarı olarak daha önce tanımladığımız \begin_inset Foot collapsed true @@ -95,21 +95,22 @@ collapsed true kullanıcı profiline bağlı kalınarak çıkarılmıştır. \layout Itemize -Bilişim okuryazarıın temel isteği, sisteme istediği uygulamaları kolayca +Bilişim okuryazarının temel isteği, sisteme istediği uygulamaları kolayca kurabilmekten ibarettir. \begin_deeper \layout Itemize -Kur emri, komut satırı, grafik arayüzler, ya da sistemin otomatik olarak - bir pakete ihtiyaç olduğunu saptamasıyla kolayca verilebilmeli, bu görev - mümkün olduğunca soru sorulmadan ve kullanıcıyı rahatsız etmeden yerine - getirilmelidir. +Kur emri, komut satırından, grafik arayüzlerden, ya da sistemin otomatik + olarak bir pakete ihtiyaç olduğunu saptamasıyla kolayca verilebilmeli, + bu görev mümkün olduğunca soru sorulmadan ve kullanıcıyı rahatsız etmeden + yerine getirilmelidir. \layout Itemize Kullanıcı, paketin sistemde doğru şekilde çalışabilmesi için gerekli olan - yapılandırma gereksinimlerinin karşılanmasından mümkün olduğuncayalıtılmalıdı. + yapılandırma gereksinimlerinin karşılanmasından mümkün olduğunca yalıtılmalıdır. Yapılandırma ile ilgili görevler paket yöneticisi dışındaki bir araçla - sağlanabilmeli, ya da kullanıcının verdiği emirlerle sonradan yapılabilmelidir. + otomatik sağlanmalı, ya da kullanıcının verdiği emirlerle sonradan yapılabilmel +idir. \layout Itemize @@ -135,8 +136,8 @@ Bir paketin eski veya deneysel s Dolayısıyla eski sürümler ve geliştirme sürümleri alternatifleri ile kullanıcın ın kafasının karıştırılmaması için; kullanıcı paketler deposunda her eriştiğinde en son düzeltmeleri içeren son ve tek bir sürüme ulaşabilmelidir. - Bu hem basitlik hem de kullanıcının istemeyerek yanlış bir paket kurmasının - önüne geçer. + Bu hem basitlik sağlar, hem de kullanıcının istemeyerek yanlış bir paket + kurmasının önüne geçer. \layout Itemize Paket güncelleme ile ilgili paket bazında ayrı ayrı politikalar belirlenmesi @@ -148,7 +149,7 @@ Paket g Nerdeyse her uygulama kendi sürüm numarası verme politikasına sahip olduğundan, paketin asıl sürüm numarası yanında, düzenli olarak artacak bir numara daha vererek, kullanıcının kolayca hangi sürümlerin yeni olduğunu ayırt - edebilmesi sağlanabilmeldiir (aynı uygulama sürümünün çeşitli hata düzeltmeleri + edebilmesi sağlanabilmelidir (aynı uygulama sürümünün çeşitli hata düzeltmeleri içeren farklı paket sürümleri olabileceği de düşünülürse bunun önemi daha net bir şekilde ortaya çıkmaktadır). \layout Itemize @@ -186,6 +187,12 @@ Paket bile Paket yöneticisinin böyle bir durumu kontrol edebilmesi, ve örneğin bir kullanıcı hatası sonucu silinen/değişen dosyaları tekrar temin edip düzeltebilm esi kullanıcıya kolaylık sağlar. +\layout Itemize + +Uygulamayı kod olarak çekip, sisteme özel değişik ayarlar ile derleyebilecek + Gentoo benzeri bir özellik gereklerimiz arasında değildir. + Bu tür bir özellik aynı kodun farklı makinalarda farklı ikili paketler + oluşturmasına ve teknik destek sağlamanın zorlaşmasına yol açacaktır. \layout Subsection Paketleyici/Geliştirici Gereksinimleri @@ -197,6 +204,12 @@ Paket haz \layout Itemize +Pakete ait bilgiler iyi tanımlanmış bir formatta, kolayca erişilebilir olarak + tutulmalıdır. + Böylece paketleri işleyen araçlar yapmak kolaylaşacak, ilerde veri bağımlılığı + sorunları olmayacaktır. +\layout Itemize + Kolayca paket oluşturabilmek için, tercihen bir grafik arayüz ile paket hazırlanabilmelidir. Paket yöneticisi, üst geliştirici kodunu alıp, gerekli bilgileri hazırlatacak, @@ -242,8 +255,10 @@ depo \begin_deeper \layout Itemize -Aynı biçimde, bir pakedin belirli dosyalarına direk ve hızlı şekilde erişilebilm -elidir. +Depodaki değişikliklerin listesi, yerel paket listesiyle mümkün olan en + az veri iletimi ile senkron edilebilmelidir. + Bu ağ kaynaklarının verimli kullanımı ve yeni sürümlerin hızlıca takip + edilebilmesi için gereklidir. \end_deeper \layout Itemize @@ -253,7 +268,7 @@ Paketler birden fazla kaynaktan temin edilebilmelidir. Güvenlik Gereksinimleri \layout Itemize -CD, Internet gibi değişik yollarla temin edilen paketlern kim tarafından +CD, Internet gibi değişik yollarla temin edilen paketlerin kim tarafından paketlendiği bilgisi ve içeriğinin yolda değişmediği garantisi için bir dijital imza sistemi desteklenmelidir. \layout Itemize @@ -285,89 +300,29 @@ idir. Neden PİSİ? \layout Standard -Bu kısımda neden varolan paket yöneticisi çözümlerinden yararlanmak yerine - yeni bir paket yöneticisi yazmaya karar verildiği açıklanmaya çalışılacaktır. -\layout Standard - -Öncelikle Pardus'ta kullanılacak paket yöneticisinin, sisteme kurulan paketlerin - kendilerini sistem koşullarına göre otomatik bir şekilde yapılandırmasına - da olanak sağlayacak olan yapılandırma yöneticimiz ÇOMAR tarafından ihtiyaç - duyulan gereksinimleri de yerine getirmesi gerekliliği söz konusudur. - ÇOMAR'ın paket yöneticisi gereksinimleri şu şekilde listelenebilir: +Varolan paket yöneticilerinde görevler ve bilgilerin düzgün bir biçimde + ayrılmadıkları görülmektedir. + Bu araçlar basit olarak hazırlanmış ve zaman içinde ortaya çıkan ihtiyaçları + karşılamak için sürekli yeni özellikler eklenerek bugünkü hallerine gelmişlerdi +r. + Bunun getirdiği karmaşıklığı temizlemek için aşağıdaki ilkeleri temel alan + yeni bir paket yöneticisi yazma kararına vardık: \layout Itemize -Bir paket kurulduktan sonra, pakete ait -\series bold -CSL -\series default - betikleri -\series bold -ÇOMAR -\series default -'a bildirip kayıt ettirebilmelidir. +Kurulum ve yapılandırma birbirinden ayrı iki görevdir. + Kurulum yalnızca programlar kurulur, güncellenir ve kaldırılırken iş görürken, + yapılandırma hem kurulumda hem de çalışan sistemde söz konusudur. + Bu ayrı görevleri sorumluluk sınırları belirlenmiş ayrı araçların yerine + getirmesi uygundur. + Uludağ projesi için yapılandırma işlerini yürütecek araç ÇOMAR'dır. + PİSİ bu görevleri ÇOMAR'a devredecektir. \layout Itemize -Bir paket kaldırılmadan önce -\series bold -ÇOMAR -\series default -'dan bu pakete ait betikleri kaldırmasını isteyebilmelidir. -\layout Itemize - -Bir paket eğer -\series bold -CSL -\series default - betiği sağlıyorsa, paketin hangi -\series bold -OM -\series default - dallarına ait betikler içerdiği bilgisini tutabilmelidir. -\layout Itemize - -Bir paketin ihtiyaç duyduğu yapılandırma görevlerinin bulunduğu bir -\series bold -OM -\series default - dalı için, hangi paketlerin bu dala ait betik içerdiği bilgisi sorgulanabilmeli -dir. -\layout Itemize - -Kurulması emredilen bir paket, kitaplık ve programların yanısıra -\series bold -OM -\series default - üzerinden sağlanan bazı görevlere ihtiyaç duyabilir. - Bu durumda paket yöneticisinin o bacaktaki görevi sağlayan uygun bir pakedin - kurulu olup olmadığına bakması, gerekiyorsa o görevi sağlayan paketlerden - birini kurması gereklidir. -\layout Itemize - -Paket yöneticisi, bir pakete ait bir dosyanın sistemde nereye yerleştirilmiş - olduğunu söyleyebilmelidir. -\layout Standard - -Kolaylıkla görülmektedir ki yukarda belirtilen ÇOMAR gereksinimleri, diğer - paket yöneticilerinin özelleştirilmesi ile sağlanamayacak gereksinimler - değillerdir. - -\layout Standard - -Fakat hali hazırda kullanılan bir paket yöneticisine bu tip özelliklerin - eklenmesi, paket yöneticisinin kalan kısmının elden geçirilmesi ve ana - geliştirici tarafından yapılan güncellemelerin takibi anlamında çok büyük - bir iş yükünü de beraberinde getirir. - Bunun dışında, varolan ve geniş kullanım kitlesine sahip paket yöneticileri - (RPM, DPKG ve Portage) yukarda saydığımız gereksinimlerin kimilerini bizim - olması gerektiğini düşündüğümüz basitlikte yerine getirememekte, kimilerini - de hiç vaad etmemektedirler. -\layout Standard - -Aşağıda bizce ne gibi dezavantajlar barındırdıkları listelenmeye çalışılmıştır: -\layout Comment - -İşte arkadaşlar buralar dolacak güzelcene. - Hadi bakalım. +Paket meta bilgileri ile paketin derlenme ve kurulumunu yöneten betikler + iç içe geçmemelidir. + Varolan paket yöneticilerinde paket tanımlama dosyaları kod ile bilginin + birbirine karıştığı, araçlarla işlemesi zor, net ve kesin tanımlanmamış + biçimlerdedir. \layout Subsection Neden DPKG Değil? @@ -377,67 +332,6 @@ Neden RPM De \layout Subsection Neden Portage Değil? -\layout Standard - -Yukardaki gereksinimleri tam olarak sağlayabilmek için çeşitli tipte bağımlılıkl -ar, farklı özelliklerle kurulabilen paketler, en az dosya indirme ile kurulum - gibi özelliklere ihtiyacımız olduğu anlaşılmıştır. - Halihazırdaki paket sistemlerinin yukardaki örneklerde de anlatıldığı gibi - bunları beklediğimiz oranda sağlamadıkları ve onlara bu özellikleri kazandırman -ın yeni bir tane yazmaktan daha kolay olmamasından dolayı yeni bir paket - yöneticisi yazmak gereği doğmuştur. -\layout Standard - - -\series bold -PİSİ -\series default - ( -\series bold -Packages Installed Successfully as Intented -\series default -) bu nedenle geliştirilmektedir. -\layout Subsection - -JUNKKİEEEE -\layout Comment - -Alttaki kısım daha önce yukarlarda bir yerlerde idi, kaybolmsaın diye buraya - koyuyorum, uygun bir yere monte edecek sonra da burdan sileceğizdir. -\layout Standard - -DPKG ve RPM gibi ikili paketlerin ile çalışan paket yöneticilerinin paket - kapsamı ile ilgili sıkıntılar mevcuttur: Kapsam çok geniş olduğunda (örneğin - tek bir KDE pakedi), kullanıcı her güncellemede çok büyük dosyalar çekmekte, - sisteme kullanmayacağı bileşenleri (örneğin KDE oyunları, ya da bilmediği - dillere ait destekler) kurmaktadır. -\layout Itemize - -Kapsam dar tutulup küçük paketler oluşturulduğunda ise paket sayısının artmasınd -an dolayı, paket kavramının getirdiği soyutlama azalmakta, sisteme büyük - bir platformu kurmak için kendisi bir bileşen içermeyip yalnızca diğer - paketleri kurdurtan sanal paketler gibi yama çözümler gerekmektedir. -\begin_deeper -\layout Itemize - -Kullanıcıya uygulamaları belli özellikleri (örneğin geliştirme kitleri, - grafik arayüzü, dil destekleri, ek uygulamaları, vs) opsiyonel olarak kurulabil -ecek biçimde sunabilirsek, ve paket temin sistemimizi yalnızca gereken özellikle -ri getirecek biçimde inşa edersek, hem kapsam sorunları, hem vakit ve ağ - bağlantı hızı açısından yaşanan sorunlar çözülecektir. -\layout Itemize - -Uygulamayı kod olarak çekip, değişik özellikler ile derleyebilecek Gentoo - Linux'un Portage benzeri bir sistem hedef kullanıcımıza zorluklar çıkaracak - ve doğrudan bir fayda sağlamayacaktır. - Ancak kimi programların farklı biçimde derlenmiş hallerini pakede ayrı - bir özellik olarak koyabiliriz (örneğin mplayer pakedinde farklı işlemciler - için derlenmiş birkaç tane -\emph on -mplayer -\emph default - programı gibi). -\end_deeper \layout Section PİSİ Tasarımı