talimat.rst 7.8 KB

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