Milis Linux 2.0 Site
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

225 lines
8.3KB

  1. Milis'te Paket Üretimi
  2. ===================================
  3. .. toctree::
  4. :maxdepth: 2
  5. :caption: Contents:
  6. Milis Linux'ta paketler talimat dizininde belirtilen verilere göre derlenir, yüklenir ve paketlenir.
  7. Bu belge sıfırdan bir paketin nasıl oluşturulduğunu göstermek için hazırlanmıştır.
  8. Talimat'ın hazırlanması
  9. -------------------------
  10. Bir paketin talimatının hazırlanması için yapılacak şey gerekli bilgilerin doğru bir şekilde
  11. doldurulmasıdır. Talimat dosyasının yapısı için lütfen `Talimat Sistemi <http://mls.akdeniz.edu.tr/belgeler/docs/tr/talimat.html>`_
  12. belgesini inceleyin.
  13. Bu belgede talimatını hazırlayacağımız paket 'htop' adı verilen bir işlem monitorü.
  14. Paket bilgileri
  15. ^^^^^^^^^^^^^^^^
  16. Paket için gerekli bilgiler toplandıktan sonra, talimatın ilk formu aşağıdaki gibi
  17. olacaktır:
  18. ::
  19. [paket]
  20. tanim = Interaktif işlem izleyici
  21. paketci = milispaketci
  22. grup = sistem
  23. url = https://hisham.hm/htop
  24. Gerekler
  25. ^^^^^^^^^^^^^^^^
  26. Sırada paketin derlenmesi ve çalışması için gerekliliklerin bulunması var. Bunlar belirli kaynaklardan
  27. araştırılarak veya manuel olarak bulunabilir.
  28. Paketlenecek olan 'htop'ın derlenmesi için 'python'a, çalışması için ise 'ncurses'e ihtiyacı
  29. var.
  30. Burada bilinmesi gereken nokta, temel sistemde bulunan paketler talimatlara gereklilik olarak
  31. eklenmez. Bizim durumumuzda 'ncurses' temel sistemde bulunan bir program olduğundan bu gerekliliği
  32. eklemeyceğiz.
  33. ::
  34. [gerek]
  35. derleme = python
  36. calisma =
  37. Kaynaklar
  38. ^^^^^^^^^^^^^^^^
  39. Paketin derlenmesi veya paketlenmesi için kaynak kodlara ve yamalara ihtiyacı var. Bunun yanında
  40. eğer büyüyen bir derleme veya paketleme betiğiniz varsa bunu derle.sh veya pakur.sh adı altında
  41. talimat dizininde tutmak istiyebilirsiniz. Bunları talimat dosyanızda kullanırken kaynak altında
  42. **mutlaka** belirtmelisiniz.
  43. ::
  44. [kaynak]
  45. gz = $url/releases/$surum
  46. Dosya hashleri
  47. ^^^^^^^^^^^^^^^^
  48. İndirilen kaynak dosyalarının bozulma ihtimaline karşın talimatınızda dosyaların hashlerini bulundurmak her zaman için
  49. iyi bir fikirdir. Bunlar mps tarafından otomatik olarak algılanır ve kontrol edilir. Hashlerinizin hangi
  50. dosyaya ait oluduğunu belirtmek için dosyanın kaynak altındaki sırasını kullanınız. Paketlediğimiz 'htop'
  51. uygulamasında kullandığımız kaynak için gerekli hashi ekleyelim.
  52. ::
  53. [sha256]
  54. 1 = d9d6826f10ce3887950d709b53ee1d8c1849a70fa38e91d5896ad8cbc6ba3c57
  55. Derleme bilgileri
  56. ^^^^^^^^^^^^^^^^^^
  57. Şimdi paketin nasıl derleneceğini belirtmemiz gerekiyor, 'htop' standart bir C programı gibi derlendiğinden
  58. talimat sisteminde önceden tanımlı tipleri kullanacağız. Yukarıda belirtilen kaynak arşiv dosyaları indirildikten sonra
  59. arşiv dosyaları otomatik olarak $SRC dizini altına açılacaktır. MPS otomatik olarak $isim-$surum dizini varsa içine girer.
  60. Sonra derleme işlemlerini başlatır. Eğer arşiv dosyasının açılmış dizin ismi $isim-$surum biçiminde değilse derleme
  61. işleminin başında derleme için hazır olunması gereken dizin 'betik = cd arsiv_dizin' şeklinde belirtilmelidir.
  62. ::
  63. [derle]
  64. tip = gnu
  65. Bazen programlar derlenmeye gerek duyamayabilir, böyle durumlarda şablanu boş bırakmamak ve durumu belirtmek
  66. adına derle bölümünü şu şekilde doldurabiliriz:
  67. ::
  68. [derle]
  69. betik = echo "Derleme yapılmayacak!"
  70. Paketleme bilgileri
  71. ^^^^^^^^^^^^^^^^^^^^^
  72. Programımızın kurulumu da standart bir C programı kurulumuna eşdeğer, burada tekrar hazır tipleri kullanarak
  73. işimizi hızlandıracağız. Eğer arşiv dosyasının açılmış dizin ismi $isim-$surum biçiminde değilse paketleme
  74. işleminin başında pakur için hazır olunması gereken dizin 'betik = cd arsiv_dizin' şeklinde belirtilmelidir.
  75. ::
  76. [pakur]
  77. tip = gnu
  78. Her ne kadar bu örnekte tipleri kullanmış olsak da, yapılan her işlem için muhtemelen bir tip bulunmayacaktır.
  79. Eğer yapılcak işlemler bir kaç satır betiği aşmıyorsa, bunları betik anahtarları ile talimat
  80. içinde, diğer durumlarda ise derle.sh ve pakur.sh dosyları ile yapılır.
  81. Talimat dizininin oluşturulması
  82. --------------------------------
  83. Talimat dosyası hazırlandıktan sonra yapılacak ilk iş, paket için gerekli talimat dizinin oluşturulmasıdır.
  84. Talimat dizininin ismi belirli bir kural çerçevesinde verilir. Talimat dizini ismi paketin ismi ile başlar,
  85. '#' ile devam eder ve arkasından sürüm numarası gelir, hemen ardından '-' ve son olarak paketin devir numarası
  86. ile biter.
  87. Örneğin paketlenen 'htop' paketinin 2.2.0'ıncı sürümünü kullandık, ve bu paketi aynı sürümde ilk paketleyişimiz
  88. olduğundan devir numaramız da 1. Bu durumda talimat dizininin ismi 'htop#2.2.0-1' olacaktır. Sürümde herhangi bir değişiklik
  89. yok yama vs işlemler yapılacaksa devir numarası bir artırılarak talimat dizini oluşturulur.
  90. Hazırladığımız talimat dosyasını bu dizine yerleştiriyoruz.
  91. Talimat'ın repoya eklenmesi
  92. ----------------------------
  93. Şimdi ise sıra hazırladığımız talimatı kullanmaya geldi. Bunun için talimat dizinini bir kaynağa yüklemeli ve
  94. mps'yi bu kaynağı tanıyacak şekilde konfigüre etmeliyiz. Bunun için en etkili yol bir git reposu kullanmaktır.
  95. Bu belgede hazırlanan 'htop' talimat dizinine `buradaki <https://notabug.org/gysddn/mpsrepo/src/master/talimatname/htop%232.2.0-1>`_
  96. git reposundan ulaşılabilir.
  97. Talimat dizinini bir kaynağa yükledikten sonra ise MPS için gerekli ayar /usr/milis/mps/conf/conf.lua dosyasında
  98. yapılır.
  99. Dosyayı açtıktan sonra 'talimatdepo' altına kendi dizinimizi ekliyoruz:
  100. ::
  101. ...
  102. [3]={["https://notabug.org/gysddn/mpsrepo"]="talimatname"},
  103. ...
  104. Burada anahtar değeri olan 3, talimat dizinlerinin aktarılacağı talimatname düzeyini belirtir.
  105. Değerdeki ilk parametre repomuzun adresi, ikinci ise reponun altında ilgili talimat dizinlerini belirtir.
  106. Yaptığımız değişikliklerin MPS'e etki etmesi için git repolarını güncelliyoruz:
  107. .. code:: bash
  108. mps gun -G
  109. Talimat'ın test edilmesi (mpsdo)
  110. ---------------------------------
  111. Talimatımız artık hazır ve sistem tarfından tanınıyor. Bu adımda çalışan bir Milis dağıtımında, talimatımızı
  112. test edebiliriz. Ancak sağlıklı bir test için her zaman stabil bir ortam gerekir. Bunun için yalıtılmış bir
  113. derleme ortamı olan mpsdo'yu kullanabilirsiniz.
  114. Kurulum
  115. ^^^^^^^^^^^^^^
  116. mpsdo'yu kurmak için mps'yi güncellemeniz gerekmektedir:
  117. .. code:: bash
  118. mps gun -H
  119. Kullanım
  120. ^^^^^^^^^^^^^^
  121. mpsdo'nun ortamına giriş yapmak için:
  122. .. code:: bash
  123. sudo mpsdo
  124. Bu adımdan sonra yapacağınız işlemler yalıtılmış derleme ortamında
  125. gerçekleşecektir.
  126. .. note::
  127. mpsdo derlemeler için ana sisteme bağlanmış birkaç dizin hariç
  128. ortamı her zaman sıfırlayacaktır. Bunlar /opt, /sources, /var/cache'tir.
  129. Aynı dizinler ana sitemde sırası ile /mnt/paketler, /sources, /mnt/milis2/pktdepo_onbellek'e
  130. bağlanır. Bu dosyaların ana sisteme bağlanma amacı aynı işlemlerin sürekli
  131. yapılmasının önüne geçmektir.
  132. .. note::
  133. Ortama her girişinizde sıfırlanacağı için mps'yi her girişinizde
  134. güncellemeniz gerekmektedir.
  135. Ortamda paket derlemek için konak bilgisayarın /mnt/milis/ortam/usr/milis/talimatname
  136. altındaki sayısal dizinler kullanılır. Bu aşamada 'conf.lua' dosyanızı kontrol edip herşeyin doğru
  137. oduğunundan emin olmakta fayda vardır.
  138. Paketi derlediğimizde mps o an bulunulan dizinde gerekli paketin '.mps.lz' uzantılı olan kurulma
  139. dosyasını oluşturacaktır. Dosyayı oluşturmak istediğiniz klasöre geçtikten sonra:
  140. - Gerekli değişiklikleri yaptıktan sonra tekil (bağımlılıklar olmadan) derleme için:
  141. .. code:: bash
  142. mps der -t htop
  143. - Sıralı derle-kur-paketle işlemleri için:
  144. .. code:: bash
  145. mps der htop
  146. Paketi kurmak için:
  147. .. code:: bash
  148. mps kur htop#2.2.0-1-x86_64.mps.lz
  149. **Tebrikler!!!** Milis'te ilk paketinizi oluşturdunuz. Bu adımda sisteminizde htop'un kurulu ve çalışabilir
  150. bir durumda olması gerekiyor.
  151. Daha fazlası için `dökümanları <https://mls.akdeniz.edu.tr/belgeler/>`_, `kaynak kodlarını <https://notabug.org/milislinux>`_ ve
  152. `talimat dosyalarını <https://notabug.org/milislinux/milis19/src/master/talimatname>`_ inceleyebilirsiniz.
  153. Ortamdan çıkmak için:
  154. .. code:: bash
  155. exit