Talimat Sistemi¶
talimat dosyaları mps’in paketleri kurması için gerekli bilgileri içeren bir .ini dosyasıdır.
Talimat dizini¶
Talimat dizinleri paket ile ilişkili talimat dosyasını ve kurulum aşamasında gerekebilecek bir çok ayrı dosyayı barındırır.
gcc#9.1.0-1/
├── derle.sh
├── kurkos.sh
├── pakur.sh
└── talimat
*.sh dosyaları¶
Talimat işlemleri için ayrı script dosyları hazırlanıp bunlar talimat dosyası içinden ‘dosya’ anahtar kelimesi ile çağırılabilir.
[derle]
dosya = derle.sh
[pakur]
dosya = pakur.sh
Bu dosyların ‘derle’ ve ‘pakur’ altında kullanılması halinde önerilen isimlendirme ‘derle’ için ‘derle.sh’, ‘pakur’ için ise ‘pakur.sh’ şeklindedir.
Koşuk betikleri¶
Koşuk betikleri talimat dizininde saklanabilir. Bunlar mps tarafından otomatik olarak algılanır ve kullanılır.
Yama dosyaları¶
Yama dosyaları talimat dizininde saklanabilir. Bu durumda yapılması gereken ‘dosya’ anahtarı ile dosyayı talimat’taki kaynak bölümüne eklemek ve ‘yama’ anahtarı ile ilişkili yamayı belirtmektir. Daha fazla bilgi için dosya formatını inceleyin.
lua#5.3.5-1/
├── derle.sh
├── liblua.so.patch
├── lua.pc
├── pakur.sh
└── talimat
[kaynak]
gz = https://www.lua.org/ftp
dosya = liblua.so.patch
dosya = lua.pc
[derle]
yama = 2
...
Eklenen dosya için aşağıdaki komut çalıştırılıcaktır:
patch -Np1 -i $SRC/dosya_ismi
libgerekler ve pktlibler¶
libgerekler dosyası, paketin hangi kütüphanelere ihtiyacı olduğunu belirtir.
Örneğin aşağıda python paketinin 3.7.3’üncü sürümü için gereken kütüphaneler listelenmiştir. Bunlar libgerekler dosyasında saklanır.
libdl.so.2
libpython3.7m.so.1.0
libpthread.so.0
libc.so.6
libuuid.so.1
libm.so.6
libexpat.so.1
liblzma.so.5
libbz2.so.1.0
libz.so.1
libpanelw.so.6
libncursesw.so.6
libgdbm.so.6
libgdbm_compat.so.4
libsqlite3.so.0
libssl.so.1.1
libcrypto.so.1.1
libcrypt.so.1
libreadline.so.8
libutil.so.1
pktlibler ise paketin sisteme sunduguğu kütüphaneleri belirtir.
Aşağıda ise aynı paketinin sisteme sunduğu kütüphanler listelenmiştir. Bunlar da pktlibler dosyasında saklanır.
libpython3.so
libpython3.7m.so.1.0
libpython3.7m.so
Dosya formatı¶
Talimat dosyası, paketin kullanılabilmesi ve işlenebilmesi için gerekli bilgileri içeren bölümlerden oluşur. Bunlardan dördü; paket, kaynak, derle ve pakur bu dosyada bulunmak zorundadır. Bunlara ek olarak bir çok bölüm belirli amaçları karşılamak amacıyla kullanılabilir.
[paket]¶
[gerek]¶
[kaynak]¶
Dosya isimlendirme¶
İndirilen dosya için kaynak belirtirken ‘::’ postfixi ile yeni bir isim belirtilebilir. Yeni isimde değişkenler de kullanılabilir.
1 = https://github.com/pallets/markupsafe/archive/$surum.tar.gz::$isim-$surum.tar.gz
[sha256] ve [sha512]¶
[derle]¶
[pakur]¶
Not
[derle] ve [pakur] altında hazırlanan anahtarlar yukarıdan aşağıya doğru olacak şekilde kullanılır/çalıştırılır.
Değişkenler¶
[paket] bloğunun altındaki her anahtar değişken olarak kullanılabilir.
Tipler¶
Tipler, betik yazmak yerine daha sade bir talimat için kullanılabilir.
Ek konfigürasyon yapmak için ‘tip’ anahtarından önce ‘ekconf’ anahtarı kullanılabilir. Anahtarın değeri gerekli komutlar çağrılımadan önce $extopt değerine atanacaktır.
Derleme tipleri¶
Derleme tipleri, derleme anında çalıstırılacak hazır komutlar içerir.
gnu¶
./configure $confopt $extopt && make
cmake¶
cmake ./ && make
meson¶
cd $SRC && milis-meson $isim-$surum build $extopt
ninja¶
mkdir -p build && ninja -C build
Paket kurma tipleri¶
Paket kurma tipleri, kurulum sırasında çalıstırılacak hazır komutlar içerir.
gnu¶
make DESTDIR=$PKG install
py3 ve py2¶
python3 setup.py install --root=${PKG} --optimize=1 --skip-build
python2 setup.py install --root=${PKG} --optimize=1 --skip-build
ninja¶
DESTDIR=$PKG ninja -C build install
meson¶
cd $SRC && DESTDIR=$PKG ninja -C build install