SDB:Generating YaST Installation Sources

Şuraya atla: kullan, ara


Version: 9.0 -

Durum

Bir SUSE LINUX sürümü için yükleme kaynağı teklif etmek istiyorsunuz.

Süreç

YaST için iki çeşit yükleme kaynağı vardır, plain cache ve "gerçek" YaST kaynakları.

Plain Cache Kaynakları

Bir Plain Cache kaynağı RPM dosyalarını içeren dizindir. YaST'ın bir dizini plain cache kaynağı olarak algılaması için varolan RPM paketlerinin RPM başlık bilgisini içeren bir dosya yaratmalısınız(IS_PLAINcache). YaST'ın dosyayı tekrar tekrar okumasını engellemek için paket verisini (ad, sürüm, bağlantılar vb.) bir .rpm dosyasından alması gerekmektedir. Geniş paketler için - paketi yüklemek istemeseniz bile - bu uzun iletim zamanları anlamına gelir. Bunun sonucunda, paketlerde bulunan paket verisi çıkarılır ve bir dosyada korunur.

Bu dosya, SUSE LINUX 9.0'dan başlamak üzere yast2-packagemanager paketinde bulunan genIS_PLAINcache özelliği ile oluşturulabilir.

Üstünlükleri
  • Oluşturulması kolaydır.
Olumsuz Yanları
  • Kaynak RPM'ler (src.rpm) desteklenmiyor.
  • Çoklu yapılar (i586, i686, noarch, ppc, vb.) desteklenmiyor.
  • YaST içinde yükleme kaynağının açıklaması yoktur.
  • genIS_PLAINcache, sadece SUSE sistemlerinde çalışan bir çiftli sistemdir (script değildir).
Örnek

Sunucunuzun içinde bir çok çiftli RPM dosyalarının bulunduğu bir dizin var ve buna HTTP veya FTP aracılığıyla YaST yükleme kaynağının ulaşabilmesini istiyorsunuz.

/srv/www/htdocs/suse/RPMS/
                          `- software1-1.0-1.i686.rpm
                          `- software2-1.0-1.i686.rpm
                          `- software3-1.0-1.i686.rpm
                          `- test/
                                  `- test1-0.99-1.i686.rpm
                                  `- test2-0.99-1.i686.rpm
                                  `- test3-0.99-1.i686.rpm

Bir plain cache kaynağı elde etmek için aşağıdaki komutları çalıştırınız:

cd /srv/www/htdocs/suse/RPMS/
genIS_PLAINcache -f -r .
gzip genIS_PLAINcache


Ardından, YaST -> Change Source of Installation içindeki yükleme kaynağı olarak dizini ekleyebilirsiniz. Unutmayınız, kısıtlamalar yukarıda belirtilmiştir.

YaST Kaynakları

Bir "Gerçek" YaST kaynağı, yükleme kaynağını ve onun içeriğini tanımlayan pek çok dosya ve dizin içerir. Bu içerik farklı yapılar için çiftli RPM dosyaları ve ayrı kaynak RPM dosyalarıdır. SUSE LINUX 9.0'dan başlayarak autoyast2-utils paketi içinde bulunan create_package_descr scripti ile tanımlayıcı dosyaların bazıları üretilebilir.

Üstünlükleri
  • Kaynak RPM'ler desteklenir.
  • Çoklu yapılar desteklenir.
  • YaST içinde yükleme kaynağının tanımları görüntülenebilir.
Olumsuz Yanları
  • Üretimi kolay değildir.

Yükleme kaynağının tanımları pek çok dosyaya paylaştırılmıştır:

  • media.1/
       `- media
  • content
  • directory.yast
  • setup/descr/
           `- packages
           `- packages.DU
           `- packages.en
media.1/media

media.1/media dosyası aşağıdaki bileşenler hakkında tanımların bulunduğu bir ortamı içerir:

File: media.1/media
Content: <Author>
<Date of creation (YYYYMMDDHHMMSS)>
<Number of media>

Örnek:

Packman
20040027150052
1

İpucu: Date stringi date özelliği ile üretilebilir: date +%Y%m%d%H%M%S

content

content dosyası aşağıdaki bileşenler hakkında tanımların bulunduğu bir ortamı içerir:

Anahtar İçerik
PRODUCT Ürün adı
VERSION Ürün sürümü
VENDOR Üretici
LABEL YaST içinde kullanılacak olan kaynak etiketi
ARCH.<base> Temel yapı olarak desteklenen yapılar
DEFAULTBASE YaST tarafından temel yapının belirlenemediği durumlarda kullanılmak üzere default temel yapı
DESCRDIR Paket tanımlarını içeren dizin
DATADIR Paketleri içeren dizin

Örnek:

PRODUCT Packman
VERSION 9.0-0
LABEL Packman (SUSE LINUX 9.0)
VENDOR Packman Packager Team
ARCH.i686 i686 i586 i486 i386 noarch
ARCH.i586 i586 i486 i386 noarch
DEFAULTBASE i586
DESCRDIR setup/descr
DATADIR RPMS
directory.yast

YaST bu dosyayı, yükleme kaynağının, dizin listelerini desteklemeyen bir protokol tarafından adreslenmesi durumunda kullanır (örneğin HTTP). Dosya ls özelliğiyle kolaylıkla üretilebilir:

ls -A1 > directory.yast

Örnek:

RPMS
content
directory.yast
media.1
setup
setup/descr/*

Bu dosyalar create_package_descr scripti ile üretilebilir. Bağlantıları, boyutu ve yükleme kaynağı içinde yer alan bütün paketlerin paket tanımlarını içerirler.

Örnek

FTP sunucunuz, SUSE LINUX için çiftli ve kaynak RPM paketlerini içeren bir dizine sahip. Pek çok çiftli RPM paketleri iki mimâri için vardır: i586 / i686. Ayrıca, bazı scriptler mimari-bağımsız RPM paketleri içinde paketlenmiştir (noarch). Siz, bu dizini SUSE LINUX 9.0 için YaST yükleme kaynağı olarak sunmak istiyorsunuz.

/srv/ftp/pub/linux/suse/9.0/RPMS/
                                `- i586/
                                |      `- software1-1.0-1.i586.rpm
                                |      `- software2-1.0-1.i586.rpm
                                `- i686/
                                |      `- software1-1.0-1.i686.rpm
                                |      `- software2-1.0-1.i686.rpm
                                `- noarch/
                                |        `- script1-1.0-1.noarch.rpm
                                |        `- script2-1.0-1.noarch.rpm
                                `- src/
                                      `- software1-1.0-1.src.rpm
                                      `- software2-1.0-1.src.rpm
                                      `- script1-1.0-1.src.rpm
                                      `- script2-1.0-1.src.rpm

Bu dizinden bir "gerçek" YaST kaynağı üretmek için aşağıdaki kodu yürütmeniz gerekiyor:

cd /srv/ftp/pub/linux/suse/9.0/
mkdir media.1
touch media.1/media
touch content
ls -A1 > directory.yast
create_package_descr -d RPMS/

Ayrıntılı Belgeler

YaST yükleme kaynağı ile ilgili ayrıntılı belgeler yast2-packagemanager-devel paketinde bulunmaktadır. <keyword>yast,instsrc,source,installation,rpm,src</keyword>