talimat.rst 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326
  1. .. talimat documentation master file, created by
  2. sphinx-quickstart on Mon Jun 24 14:53:40 2019.
  3. You can adapt this file completely to your liking, but it should at least
  4. contain the root `toctree` directive.
  5. Talimat Sistemi
  6. ===================================
  7. .. toctree::
  8. :maxdepth: 2
  9. :caption: Contents:
  10. talimat dosyaları mps'in paketleri kurması için gerekli bilgileri içeren bir .ini dosyasıdır.
  11. Talimat dizini
  12. -----------------
  13. Talimat dizinleri paket ile ilişkili talimat dosyasını ve kurulum aşamasında gerekebilecek
  14. bir çok ayrı dosyayı barındırır.
  15. ::
  16. gcc#9.1.0-1/
  17. ├── derle.sh
  18. ├── kurkos.sh
  19. ├── pakur.sh
  20. └── talimat
  21. \*.sh dosyaları
  22. ~~~~~~~~~~~~~~~~~~~~~
  23. Talimat işlemleri için ayrı script dosyları hazırlanıp bunlar talimat dosyası içinden
  24. 'dosya' anahtar kelimesi ile çağırılabilir.
  25. ::
  26. [derle]
  27. dosya = derle.sh
  28. [pakur]
  29. dosya = pakur.sh
  30. Bu dosyların 'derle' ve 'pakur' altında kullanılması halinde önerilen isimlendirme 'derle' için
  31. 'derle.sh', 'pakur' için ise 'pakur.sh' şeklindedir.
  32. Koşuk betikleri
  33. ~~~~~~~~~~~~~~~~~~~~~
  34. Koşuk betikleri talimat dizininde saklanabilir. Bunlar mps tarafından otomatik olarak algılanır ve
  35. kullanılır.
  36. | **kurkos.sh**
  37. | Paket kurulduktan sonra çalışacak betik.
  38. | **koskur.sh**
  39. | Paket kurulmadan önce çalışacak betik.
  40. | **silkos.sh**
  41. | Paket silindikten sonra çalışacak betik.
  42. | **kossil.sh**
  43. | Paket silinmeden önce çalışacak betik.
  44. Yama dosyaları
  45. ~~~~~~~~~~~~~~~~~~~~~
  46. Yama dosyaları talimat dizininde saklanabilir. Bu durumda yapılması gereken 'dosya' anahtarı ile
  47. dosyayı talimat'taki kaynak bölümüne eklemek ve 'yama' anahtarı ile ilişkili yamayı belirtmektir.
  48. Daha fazla bilgi için dosya formatını inceleyin.
  49. ::
  50. lua#5.3.5-1/
  51. ├── derle.sh
  52. ├── liblua.so.patch
  53. ├── lua.pc
  54. ├── pakur.sh
  55. └── talimat
  56. ::
  57. [kaynak]
  58. gz = https://www.lua.org/ftp
  59. dosya = liblua.so.patch
  60. dosya = lua.pc
  61. [derle]
  62. yama = 2
  63. ...
  64. Eklenen dosya için aşağıdaki komut çalıştırılıcaktır:
  65. .. code:: bash
  66. patch -Np1 -i $SRC/dosya_ismi
  67. libgerekler ve pktlibler
  68. ~~~~~~~~~~~~~~~~~~~~~~~~~~
  69. libgerekler dosyası, paketin hangi kütüphanelere ihtiyacı olduğunu belirtir.
  70. Örneğin aşağıda python paketinin 3.7.3'üncü sürümü için gereken kütüphaneler listelenmiştir.
  71. Bunlar libgerekler dosyasında saklanır.
  72. ::
  73. libdl.so.2
  74. libpython3.7m.so.1.0
  75. libpthread.so.0
  76. libc.so.6
  77. libuuid.so.1
  78. libm.so.6
  79. libexpat.so.1
  80. liblzma.so.5
  81. libbz2.so.1.0
  82. libz.so.1
  83. libpanelw.so.6
  84. libncursesw.so.6
  85. libgdbm.so.6
  86. libgdbm_compat.so.4
  87. libsqlite3.so.0
  88. libssl.so.1.1
  89. libcrypto.so.1.1
  90. libcrypt.so.1
  91. libreadline.so.8
  92. libutil.so.1
  93. pktlibler ise paketin sisteme sunduguğu kütüphaneleri belirtir.
  94. Aşağıda ise aynı paketinin sisteme sunduğu kütüphanler listelenmiştir.
  95. Bunlar da pktlibler dosyasında saklanır.
  96. ::
  97. libpython3.so
  98. libpython3.7m.so.1.0
  99. libpython3.7m.so
  100. Dosya formatı
  101. -----------------
  102. [paket]
  103. ~~~~~~~~~~~~~~~~~
  104. | **tanim**
  105. | Paketin açıklaması.
  106. | **paketci**
  107. | Paketçilerin isimleri.
  108. | **grup**
  109. | Paketin grubu.
  110. | Gruplarlar belirlenirken sistemde önceden tanımlanan gruplar
  111. kullanılmalıdır, bunlar 'mps gruplar' komutu ile öğrenilebilir.
  112. | **url**
  113. | Paketin web sayfası
  114. [gerek]
  115. ~~~~~~~~~~~~~~~~~
  116. | **derleme**
  117. | Paketin derlenmesi için gerekenler
  118. | **calisma**
  119. | Paketin çalışması için gerekenler
  120. [kaynak]
  121. ~~~~~~~~~~~~~~~~~
  122. | **github**
  123. | Verilen kaynak GitHub için 'kullanıcıadı/repoismi' olmalıdır.
  124. Bu durumda mps'nin kullandığı tam url ise 'github.com/kullanıcıadı/repoismi' olacaktır.
  125. | **gz,xz,bz2**
  126. | Verilen kaynağın sonuna paket ismini belirli bir formata çevirerek ekler ve kullanır.
  127. | Kullanılan tam format, girdi 'url' ise 'url/$isim-surum.tar.[gz|xz|bz2]' olacaktır.
  128. | **dosya**
  129. | Paketin talimat dizinindeki bir betik dosyası.
  130. | Bunların dışında herhangi bir alfanumerik kelime kullanılabilir. Ancak önerilen kullanım
  131. herhangi bir pozitif sayı veya 'url' anahtar kelimesidir.
  132. Dosya isimlendirme
  133. ^^^^^^^^^^^^^^^^^^^
  134. İndirilen dosya için kaynak belirtirken '::' postfixi ile yeni bir isim belirtilebilir. Yeni
  135. isimde değişkenler de kullanılabilir.
  136. ::
  137. 1 = https://github.com/pallets/markupsafe/archive/$surum.tar.gz::$isim-$surum.tar.gz
  138. [sha256] ve [sha512]
  139. ~~~~~~~~~~~~~~~~~~~~~~
  140. | **1,2,3,4...**
  141. | Kaynak dosyaları için sha anahtarlarını belirtir.
  142. | Numara, kaynağın [kaynak] altındaki sırasını belirtir.
  143. [derle]
  144. ~~~~~~~~~~~~~~~~~
  145. | **dosya**
  146. | Paketin talimat dizinindeki bir betik dosyası.
  147. | **tip**
  148. | Paketin derlenme tipi.
  149. | **betik**
  150. | Çalıştırılacak betik komutu.
  151. | **yama**
  152. | Yama dosyasının [kaynak] altındaki sırası veya ismi.
  153. [pakur]
  154. ~~~~~~~~~~~~~~~~~
  155. | **dosya**
  156. | Paketin talimat dizinindeki bir betik dosyası.
  157. | **tip**
  158. | Paketin kurulma tipi.
  159. | **betik**
  160. | Çalıştırılacak betik komutu.
  161. | **yama**
  162. | Yama dosyasının [kaynak] altındaki sırası veya ismi.
  163. | **servis**
  164. | Paketin içine kurulacak servis.
  165. | Bu dosya /usr/milis/ayarlar altında bulunmak zorundadır.
  166. Değişkenler
  167. -----------------
  168. | Talimat dizininde paketler belirli bir formata göre isimlendirilir, bu format
  169. | 'isim#sürüm-devir'
  170. | şeklindedir ve buradaki değerler değişkenler olarak kullanılabilir.
  171. | **$isim**
  172. | Paketin ismi.
  173. | **$surum**
  174. | Paketin sürümü.
  175. | **$devir**
  176. | Paketin devri.
  177. [paket] bloğunun altındaki her anahtar değişken olarak kullanılabilir.
  178. Tipler
  179. -----------------
  180. Tipler, betik yazmak yerine daha sade bir talimat için kullanılabilir.
  181. Derleme tipleri
  182. ~~~~~~~~~~~~~~~~~
  183. Derleme tipleri, derleme anında çalıstırılacak hazır komutlar içerir.
  184. gnu
  185. ^^^^^^^^^^^^^^^^
  186. .. code:: bash
  187. ./configure $confopt && make
  188. Ek konfigürasyon yapmak için 'tip' anahtarından önce 'ekconf' anahtarı kullanılabilir.
  189. Anahtarın değeri gerekli komutlar çağrılımadan önce $confopt değerine atanacaktır.
  190. cmake
  191. ^^^^^^^^^^^^^^^^
  192. .. code:: bash
  193. cmake ./ && make
  194. py3 ve py2
  195. ^^^^^^^^^^^^^^^^
  196. .. code:: bash
  197. python3 setup.py build
  198. .. code:: bash
  199. python2 setup.py build
  200. meson
  201. ^^^^^^^^^^^^^^^^
  202. .. code:: bash
  203. cd $SRC && milis-meson $isim-$surum build $extopt
  204. ninja
  205. ^^^^^^^^^^^^^^^^
  206. .. code:: bash
  207. mkdir -p build && ninja -C build
  208. Paket kurma tipleri
  209. ~~~~~~~~~~~~~~~~~~~~
  210. Paket kurma tipleri, kurulum sırasında çalıstırılacak hazır komutlar içerir.
  211. gnu
  212. ^^^^^^^^^^^^^^^^
  213. .. code:: bash
  214. make DESTDIR=$PKG install
  215. py3 ve py2
  216. ^^^^^^^^^^^^^^^^
  217. .. code:: bash
  218. python3 setup.py install --root=${PKG} --optimize=1 --skip-build
  219. .. code:: bash
  220. python2 setup.py install --root=${PKG} --optimize=1 --skip-build
  221. ninja
  222. ^^^^^^^^^^^^^^^^
  223. .. code:: bash
  224. DESTDIR=$PKG ninja -C build install
  225. meson
  226. ^^^^^^^^^^^^^^^^
  227. .. code:: bash
  228. cd $SRC && DESTDIR=$PKG ninja -C build install