From 3b5b6be9bc14ddadde0cf88ce74462cbe3fce081 Mon Sep 17 00:00:00 2001 From: "A. Murat Eren" Date: Thu, 21 Jul 2005 12:10:48 +0000 Subject: [PATCH] =?UTF-8?q?=20Art=C4=B1k=20bu=20dosyay=C4=B1=20burdan=20ka?= =?UTF-8?q?ld=C4=B1r=C4=B1yorum,=20dosyan=C4=B1n=20yeni=20adresi=20bu:?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit http://svn.uludag.org.tr/uludag/trunk/doc/tr/pisi/pisi.lyx --- doc/pisi.lyx | 2799 -------------------------------------------------- 1 file changed, 2799 deletions(-) delete mode 100644 doc/pisi.lyx diff --git a/doc/pisi.lyx b/doc/pisi.lyx deleted file mode 100644 index 406cf975..00000000 --- a/doc/pisi.lyx +++ /dev/null @@ -1,2799 +0,0 @@ -#LyX 1.3 created this file. For more info see http://www.lyx.org/ -\lyxformat 221 -\textclass article -\language turkish -\inputencoding auto -\fontscheme pslatex -\graphics default -\paperfontsize default -\spacing single -\papersize Default -\paperpackage a4 -\use_geometry 0 -\use_amsmath 0 -\use_natbib 0 -\use_numerical_citations 0 -\paperorientation portrait -\secnumdepth 3 -\tocdepth 3 -\paragraph_separation skip -\defskip medskip -\quotes_language english -\quotes_times 2 -\papercolumns 1 -\papersides 1 -\paperpagestyle default - -\layout Title - -PISI -\newline -(Packages Installed Succesfully as Intented) -\layout Author - -S. - Çağlar Onur, Onur Küçük, Barış Metin, A. - Murat Eren, Eray Özkural, Gürer Özen -\layout Date - -(Pre-Alpha) -\layout Standard -\pagebreak_top \pagebreak_bottom - -\begin_inset LatexCommand \tableofcontents{} - -\end_inset - - -\layout Section - -Giriş -\layout Standard - -Paket, bir uygulamayı ya da işletim sisteminin bir parçasını tüm bileşenleriyle - toplu olarak ifade eden bir kavramdır. - Uygulamaların bir yerden bir yere taşınması (örneğin bir CD yada ağ kaynağından - gelip, sisteme kurulması) sırasında bazı bileşenlerin geride unutulmamasını - sağlar. - Bir sistemdeki onbinlerce dosyayı, görevleri ve ait oldukları uygulamalar - bazında birkaç yüz pakete ayırarak yönetilebilir kılar. - Kullanıcının büyük bir sistemde neler bulunduğuna hakim olabilmesini kolaylaştı -rır. -\layout Standard - -Bu paketleri kurup kaldırmak, çeşitli kaynaklardan temin etmek, sorgulamak, - sistemdeki değişiklikleri takip etmek için, paket yöneticisi adını verdiğimiz - bir uygulamaya ihtiyaç vardır. -\layout Section - -Paket Yöneticisi Gereksinimleri -\layout Standard - -Bu kısımda önceki bölümde tanımlanan paket yöneticisi kavramının, sunması - beklenen gereksinimler listelenmiştir. -\layout Subsection - -Kullanıcı Gereksinimleri -\layout Standard - -Kullanıcı gereksinimleri, bilişim okuryazarı olarak daha önce tanımladığımız -\begin_inset Foot -collapsed true - -\layout Standard - - -\begin_inset LatexCommand \url[http://www.uludag.org.tr/belgeler/okuryazar/okuryazar.html]{} - -\end_inset - - -\end_inset - - kullanıcı profiline bağlı kalınarak çıkarılmıştır. -\layout Itemize - -Bilişim okuryazarının temel isteği, sisteme istediği uygulamaları kolayca - kurabilmekten ibarettir. -\begin_deeper -\layout Itemize - -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ğunca yalıtılmalıdır. - Yapılandırma ile ilgili görevler paket yöneticisi dışındaki bir araçla - otomatik sağlanmalı, ya da kullanıcının verdiği emirlerle sonradan yapılabilmel -idir. - -\layout Itemize - -Kurulum mümkün olduğunca hızlı olmalıdır. -\end_deeper -\layout Itemize - -Kurulu programların yeni sürümleri çıktıkça, veya üzerinde düzeltmeler ve - güvenlik onarımları yapılmış yeni paket sürümleri yayımlandıkça, kullanıcı - elindeki uygulamaları güncellemek isteyecektir. -\begin_deeper -\layout Itemize - -Kullanıcı vakti yada ağ bağlantı hızı yetersiz olduğunda acil önem taşıyan - ve yapılması gerekli güncellemeleri, diğerlerinden kolayca ayırabilmelidir; - bunun yapılabilmesi için paketin her sürümündeki güncellemelerin önem derecesi - (yeni özellikler, hata düzeltmeleri, güvenlik açığı düzeltmesi) paketleme - esnasında belirtilebilmelidir. -\layout Itemize - -Bir paketin eski veya deneysel sürümlerini kurmak bilişim okuryazarının - bir ihtiyacı değildir. - 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 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 - yukarda bahsedilen kullanıcı profilinden bakıldığında gereksiz ve kafa - karıştırıcıdır. -\end_deeper -\layout Itemize - -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ğ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 - -Kullanıcı, artık ihtiyaç duymadığı bir uygulamayı, yer ve takip tasarrufu - amacıyla kaldırmak isteyebilir. - Kullanıcının bu seçimi kolayca yapabilmesi için, hiç bir paket tarafından - ihtiyaç duyulmayan paketler, kurulu paketlerin kapladığı alan gibi bilgiler - paket yöneticisinden kolayca alınabilmelidir. -\layout Itemize - -Kullanıcı sistemde nelerin kurulu olduğunu, hangi paketleri kurabileceğini, - kurulu paketlere ait bilgileri, sistemdeki bir bileşen veya dosyanın hangi - uygulamaya ait olduğunu ve benzeri paket yöneticisinden kolayca alabilmelidir. -\layout Itemize - -Paketler farklı hedeflere kurulabilecek biçimde -\begin_inset Quotes eld -\end_inset - - -\emph on -relocatable -\emph default - -\begin_inset Quotes erd -\end_inset - - özellik taşımalıdır (bu, farklı hedeflere kurulum, ya da başkasına ait - sistemde ev dizinine kurulum gibi yeteneklerin sağlanması için gereklidir). -\layout Itemize - -Paket bileşenlerinin değişip değişmediği kontrol toplamları, özet fonksiyonları - yardımıyla tespit edilebilmelidir. - 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 -\layout Itemize - -Paket hazırlamak kolay olmalıdır. - Paket hazırlanırken ve inşa edilirken gerekli dosyalar bir çok ayrı kaynaktan - temin edilebilmelidir. - -\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, - gerekli işaretlemeleri kolayca yapabilecek bir araç sunmalıdır. -\layout Itemize - -Paket yöneticisinin geliştirme sistemi, paketleyici hatalarının gözden kaçmasını - zorlaştıracak araçlar sunmalıdır. -\layout Subsection - -Paket Kaynağı Gereksinimleri -\layout Itemize - -Paketler CD, Internet, uzak dosya sistemi gibi çeşitli kaynaklardan kurulabilmel -idir. - Temel olarak iki tip kaynak sözkonusudur. -\layout Itemize - -İlk tip, pakedi tek bir dosya olarak taşıyabilen ve programı depolama aygıtları, - e-posta ve benzeri yollarla dağıtmaya uygun bir arşiv dosyasıdır. -\begin_deeper -\layout Itemize - -Bu arşiv içinden, arşiv hakkında bilgi alınabilecek dosyalara, bütün arşivi - açmadan erişilebilmelidir. -\layout Itemize - -Mümkünse arşivin yaygın olarak bilinen ve kullanılan araçlarla açılabilmesinde - yarar vardır. -\end_deeper -\layout Itemize - -İkinci tip kaynak ise Internet yada yerel ağ üzerinden bir paket grubunun - indeks bilgilerini ve kendilerini sunabilecek bir -\begin_inset Quotes eld -\end_inset - -depo -\begin_inset Quotes erd -\end_inset - - sunucusudur. -\begin_deeper -\layout Itemize - -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 - -Paketler birden fazla kaynaktan temin edilebilmelidir. -\layout Subsection - -Güvenlik Gereksinimleri -\layout Itemize - -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 - -Gerektiğinde pakedi oluşturan kişinin imzası dışında, üçüncü parti kurum - veya kişilerin de pakedi deneyip, güvendiğini belirtebilmesi için, birden - fazla kişi tarafından pakedin imzalanabilmesi gereklidir. -\layout Subsection - -Kurumsal Gereksinimler -\layout Itemize - -Paket yöneticisi birden fazla paket kaynağı ile aynı anda sorunsuz bir şekilde - çalışabilmelidir. -\layout Itemize - -Kurumlar ya da bireyler tarafından -\emph on -ön tanımlı depoda da bulunan -\emph default - kimi paketlerin değiştirilmiş versiyonlarının bulunduğu depolar -\emph on -overlay -\emph default - olarak tanımlanabilmelidir. -\layout Itemize - -Ön tanımlı depoda -\emph on -bulunmayan -\emph default - çeşitli paketlerin bulunduğu depolar -\emph on -addon -\emph default - olarak tanımlanabilmelidir. -\layout Section - -Neden PİSİ? -\layout Standard - -Hali hazırda varolan ve geniş bir kullanım oranına 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. - Bu paket yöneticilerinin geliştirilmesi ve istenen noktaya getirilmeye - çalışılması yeni ve ayakları yere daha sağlam basan bir paket yöneticisini - yeniden yazmaktan daha kolay değildir. -\layout Standard - -Daha önemlisi, varolan paket yöneticilerinin paket formatlarında -\emph on -görev -\emph default -leri ve -\emph on -bilgi -\emph default -leri birbirinden 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 iki ilkeyi temel - alan yeni bir paket yöneticisinin yazılmasına verilmiştir: -\layout Itemize - - -\series bold -Kurulum ve yapılandırma birbirinden ayrı iki görevdir -\series default -. - Kurulum, yalnızca programların kurulumu, güncellenmesi ve kaldırılması - esnasında 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ç -\series bold -ÇOMAR -\series default -'dır. - -\series bold -PİSİ -\series default - bu görevleri -\series bold - ÇOMAR -\series default -'a devredecektir. -\layout Itemize - - -\series bold -Paket meta bilgileri ile paketin derlenme ve kurulumunu yöneten betikler - iç içe geçmemelidir -\series default -. - Varolan paket yöneticilerinde paket tanımlama dosyaları kod ile bilginin - birbirine karıştığı, araçlarla işlemesi, içinden bilgi çıkarılması zor, - net ve kesin tanımlanmamış biçimlerdedir. -\layout Section - -PİSİ Tasarımı -\layout Subsection - -Paket Oluşturma -\layout Standard - -Bu kısımda bir -\series bold -PİSİ -\series default - paketinin oluşturulması ve kullanılması esnasında gerek duyulacak meta - dosyalar ve süreçler netleştirilmeye çalışılmıştır. -\layout Subsubsection - -PSPEC Dosyası -\layout Standard - - -\series bold -PSPEC (PİSİ SPECification) -\series default - dosyası paketin oluşturulması için gerekli olan temel bilgiyi tanımlar. - Oluşturulacak paketin ne olduğu, kaynağı, kim tarafından paketlendiği, - kaynağa uygulanan yamalar, hangi başka paketlere ne tür bağımlılıklar içerdiği - gibi bilgileri içerir. -\layout Standard - -Bir -\series bold -PSPEC -\series default - dosyasından, dolayısı ile bir kaynaktan birden fazla paket oluşturulabilir. - Örneğin kcontrol paketi kdebase-kaynaksürümü.paketsürümü.tar.gz kaynağından - oluşturulabilecek yalnızca bir pakettir. -\layout Standard - -Dosya biçimi XML'dir ve aşağıdaki etiketleri içerir. - Her -\series bold -PSPEC -\series default - dosyasında tüm etiketlerin bulunması zorunlu değildir. - Bulunması zorunlu olan etiketler aşağıda (*) ile belirtilmiştir. -\layout Standard - - -\series bold -PSPEC -\series default - dosyaları -\series bold -PSPEC -\series default - deposunda pakete ait dizinde -\series bold -pspec.xml -\series default - adı ile tutulurlar. -\layout Standard - -Her -\series bold -PSPEC -\series default - dosyası -\series bold -PİSİ -\series default - etiketi (tag) altında bir -\emph on -Source -\emph default - ve -\bar under -en az -\bar default - bir -\emph on -Package -\emph default - olmak üzere iki ana bölüm içermek zorundadırlar. -\layout Paragraph - -PISI -\layout Subparagraph - -Source -\layout Itemize - - -\series bold -Name -\series default -: (*) Uygulamanın adı. -\layout Itemize - - -\series bold -Homepage: -\series default -Uygulamanın web sitesinin URL'sini belirtir. -\layout Itemize - - -\series bold -Summary: -\series default - (*) Tek satırlık açıklayıcı bilgi. - Çoklu dil desteğine sahiptir. -\layout Itemize - - -\series bold -Description: -\series default - (*) -\series bold - -\series default -Uygulama hakkında özet açıklama. - Çoklu dil desteğine sahiptir. -\layout Itemize - - -\series bold -IsA: -\series default -Paketin bir kategori/sistem/kolleksiyon'a aitliğini belirtir. - -\emph on -Örn: -\emph default - -\begin_inset Quotes eld -\end_inset - -k3b is a KDE program -\begin_inset Quotes erd -\end_inset - - -\layout Itemize - - -\series bold -PartOf: -\series default -Paketin hangi bütünün/grubun parçası olduğunu belirtir. - Aitlik özellikleri için Freshmeat'in Trove kategorileri örnek verilebilir. - Örn: -\begin_inset Quotes eld -\end_inset - -LyX and TeTex are parts of Tex:Distrubiton -\begin_inset Quotes erd -\end_inset - - -\newline - -\series bold -IsA -\series default - ve -\series bold -ParfOf -\series default - bir -\series bold -PİSİ -\series default - paketinin farklı türdeki aitliklerini ifade eder. - -\series bold -PartOf -\series default - ile belirtilen bir -\series bold -Component -\series default -'in tümünü sisteme kurabilirsiniz. - Fakat -\series bold -IsA -\series default - ile belirtilen aitlikleri yanlızca sorgulayabilirsiniz. -\newline - -\emph on -Source ve Package -\emph default - tagları içerisinde yalnızca birer tane -\series bold -PartOf -\series default - tanımlanabiliyor olmasına karşın, birden fazla -\series bold -IsA -\series default - tanımlanabilir. -\layout Itemize - - -\series bold -Packager: -\series default - (*) -\series bold - -\series default -Paketi oluşturan kişilerin adı/soyadı ve e-posta adresi belirtir. -\begin_deeper -\layout Itemize - - -\series bold -Name: -\series default - (*) Paket oluşturan kişinin adı ve soyadı. -\layout Itemize - - -\series bold -Email: -\series default - (*) Paket oluşturan kişinin e-posta adresi. -\end_deeper -\layout Itemize - - -\series bold -License -\series default -: (*) Uygulamanın lisansını belirtir (GPL, BSD, vb). -\layout Itemize - - -\series bold -Archive: -\series default - (*) Uygulamanın orjinal kaynak kodunun bulunduğu URL'yi belirtir. - -\series bold -archType -\series default - arşiv tipini (tar.gz, tar.bz2, zip, vb) belirtirken, -\series bold -sha1sum -\series default -, sha1 ile alınmış özet değerini belirtir. - Her iki attribute (archType ve sha1sum) zorunludur. -\layout Itemize - - -\series bold -Patches -\series default -: Orjinal koda uygulanacak yamaların -\series bold -sıralı -\series default - bir listesini içerir. - Yamalar bu bölümde tanımlanan sıra ile kaynak koda uygulanır. -\begin_deeper -\layout Itemize - - -\series bold -Patch -\series default -: Yamanın dosya adını içerir. - -\series bold -compressionType -\series default - ile varsa sıkıştırma biçimi (gz, bz2, vb) verilebilir. - -\series bold -level -\series default - ile yamanın patch komutuna seviye verilebilir, level verilmez ise seviye - 0 olarak kabul edilir. - Örnek: -\newline -popt-1.7-uclibc.patch.gz -\end_deeper -\layout Itemize - - -\series bold -AdditionalFiles: -\series default -Kaynak ile gelmeyen ama paketin çalışması, ek özellik kazanması v.s. - için gerekli dosyaları belirtir. - ( -\emph on -örn -\emph default -; init betikleri ) -\begin_deeper -\layout Itemize - - -\series bold -AdditionalFile: -\series default - Files dizini altından alınacak dosyayı belirtir. - -\series bold -target -\series default - attribute dosyanın nereye konulacağını belirtir, zorunludur. - -\series bold - permission -\series default -attribute varsa dosyanın hangi haklarla saklanacağını belirtir. - -\series bold - owner -\series default - attribute varsa dosyanın sahip/grup bilgilerini belirtir. - Örnek: -\newline -bashrc -\end_deeper -\layout Itemize - - -\series bold -BuildDependencies -\series default -: Pakedi oluşturmak için gereken bağımlılıkları listeler. -\begin_deeper -\layout Itemize - - -\series bold -Dependency -\series default -: Bir bağımlılığı tanımlar. - Burada bahsedilen bağımlılık paket bağımlılığı olabilir. - -\series bold -versionFrom -\series default - ve -\series bold -versionTo -\series default - attribute bilgileri ile paketin hangi sürüm numarasına bağımlı olduğu ifade - edilebilir. - Örnek: -\newline -automake -\end_deeper -\layout Itemize - - -\series bold -History -\series default -: (*) Pakete yapılan güncellemelerin bir listesini verir. - -\series bold -History -\series default - altındaki güncellemeleri belirten -\series bold -Update -\series default - taglarının mutlaka tarihe göre sıralı olması gerekmektedir. - En son güncelleme en üstte bulunmalıdır. - Çünkü en son güncellemeden alınan -\series bold -Version -\series default - ve -\series bold -Release -\series default - bilgisi pakete uygulanacaktır. -\begin_deeper -\layout Itemize - - -\series bold -Update -\series default -: (*) Bir güncellemeyi tarif eder. -\begin_deeper -\layout Itemize - - -\series bold -Type: -\series default - Güncellemenin tipini belirtir ( -\series bold -\emph on -Security, Bug, Enhancement, Normal -\series default -\emph default - v.s). - Eğer bu etiket tanımlı değilse tip -\series bold -\emph on -Normal -\series default -\emph default - olarak kabul edilir. -\layout Itemize - - -\series bold -Date -\series default -: (*) Güncellemenin tarihi. -\layout Itemize - - -\series bold -Version: -\series default - (*) Uygulamanın sürüm numarası. -\layout Itemize - - -\series bold -Release: -\series default - (*) Pakedin sürüm numarası. -\end_deeper -\end_deeper -\layout Subparagraph - -Package: -\series medium - (*) -\series default - -\series medium -Uygulamadan oluşturulacak bir pakedi tanımlar. - Her -\series default -PSPEC -\series medium - dosyası en az bir -\series default -Package -\series medium - etiketi içermek zorundadır. -\layout Subparagraph - -Package -\series medium - içerisindeki bazı taglar -\emph on -Source -\emph default - içerisindekileri tekrarlayabilir. - Bu tekrarlamaların bazıları üzerine yazılırken (override) bazıları birleştirile -cektir (merge). -\layout Itemize - - -\series bold -Name -\series default -(tanımlı ise -\emph on -Source -\emph default - bölümündekinin yerine kullanılır) -\layout Itemize - - -\series bold -Summary -\series default -(tanımlı ise -\emph on -Source -\emph default - bölümündekinin yerine kullanılır) -\layout Itemize - - -\series bold -Description -\series default -(tanımlı ise -\emph on -Source -\emph default - bölümündekinin yerine kullanılır) -\layout Itemize - - -\series bold -License -\series default -(tanımlı ise -\emph on -Source -\emph default - bölümündekinin yerine kullanılır) -\layout Itemize - - -\series bold -IsA -\series default -(tanımlı ise -\emph on -Source -\emph default - bölümündeki ile birleştirilir) -\layout Itemize - - -\series bold -PartOf -\series default -(tanımlı ise -\emph on -Source -\emph default - bölümündekinin yerine kullanılır) -\layout Itemize - - -\series bold -Conflicts: -\series default - Paketin çalışması/işlevini yerine getirmesi için, sistemde olmaması gereken - paketleri belirtir, bu örneğin aynı dosyayı iki paketin de taşıması durumunda - olabilir. - -\begin_deeper -\layout Itemize - - -\series bold -Package: -\series default - Olmaması gereken paket adını verir. -\end_deeper -\layout Itemize - - -\series bold -Provides: -\series default -Paketin sağladığı -\series bold -ÇOMAR OM -\series default - bacaklarının bir listesini verir. -\layout Itemize - - -\series bold -RuntimeDependencies -\series default -: Pakedin çalışabilmesi için gereken bağımlılıkların bir listesini verir. - -\begin_deeper -\layout Itemize - - -\series bold -Dependency -\series default -: Bir bağımlılık tanımlar. - -\series bold -BuildDependency -\series default - ile aynı yapıdadır -\end_deeper -\layout Itemize - - -\series bold -InstallDependencies -\series default -: Pakedin çalışabilmesi için gereken bağımlılıkların bir listesini verir. - -\begin_deeper -\layout Itemize - - -\series bold -Dependency -\series default -: Bir bağımlılık tanımlar. - -\series bold -BuildDependency -\series default - ile aynı yapıdadır -\end_deeper -\layout Itemize - - -\series bold -Files -\series default -: (*) Pakedin kurulacak dosyalarının tiplerini belirlemek için kullanılır. - Dosya tipleri ile ilgili bigi -\begin_inset LatexCommand \ref{FType} - -\end_inset - - kısmında verilmiştir. -\begin_deeper -\layout Itemize - - -\series bold -Path -\series default - (*): -\series bold - -\series default -Bir dosya/dizin yolunu tarif eder. - Verilebilecek olan -\series bold -fileType -\series default - attribute ise path'in tipini belirtir. - Belge, paylaşımlı kütüphane, çalıştırılabilir, vb... - Eğer fileType verilmezse path tipi -\begin_inset Quotes eld -\end_inset - -other -\begin_inset Quotes erd -\end_inset - - olarak tanımlanır. - Örnek: -\newline -/usr/lib -\end_deeper -\layout Paragraph - -Örnek bir PSPEC Dosyası -\layout LyX-Code - - -\size scriptsize - -\layout LyX-Code - - -\size scriptsize - -\layout LyX-Code - - -\size scriptsize - -\layout LyX-Code - - -\size scriptsize - -\layout LyX-Code - - -\size scriptsize - popt -\layout LyX-Code - - -\size scriptsize - http://www.rpm.org/ -\layout LyX-Code - - -\size scriptsize - -\layout LyX-Code - - -\size scriptsize - Pardus Man -\layout LyX-Code - - -\size scriptsize - bilgi@uludag.org.tr -\layout LyX-Code - - -\size scriptsize - -\layout LyX-Code - - -\size scriptsize - As-Is -\layout LyX-Code - - -\size scriptsize - library:util:optparser -\layout LyX-Code - - -\size scriptsize - rpm:archive -\layout LyX-Code - - -\size scriptsize - Popt command line option parser -\layout LyX-Code - - -\size scriptsize - Command line option parsing library. -\layout LyX-Code - - -\size scriptsize - While it is similiar to getopt(3), it contains a number of enhancements, - including: -\layout LyX-Code - - -\size scriptsize - 1) popt is fully reentrant -\layout LyX-Code - - -\size scriptsize - 2) popt can parse arbitrary argv[] style arrays while getopt(2) makes - this quite difficult -\layout LyX-Code - - -\size scriptsize - 3) popt allows users to alias command line arguments -\layout LyX-Code - - -\size scriptsize - 4) popt provides convience functions for parsing strings into argv[] - style arrays -\layout LyX-Code - - -\size scriptsize - -\layout LyX-Code - - -\size scriptsize - ftp -://ftp.rpm.org/pub/rpm/dist/rpm-4.1.x/popt-1.7.tar.gz -\layout LyX-Code - - -\size scriptsize - -\layout LyX-Code - - -\size scriptsize - popt-1.7-uclibc.patch.gz -\layout LyX-Code - - -\size scriptsize - -\layout LyX-Code - - -\size scriptsize - -\layout LyX-Code - - -\size scriptsize - automake -\layout LyX-Code - - -\size scriptsize - -\layout LyX-Code - - -\size scriptsize - -\layout LyX-Code - - -\size scriptsize - -\layout LyX-Code - - -\size scriptsize - 06/14/2005 -\layout LyX-Code - - -\size scriptsize - 1.7 -\layout LyX-Code - - -\size scriptsize - 3 -\layout LyX-Code - - -\size scriptsize - -\layout LyX-Code - - -\size scriptsize - -\layout LyX-Code - - -\size scriptsize - 06/10/2005 -\layout LyX-Code - - -\size scriptsize - 1.7 -\layout LyX-Code - - -\size scriptsize - 2 -\layout LyX-Code - - -\size scriptsize - -\layout LyX-Code - - -\size scriptsize - -\layout LyX-Code - - -\size scriptsize - -\layout LyX-Code - -\layout LyX-Code - - -\size scriptsize - -\layout LyX-Code - - -\size scriptsize - popt -\layout LyX-Code - - -\size scriptsize - -\layout LyX-Code - - -\size scriptsize - gettext -\layout LyX-Code - - -\size scriptsize - -\layout LyX-Code - - -\size scriptsize - -\layout LyX-Code - - -\size scriptsize - /usr/lib -\layout LyX-Code - - -\size scriptsize - /usr/share/doc -\layout LyX-Code - - -\size scriptsize - /usr/share/man -\layout LyX-Code - - -\size scriptsize - /usr/share/locale -\layout LyX-Code - - -\size scriptsize - /usr/include/popt.h -\layout LyX-Code - - -\size scriptsize - -\layout LyX-Code - - -\size scriptsize - -\layout LyX-Code - - -\size scriptsize - -\layout Standard - -Yukarıdaki örnek dosyada -\emph on -Package -\emph default - içerisinde tanımlanmayan taglar -\emph on -Source -\emph default - içerisinden alınarak kullanılacaktır. - Bir kaynak paketten birden fazla ikili (binary) paket oluşturmak için -\emph on -Package -\emph default - etiketleri farklı isimler (Name) verilerek arttırılabilir. - -\emph on -Paketler -\emph default - -\series bold -Files -\series default - içerisinde bulunan -\series bold -Path -\series default - taglarına göre bölümlendirilecektir. -\layout Subsubsection - -actions.py Dosyası -\layout Standard - -Bu dosya bir Python betiği olup, kaynağın kurulması, derlenmesi, test edilmesi, - sisteme kurulması gibi işlevleri yerine getiren fonksiyonlardan oluşur. - -\layout Standard - -Paketin oluşturulması sırasında derleme sistemi -\series bold -actions.py -\series default - içerisindeki 3 fonksiyon adını arar ve çalıştırır; -\series bold -setup, build, install -\series default -. - Bu fonksiyonlardan install'ın tanımlanması zorunlu olmakla birlikte setup - ve build sadece tanımlanmışsa çalıştırılır. - -\layout Standard - - -\series bold -actions.py -\series default -'ler tarafından kullanılmak üzere -\series bold -PİSİ -\series default - tarafından hazır bir -\series bold -API -\series default - ActionsAPI adında sunulacaktır. -\layout Paragraph - -Örnek bir actions.py dosyası: -\layout LyX-Code - - -\size scriptsize -from pisi.actionsapi import gnuconfig -\layout LyX-Code - - -\size scriptsize -from pisi.actionsapi import autotools -\layout LyX-Code - -\layout LyX-Code - - -\size scriptsize -def setup(): -\layout LyX-Code - - -\size scriptsize - gnuconfig.gnuconfig_update() -\layout LyX-Code - - -\size scriptsize - autotools.configure( -\begin_inset Quotes eld -\end_inset - ---with-nls -\begin_inset Quotes erd -\end_inset - -) -\layout LyX-Code - -\layout LyX-Code - - -\size scriptsize -def build(): -\layout LyX-Code - - -\size scriptsize - autotools.make() -\layout LyX-Code - -\layout LyX-Code - - -\size scriptsize -def install(): -\layout LyX-Code - - -\size scriptsize - autotools.install() -\layout Subsubsection - -ChangeLog Dosyası -\layout Standard - -Pakedin sürümlerindeki değişikliklerin açıklamalarını içerir. - Bu dosya bilindik -\series bold -ChangeLog -\series default - stilindedir ve -\series bold -PSPEC -\series default - içindeki -\series bold -History -\series default - bilgisi ile ilgili değildir. -\layout Subsection - -metadata.xml -\layout Standard - - -\series bold -Metadata -\series default - dosyası bir uygulamanın paket haline geldikten sonra yanında taşıyacağı - ve paket ile ilgili bilgileri barındıran dosyadır. - -\layout Standard - - -\series bold -Metadata -\series default - dosyası sadece oluşturulan paket ile ilgili bilgileri tutmaktan sorumludur. - Paket hakkında temel bilgi bu dosyadan alınacaktır. -\layout Standard - -Bu bilgilerin büyük kısmı -\series bold -PSPEC -\series default - dosyasının işlenmesi sonucu ile -\series bold -Metadata -\series default - dosyasına yazılmaktadır. - -\series bold -Metadata PSPEC -\series default - dosyasından alınan bilgilerin yanında kaynak derlendikten ve paket oluşturulduk -tan sonra alınabilecek diğer bilgileri de içerir (paketin kurulduktan sonra - sistemde kaplayacağı alanın boyutu gibi). -\layout Standard - - -\series bold -Metadata -\series default - dosyasının içeriği şöyle tanımlanmıştır; -\layout Standard - - -\series bold -PISI -\layout Subparagraph - -Source: -\series medium -Bu bölümdeki bilgiler -\series default -PSPEC -\series medium - dosyasının -\emph on -Source -\emph default - bölümünden alınır. -\layout Itemize - - -\series bold -Name -\layout Itemize - - -\series bold -Homepage -\layout Itemize - - -\series bold -Summary -\layout Itemize - - -\series bold -Description -\layout Itemize - - -\series bold -Packager -\begin_deeper -\layout Itemize - - -\series bold -Name -\layout Itemize - - -\series bold -Email -\end_deeper -\layout Subparagraph - -Package -\layout Itemize - - -\series bold -Name -\layout Itemize - - -\series bold -Summary -\layout Itemize - - -\series bold -Description -\layout Itemize - - -\series bold -License -\layout Itemize - - -\series bold -History -\begin_deeper -\layout Itemize - - -\series bold -Update -\begin_deeper -\layout Itemize - - -\series bold -Type -\layout Itemize - - -\series bold -Date -\layout Itemize - - -\series bold -Version -\layout Itemize - - -\series bold -Release -\end_deeper -\end_deeper -\layout Itemize - - -\series bold -Conflicts -\layout Itemize - - -\series bold -Provides: -\series default - Paketin hangi OM bacaklarını sağladığını belirtir. -\layout Itemize - - -\series bold -RuntimeDependencies -\begin_deeper -\layout Itemize - - -\series bold -Dependency -\layout Itemize - - -\series bold -InstallDependencies -\begin_deeper -\layout Itemize - - -\series bold -Dependency -\end_deeper -\layout Itemize - - -\series bold -Files -\begin_deeper -\layout Itemize - - -\series bold -Path -\end_deeper -\layout Itemize - - -\series bold -Distribution: -\series default - Paketin ait olduğu dağıtımı belirtir (Pardus). -\layout Itemize - - -\series bold -DistributionRelease: -\series default - Paketin ait olduğu dağıtımın hangi sürümü için oluşturduğunu belirtir (1.0). -\layout Itemize - - -\series bold -Architecture: -\series default -Paketin hangi mimari için yapıldığını belirtir. -\layout Itemize - - -\series bold -InstallSize: -\series default -Paketin sisteme kurulduğunda kaplayacağı alanın tahmini boyutunu belirtir. -\end_deeper -\layout Standard - -Yukarıda tanımlanan -\series bold -Metadata -\series default - dosyası, belirlenecek paket formatının içinde -\series bold -\emph on -XML -\series default -\emph default - dosyası olarak tutulacaktır. - -\series bold -Metadata -\series default - XML dosyalarının yapısı -\series bold -PSPEC -\series default - dosyası ile hemen hemen aynıdır. - Yalnızca Metadata paket oluşumundan sonra elimizde olan bazı ek bilgileri - de içerir. - -\layout Subsection - -files.xml -\layout Standard - -Kaynak derlendikten sonra oluşan dosyaların oluşturulan pakete göre -\series bold -(Package) -\series default - sınıflandırılması gerekmektedir. - Tek bir kaynaktan birden fazla paket oluşturulması, kaynağın derlenmesinden - sonra oluşan dosyaların sınıflandırılması ile olur. -\layout Standard - -files.xml dosyası paket geliştirme aracı/araçları ile oluşturularak paket - içerisine yerleştirilir. -\layout Itemize - - -\series bold -Files -\begin_deeper -\layout Itemize - - -\series bold -Package: -\series default -Dosya serisinin hangi -\series bold -\emph on -SubPackage -\series default -\emph default -'i oluşturduğunu belirtir. - (örn. - mysql-devel, mysql-client, mysql-server , mysql-doc) -\layout Itemize - - -\series bold -File: -\series default - Pakete dahil edilecek bir dosyayı tarif eder. -\begin_deeper -\layout Itemize - - -\series bold -Path: -\series default - Dosyanın, paket içerisindeki yerini belirtir. - -\series bold -PISI -\series default - gereklerinden biri paketin belirtilen konuma kurulabilmesi olduğu için - konum bilgisi bağımlı (rölatif) olarak verilir. -\layout Itemize - - -\series bold -Type -\begin_inset LatexCommand \label{FType} - -\end_inset - -: -\series default - Dosyanın tipini belirtir. - Paket sisteme kurulduğunda, veritabanına bu tip tanımı ile işaretlenerek - yerleştirilecektir. - Bu tip tanımları şunlardan birisi olabileceği gibi boş da bırakılabilir: - -\noun on -executable, conf, doc, sharedLib, localeData, programData, header -\noun default -. -\layout Itemize - - -\series bold -Size: -\series default -Dosyanın byte cinsinden boyutunu saklar. -\layout Itemize - - -\series bold -SHA1Sum: Path -\series default - ile belirtilen dosyanın SHA1 algoritması ile elde edilmiş -\emph on -cryptographic -\emph default -özet değerini saklar. -\end_deeper -\end_deeper -\layout Standard - -files.xml dosyalarının doğrulanması için kullanılabilecek bilgi -\emph on -pisi-files.dtd -\emph default - dosyasında tanımlanmıştır. -\layout Standard - -TODO: Örnek -\layout Subsection - -PSPEC Deposu -\layout Standard - -Paketleri oluşturmak için gerekli -\series bold -PSPEC -\series default - dosyaları hiyerarşik bir yapıda bir -\emph on -subversion -\emph default - deposunda sunulacaktır. - Geliştirme işlemleri bu depo üzerinde yapılacaktır. - -\series bold -PSPEC -\series default - deposunda paketler -\emph on - -\begin_inset Quotes eld -\end_inset - - -\series bold -\emph default -ilk harflerine göre -\series default -\emph on - -\begin_inset Quotes erd -\end_inset - - -\emph default - konumlandırılırlar. - Her paket kendine ait bir dizinde -\series bold -PSPEC -\series default - dosyası, paket oluşturma için gerekli olan ek dosyalar ve yamaların içinde - bulunduğu files -\series bold -/ -\series default - dizini ve paket oluşturmada kullanılacak betiklerin bulunduğu actions -\series bold -/ -\series default - dizinine sahiptir. -\layout Standard - -Bir geliştiricinin -\series bold -Pardus Linux -\series default -'a paket yapması için yalnızca -\series bold -PSPEC -\series default - depo sıradüzeninde paket için gerekli olan dosyaları sağlaması yeterlidir. - -\series bold -Pardus Linux -\series default -'un belirli zamanlarda kullanıcılara sunulacak sürümlerini oluşturmak için - bu -\series bold -PSPEC -\series default - deposundaki bu bilgiler kullanılarak -\series bold -PİSİ -\series default - paketleri oluşturulacaktır. - -\layout Standard - -Bir yazılımın birden fazla sürümünün depoya eklenmesi gerekiyorsa, farklı - paket isimleri ile depoya yerleştirilirler. - (gtk1, gtk2 gibi...) -\layout Subsubsection - -Örnek PSPEC Deposu Sıradüzeni -\layout Itemize - - -\series bold -a -\series default -/ -\begin_deeper -\layout Itemize - - -\series bold -a -\series default -cpid/ -\begin_deeper -\layout Itemize - -pspec.xml -\layout Itemize - -actions.py -\layout Itemize - -ChangeLog -\layout Itemize - - -\series bold -files/ -\begin_deeper -\layout Itemize - -acpid.init -\end_deeper -\layout Itemize - - -\series bold -patches/ -\begin_deeper -\layout Itemize - -acpid-1.0.2-branch.patch -\end_deeper -\layout Itemize - - -\series bold -comar/ -\begin_deeper -\layout Itemize - -acpid.csl -\end_deeper -\end_deeper -\end_deeper -\layout Subsection - -Category ( IsA ) -\layout Standard - -FIXME: Daha anlamlı cümleler ve temiz anlatım -\layout Standard - -Bir uygulamanın yaptığı işi, ait olduğu kategoriyi belirtir yani uygulamaların - sıfatlarıdır. - Bu bilgi kullanılarak bir işi ya da işler grubunu yapan uygulamalar sorgulanabi -lir. - Örneğin PDF Gösteren uygulamaları göster, Ogg çalan ve konsoldan çalışan - uygulamalar hangileridir gibi. -\layout Subsection - -Component ( PartOf ) -\layout Standard - -FIXME: Daha anlamlı cümleler ve temiz anlatım -\layout Standard - -Bir paketler bütününden oluşan anlamlı ve kurulabilir birliği temsil eder. - Yani uygulamaları kapsüller. - Örneğin KDE Component'ı içinde kdebase, kdepim, kdemultimedia v.s gibi kaynaklar -ı bulundurur, kdebase ise kcontrol, konqueror v.s. - gibi paketlerden oluşur. - Bu bilgi kullanılarak örneğin KDE Component'ını sisteme kur, kaldır, güncelle - gibi eylemler gerçekleştirilebilir. -\layout Subsection - -İkili Paket Deposu -\layout Standard - -Oluşturulan ikili paketler -\series bold -PSPEC -\series default - dosyalarının tutulduğu hiyerarşik yapının aynısına sahip bir depoda sunulacaktı -r. - Paketlerin içerisinde bulunan -\emph on -metadata.xml -\emph default - dosyaları depodaki paketlerden alınarak ve birleştirilerek -\series bold -pisi-index.xml -\series default - isminde bir içerik (depo içeriği) dosyası düzenli aralıklar ile oluşturulacaktı -r -\layout Standard - -İçeriğinde mevcut sürümün bilgilerini içerecek bir dosya oluşturulacaktır. - Bu dosya dağıtımın tüm paketleri için şu bilgileri içerecektir; -\layout Itemize - - -\series bold -Name -\layout Itemize - - -\series bold -Summary -\series default - -\layout Itemize - - -\series bold -Description -\layout Itemize - - -\series bold -Version -\layout Itemize - - -\series bold -Release -\layout Itemize - - -\series bold -License -\layout Itemize - - -\series bold -RuntimeDependencies -\layout Itemize - - -\series bold -InstallDependencies -\layout Itemize - - -\series bold -Provides -\layout Itemize - - -\series bold -History -\layout Itemize - - -\series bold -Conflicts -\layout Itemize - - -\series bold -PackageSize -\layout Itemize - - -\series bold -InstalledSize -\layout Standard - - -\series bold -pisi-index.xml -\series default - dosyasının biçimi XML'dir. - Dosyanın doğrulanması için kullanılabilecek bilgi -\emph on -pisi-index.dtd -\emph default - dosyasında tanımlanmıştır. -\layout Standard - -Bu dosya değiştirilmeyecek ve sadece Dağıtım Sürüm değiştirdiği zaman yenisi - oluşturulacaktır. - Aktif sürüm sırasında tüm değişiklikler -\series bold -ChangeSet -\series default - olarak sunulacaktır. - İstemci bilgisayarlarca çekilecek ve bağımlılık çözme, paket veritabanını - arama, paket kurma/kaldırma işlemleri bu dosyaların -\series bold -pisi.index -\series default - ile birleştirilmesi yardımı ile yapılacaktır. - -\layout Standard - - -\series bold -ChangeSet -\series default -'ler -\series bold -pisi.index -\series default - dosyasına yama olarak sunulacaklardır. - Kolay oluşturulan, az bant genişliği isteyen ve efektif olmaları açısından - içeriklerini -\series bold -pisi.index -\series default -'in bir önceki revizyonlarından olan farkları arttırımsal (incremental) - olarak oluşturacaktır. -\layout Standard - -Kullanıcı bilgisayarında oluşturulacak depo veritabanı -\series bold -pisi.index -\series default - ve -\series bold -Changeset -\series default -'ler yardımı ile yaratılacaktır. - Kullanıcının depodaki paketlerin en güncel bilgilerini alabilmesi için - depo veritabanını düzenli olarak güncellemesi gerekmektedir. - Bu işlem bir arkaplan uygulaması ile otomatik olarak yaptırılabilir. -\layout Standard - -Depoya eklenecek ikili paketler geliştiriciden alınmayacak, -\series bold -PİSİ -\series default - derleme ortamı tarafından hazırlanıp uygun görülen depoya yerleştirilecektir. - Böylece geliştiricinin sisteminden kaynaklanabilecek olası problemlerin - (sürüm farklılıkları, sorunlu ya da güvensiz yazılımlar vs.) önüne geçilecektir. -\layout Standard - - -\series bold -PİSİ -\series default - istemcisi birden fazla depo ile çalışabilecektir. - Birden fazla depo tanımlanması durumunda öncelikli depo her zaman -\series bold -Pardus Resmi Deposu -\series default - olacaktır. - Diğer depolar eşit önceliğe sahip olacaklardır ve kullanıcı elle belirtmediği - sürece tüm depolarda bulunan paketler resmi depodan alınacaktır. -\layout Subsection - -PİSİ Paketinin Yapısı -\layout Standard - - -\series bold -PİSİ -\series default - paketleri ikili bir biçimde sunulacaktır. - Bu bölüm paketlerin biçemini (format) ve içerdiklerini tanımlamaktadır. -\layout Standard - - -\series bold -PİSİ -\series default - paketi, içerisinde aşağıdaki bölümler olan bir -\emph on -PK-ZIP -\emph default - paketidir. - Bu sayede paketler standart araçlar ile açılabilir/erişilebilir olacaklardır. -\layout Itemize - - -\series bold -metadata.xml: -\series default - -\series bold -PSPEC -\series default - dosyasından alınacak ve üzerine eklenecek bilgiler ile oluşturulacak Meta - bilgisi -\layout Itemize - - -\series bold -files.xml: -\series default - Paket içerisinde bulunan dosyaların bir listesi -\layout Itemize - - -\series bold -comar/ dizini: -\series default - Kurulum betikleri -\layout Itemize - - -\series bold -install/ dizini: -\series default - Paketin kurulu biçimi. - Paketin sisteme kurulumu bu dizinin belirtilen dizine açılır. -\layout Subsection - -Süreçlerin Tarifi -\layout Standard - -Süreç tarifi paket sisteminin en temel görevlerini, tasarımı özetlemek amacı - ile anlatır. -\layout Subsubsection - -Paket Oluşturmak -\layout Standard - - -\begin_inset Graphics - filename images/pisi-gelistirici-small.png - rotateOrigin center - -\end_inset - - -\layout Standard - -Bir geliştiricinin paket oluşturmak için izleyeceği adımlar şöyledir; -\layout Itemize - - -\series bold -Geliştirici Grafik Arayüzü -\series default - ya da konsol araçları yardımı ile -\series bold -PSPEC -\series default - dosyası yukarıda anlatılan yapıya uygun olarak oluşturulur. - Gerekli olacak yamalar ve dosyalar yukarıda tarif edildiği gibi files/ - dizinine yerleştirilir. -\layout Itemize - -Oluşturulan -\series bold -PSPEC -\series default - dosyası, hazırlanan paketin derlenebilmesi için -\series bold -PİSİ -\series default - tarafından işlenir. - Eğer gerekli paketler sistemde mevcut değil ise bu paketler -\series bold -PİSİ -\series default - tarafından otomatik veya kullanıcıya sorularak sisteme kurularak, sistem - derleme işlemine hazır hale getirilir. - -\layout Itemize - -Oluşturulan -\series bold -PSPEC -\series default - dosyasının Source bölümündeki bilgiler işlenerek kaynak kod sisteme alınır - ve doğruluğu kontrol edilir. - Gerekli dosya ve yamalar yukarıda anlatılan biçime uygun bir şekilde -\series bold -PİSİ -\series default -tarafından açılır ve gerekli yamalar koda uygulanır. - -\layout Itemize - - -\series bold -actions.py -\series default -\emph on - -\emph default -betiği işletilerek kaynak koddan ikili veri oluşturulur. -\layout Itemize - -Geliştirici (tercihen grafik arayüz yardımı ile) derleme sonrası oluşturulan - dosyaları, -\series bold -PSPEC -\series default - dosyasında tanımlanan -\series bold -\emph on -Package -\series default -\emph default - bölümlerine göre sınıflandırır. - Oluşturulacak her paket için -\series bold -files.xml -\series default - dosyası yaratılır. -\layout Itemize - - -\series bold -PİSİ, PSPEC -\series default - ve -\series bold -files.xml -\series default - dosyalarını işleyerek paketi veya paketleri oluşturur. -\layout Itemize - -Geliştirici oluşturduğu paketleri sisteminde test eder. -\layout Itemize - -Oluşturulan paket oluşturma dosyaları ( -\series bold -PSPEC -\series default - dosyası, actions.py ve dizinler) -\series bold -Merkezi Paket Derleme Çiftliği -\series default - tarafından derlenmek üzere -\series bold -PSPEC -\series default - -\series bold -Dosyalar Deposu -\series default -'na iletilir. -\layout Itemize - -İletilen -\series bold -PSPEC -\series default - dosyası -\series bold -Merkezi Paket Derleme Çiftliği -\series default - tarafından ikili paket veya paketler haline getirilir. -\layout Itemize - -Oluşturulan paket veya paketler -\series bold -Paket Deposu -\series default -'na yerleştirilir. -\layout Subsubsection - -Paket Kurmak -\layout Standard - - -\begin_inset Graphics - filename images/pisi-istemci-small.png - rotateOrigin center - -\end_inset - - -\layout Standard - -Bir istemcinin sisteme paket kurmak için izleyeceği yol şöyledir; -\layout Itemize - -Sistemdeki ilgili uygulamalardan biri -\series bold -PİSİ -\series default -'ye paket kurması için istekte bulunur. -\layout Itemize - - -\series bold -PİSİ -\series default -, kendi yapılandırma dosyasını işleyerek, kendi yapılandırma dosyasının - içindeki bilgilerin ışığında -\series bold -Paket Deposu -\series default -ndan deponun durumu ile ilgili bilgileri ( -\series bold -ChangeSet -\series default -ler ve kullanıcı yeni bir depo kullanmaya başladıysa -\series bold - pisi-index.xml -\series default -) alır. -\layout Itemize - -Gerekiyorsa -\series bold - Depo -\series default -dan aldığı bilgileri -\series bold -Depo Veritaban -\series default -ına yerleştirir. -\layout Itemize - - -\series bold -PİSİ -\series default - istenen paketin kurulması için gerekli olan bilgileri, ihtiyaç duyulan - paketleri belirler. - Gerekli olan paketleri -\series bold -Paket Deposu -\series default -ndan çekerek sisteme kurar. - Eğer çakışan paketler var ise bunları çözer. -\layout Itemize - - -\series bold -PİSİ -\series default - Kurulacak paketi -\series bold -Paket Deposu -\series default -ndan çeker ve çektiği paketin doğruluğunu kontrol ederek sisteme kurar. - Kurduğu paket ile ilgili bilgileri -\series bold -Kurulu Paket Veritabanı -\series default -'na yerleştirir. -\layout Itemize - -Paketlerin yanında taşıdığı -\series bold -CSL -\series default - betiklerini -\series bold -ÇOMAR -\series default -'a verir. -\layout Subsubsection - -Paket Kaldırmak -\layout Standard - -Bir istemcinin sisteme paket kaldırmak için izleyeceği yol şöyledir; -\layout Itemize - -Sistemdeki ilgili uygulamalardan biri -\series bold -PİSİ -\series default -'ye paket kaldırmak için istekte bulunur. -\layout Itemize - - -\series bold -PİSİ -\series default -, kendi yapılandırma dosyasını işleyerek, -\series bold -Kurulu Paket Veritabanı -\series default -ndan paketin başka bir paket tarafından gereksinim duyulup duyulmadığını - kontrol eder. -\layout Itemize - - -\series bold -PİSİ -\series default - paketi kaldırır. - -\layout Itemize - - -\series bold -ÇOMAR -\series default -'a ilgili -\series bold -CSL -\series default - betiklerini kaldırması için silinen paket ile ilgili bilgi verir. -\layout Subsubsection - -Bağımlılık çözmek -\layout Standard - -TODO: Ayrıntılı algoritmik anlatım gerekiyor -\layout Standard - - -\series bold -PİSİ -\series default - içerisinde paket bağımlılığı, doğrudan paket isim ve sürüm numarasına bağımlılı -k olarak tanımlanmıştır. - Bu yüzden paket bağımlılığının çözümü depo veritabanından bağımlılığı oluşturan - paketleri iteratif olarak çıkarmak ile sınırlıdır. -\layout Standard - -Paketler için tanımlanan bir diğer bağımlılık tipi ise -\series bold -ÇOMAR OM -\series default - (Object Model) bacaklarına olan bağımlılıktır. - Bu bağımlılığın çözümü için Kurulu Paketler ve Depo veritabanları sorgulanarak - ilgili -\series bold -OM -\series default - bacağını sağlayan bir paketin sistemde kurulu durumda olup olmadığı bilgisi - çıkartılır. - Eğer yoksa ilgili -\series bold -OM -\series default - bacağını sağlayan paketlerin bir listesi sunulur. -\layout Subsection - -Veritabanları -\layout Standard - -FIXME: Ayrıntılı tanım eklenecek -\layout Standard - -İstemci makinadaki paket veritabanı aşağıdaki bölümlere sahip olacaktır. - Veritabanları -\series bold -\emph on -BerkeleyDB -\series default -\emph default - veritabanlarıdır. -\layout Standard - -Beta versiyonda tek bir depo desteklenecektir. -\layout Itemize - - -\series bold -Kurulu Paketler Veritabanı: -\series default - -\emph on -Paket adı, sürüm numarası, hangi depodan kurulduğu ve dosyalar (files.xml) - -\emph default -bölümlerini içerecektir. -\layout Itemize - - -\series bold -Depo Veritabanları: -\series default - Birden fazla depo veritabanı olabilir. - Her depo için -\series bold -pisi-index.xml -\series default - dosyası içeriği depo veritabanına aktarılacaktır. -\layout Itemize - - -\series bold -Kaynak Veritabanları -\layout Subsubsection - -Kurulum Veritabanı -\layout Standard - -FIXME: Ayrıntılı tanım eklenecek -\layout Subsubsection - -Depo Veritabanları -\layout Standard - -FIXME: Ayrıntılı tanım eklenecek -\layout Subsubsection - -Kaynak Veritabanları -\layout Standard - -FIXME: Ayrıntılı tanım eklenecek -\layout Subsection - -libpisi -\layout Standard - -Paket veritabanının ana yüklenicisi libpisi kütüphanesi olacaktır. - Kütüphanenin temel görevleri aşağıdaki liste ile özetlenebilir. -\layout Itemize - -Bir paketi sisteme kurma -\layout Itemize - -Sistemden bir paketi kaldırma -\layout Itemize - -Verilen bir -\series bold -PİSİ -\series default - paketini açma -\layout Itemize - -Verilen bir -\series bold -PİSİ -\series default - paketi içerisinden yalnızca bir dosyayı/dizini çıkarma (metadata.xml dosyası - veya install/ dizini gibi) -\layout Itemize - -Bağımlılık çözümleme -\layout Itemize - -Depo veritabanını sorgulama -\layout Itemize - -Kurulu paketler veritabanını sorgulama -\layout Itemize - -Verilen bir ikili paketi sorgulama -\layout Itemize - -İkili paketler deposundan bir paketi çekme/alma (fetch). -\layout Itemize - - -\series bold -PSPEC -\series default - dosyalarını okuma/işleme/oluşturma. -\layout Itemize - - -\series bold -PSPEC -\series default - dosyasında belirtilen bir uygulama kaynağını çekme/alma (fetch) -\layout Itemize - -Farklı dosya tiplerini (zip, tar, tar.gz, tar.bz2) açma -\layout Itemize - -Action betiklerini çalıştırma -\layout Itemize - -İkili -\series bold -PİSİ -\series default -paketi oluşturma -\layout Itemize - -Kurulu paketler veritabanını güncelleme (yeni girdi ekleme, girdi silme - veya bir girdiyi güncelleme) -\layout Itemize - -Dosya sistemini paket işlemleri için sorgulama (bir paketin kurulumu için - diskte yeteri kadar boş yer bulunuyor mu?) -\layout Itemize - -Dosya özetlerini (hash) oluşturma ve doğruluklarını kontrol etme. -\layout Itemize - -Paketi imzalama ve imzanın doğruluğunu kontrol etme. -\layout Itemize - - -\series bold -ÇOMAR -\series default - sistemi ile iletişim kurma (CSL betiklerinin -\series bold -ÇOMAR -\series default -'a bildirilmesi, betiklerin -\series bold -ÇOMAR -\series default -'dan kaldırılması) -\layout Standard - -Bu gerekleri sağlamak için libpisi modülleri aşağıdaki şekilde gruplanmışlardır. -\layout Itemize - -XML -\layout Itemize - -DB -\layout Itemize - -ZIP -\layout Itemize - -Util -\begin_deeper -\layout Itemize - -unpack (tar, tar.gz, tar.bz2, zip) -\layout Itemize - -sha1 -\layout Itemize - -patch -\layout Itemize - -gpg -\layout Itemize - -fileutils (stat, vb. - şeyler için) -\end_deeper -\layout Itemize - -DepSolver (bağımlılık çözümleyici) -\layout Itemize - -Fetcher -\layout Itemize - -ActionExec (Action betiklerinin çalıştırılması) -\layout Itemize - -COMAR -\layout Itemize - -Package (xml, zip, gpg, util modüllerini kullanıyor...) -\layout Subsection - -PİSİ Package Builder (GUI) -\layout Itemize - - -\series bold -PSPEC -\series default - dosyasını kullanıcının tanımları doğrultusunda oluşturacak -\layout Itemize - -Action betiklerini kullanıcıya yazdıracak -\layout Itemize - -files.xml dosyasını/dosyalarını oluşturacak. -\layout Itemize - -libpisi kullanarak paket oluşturacak. -\the_end