123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352 |
- Talimat Sistemi
- ===================================
- .. toctree::
- :maxdepth: 2
- 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.
- | **kurkos.sh**
- | Paket kurulduktan sonra çalışacak betik.
- | **koskur.sh**
- | Paket kurulmadan önce çalışacak betik.
- | **silkos.sh**
- | Paket silindikten sonra çalışacak betik.
- | **kossil.sh**
- | Paket silinmeden önce çalışacak betik.
- 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:
- .. code:: bash
- 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]
- ~~~~~~~~~~~~~~~~~
- | **tanim**
- | Paketin açıklaması.
- | **paketci**
- | Paketçilerin isimleri.
- | **grup**
- | Paketin grubu.
- | Gruplarlar belirlenirken sistemde önceden tanımlanan gruplar
- kullanılmalıdır, bunlar 'mps gruplar' komutu ile öğrenilebilir.
- | **url**
- | Paketin web sayfası
- [gerek]
- ~~~~~~~~~~~~~~~~~
- | **derleme**
- | Paketin derlenmesi için gerekenler
- | **calisma**
- | Paketin çalışması için gerekenler
- [kaynak]
- ~~~~~~~~~~~~~~~~~
- | **github**
- | Verilen kaynak GitHub için 'kullanıcıadı/repoismi' olmalıdır.
- Bu durumda mps'nin kullandığı tam url ise 'github.com/kullanıcıadı/repoismi' olacaktır.
- | **gz,xz,bz2**
- | Verilen kaynağın sonuna paket ismini belirli bir formata çevirerek ekler ve kullanır.
- | Kullanılan tam format, girdi 'url' ise '$url/$isim-$surum.tar.[gz|xz|bz2]' olacaktır.
- | **tgz**
- | Verilen kaynağın sonuna paket ismini belirli bir formata çevirerek ekler ve kullanır.
- | Kullanılan tam format, girdi 'url' ise '$url/$isim-$surum.tgz' olacaktır.
- | **dosya**
- | Paketin talimat dizinindeki bir betik dosyası.
- | Bunların dışında normal http indirmelerine anahtar olarak herhangi bir alfanumerik kelime
- kullanılabilir. Ancak önerilen kullanım herhangi bir pozitif sayı veya 'url' anahtar
- kelimesidir.
- 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]
- ~~~~~~~~~~~~~~~~~~~~~~
- | **1,2,3,4...**
- | Kaynak dosyaları için sha anahtarlarını belirtir.
- | Numara, kaynağın [kaynak] altındaki sırasını belirtir.
- [derle]
- ~~~~~~~~~~~~~~~~~
- | **dosya**
- | Paketin talimat dizinindeki bir betik dosyası.
- | **tip**
- | Paketin derlenme tipi.
- | **betik**
- | Çalıştırılacak betik komutu.
- | **yama**
- | Yama dosyasının [kaynak] altındaki sırası veya ismi.
- [pakur]
- ~~~~~~~~~~~~~~~~~
- | **dosya**
- | Paketin talimat dizinindeki bir betik dosyası.
- | **tip**
- | Paketin kurulma tipi.
- | **betik**
- | Çalıştırılacak betik komutu.
- | **yama**
- | Yama dosyasının [kaynak] altındaki sırası veya ismi.
- | **servis**
- | Paketin içine kurulacak servis.
- | Bu dosya /usr/milis/ayarlar altında bulunmak zorundadır.
- .. note::
- [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
- -----------------
- | Talimat dizininde paketler belirli bir formata göre isimlendirilir, bu format
- | 'isim#sürüm-devir'
- | şeklindedir ve buradaki değerler değişkenler olarak kullanılabilir.
- | **$isim**
- | Paketin ismi.
- | **$surum**
- | Paketin sürümü.
- | **$devir**
- | Paketin devri.
- [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ılmadan önce $extopt değerine atanacaktır.
- Derleme tipleri
- ~~~~~~~~~~~~~~~~~
- Derleme tipleri, derleme anında çalıştırılacak hazır komutları içerir.
- gnu
- ^^^^^^^^^^^^^^^^
- .. code:: bash
-
- ./configure $confopt $extopt && make ${MAKEJOBS}
- cmake
- ^^^^^^^^^^^^^^^^
- .. code:: bash
-
- mkdir -p build;cd build;cmake ${CMAKE_OPTS} $extopt ../ && make ${MAKEJOBS}
- py3 ve py2
- ^^^^^^^^^^^^^^^^
- .. code:: bash
-
- python3 setup.py build
- .. code:: bash
- python2 setup.py build
- perl
- ^^^^^^^^^^^^^^^^
- .. code:: bash
- perl Makefile.PL INSTALLDIRS=vendor && make
- meson
- ^^^^^^^^^^^^^^^^
- .. code:: bash
-
- cd $SRC && milis-meson $isim-$surum build $extopt
- ninja
- ^^^^^^^^^^^^^^^^
- .. code:: bash
-
- mkdir -p build && ninja -C build
- waf
- ^^^^^^^^^^^^^^^
- .. code:: bash
- python3 waf configure --prefix=/usr $extopt && python3 waf build
- Paket kurma tipleri
- ~~~~~~~~~~~~~~~~~~~~
- Paket kurma tipleri, kurulum sırasında çalıştırılacak hazır komutları içerir.
- gnu
- ^^^^^^^^^^^^^^^^
- .. code:: bash
-
- make DESTDIR=$PKG install
- py3 ve py2
- ^^^^^^^^^^^^^^^^
- .. code:: bash
-
- python3 setup.py install --root=${PKG} --optimize=1 --skip-build
- .. code:: bash
-
- python2 setup.py install --root=${PKG} --optimize=1 --skip-build
- ninja
- ^^^^^^^^^^^^^^^^
- .. code:: bash
-
- DESTDIR=$PKG ninja -C build install
- meson
- ^^^^^^^^^^^^^^^^
- .. code:: bash
-
- cd $SRC && DESTDIR=$PKG ninja -C build install
- waf
- ^^^^^^^^^^^^^^^^
- .. code:: bash
- python3 waf install --destdir=$PKG
|