iso_yapimi.rst 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309
  1. Sıfırdan Milis Linux Yapımı
  2. ===================================
  3. .. toctree::
  4. :maxdepth: 2
  5. :caption: Contents:
  6. .. warning::
  7. Test aşamasındadır. Lütfen kullanmayınız!
  8. 0. Önsistemi oluşturmak için gerekli paketler kurulur:
  9. .. code:: bash
  10. # Milis
  11. mps kur lua (luafileystem kaynak kodundan derlenecek.)
  12. # ------------------------
  13. # Arch
  14. pacman -S base-devel
  15. pacman -S bison
  16. pacman -S libarchive
  17. pacman -S lua
  18. pacman -S lzip
  19. pacman -S squashfs-tools
  20. pacman -S xorriso
  21. # ------------------------
  22. # Ubuntu ve türevleri için
  23. apt install build-essential
  24. apt install bison
  25. apt install bsdtar
  26. apt install lua5.3
  27. apt install liblua5.3
  28. apt install lzip
  29. apt install squashfs-tools
  30. apt install xorriso
  31. 1. Yetkili komut satırına geçerek Milis LFS kullanıcı dizinlerini ayarlanır:
  32. .. code:: bash
  33. sudo su
  34. groupadd mlfs
  35. useradd -s /bin/bash -g mlfs -m -k /dev/null mlfs
  36. passwd mlfs
  37. 2. Milis 2.0 deposu klonlanıp önsistem için gerekli dizinler oluşturulur:
  38. .. code:: bash
  39. git clone https://notabug.org/milislinux/milis19 /home/mlfs/milis
  40. git clone https://notabug.org/milislinux/mps /home/mlfs/mps
  41. cp /home/mlfs/milis/bashrc-onsistem.temp /home/mlfs/.bashrc
  42. cp /home/mlfs/milis/bash_profile.temp /home/mlfs/.bash_profile
  43. mkdir -p /home/mlfs/{onsistem,sources}
  44. mkdir -p /home/mlfs/onsistem/tools
  45. ln -sv /home/mlfs/onsistem/tools /
  46. ln -sv /home/mlfs/sources /
  47. chown -R mlfs:mlfs /home/mlfs
  48. 3. Önsistemi oluşturmayı başlatmak için mlfs kullanıcısıyla giriş yapılır:
  49. .. code:: bash
  50. su - mlfs
  51. source ~/.bash_profile
  52. 4. İzin ve ortam değişkenleri kontrol edilir:
  53. .. code:: bash
  54. mlfs@makine1:~$ ls -al
  55. drwxr-xr-x 7 mlfs mlfs 4096 May 5 15:09 .
  56. drwxr-xr-x 4 root root 4096 May 5 14:32 ..
  57. -rw------- 1 mlfs mlfs 166 May 5 15:17 .bash_history
  58. -rw-r--r-- 1 mlfs mlfs 59 May 5 14:55 .bash_profile
  59. -rwxr-xr-x 1 mlfs mlfs 327 May 5 15:17 .bashrc
  60. drwxr-xr-x 4 mlfs mlfs 4096 May 5 15:15 milis
  61. drwxr-xr-x 2 mlfs mlfs 4096 May 5 15:06 mps
  62. drwxr-xr-x 3 mlfs mlfs 4096 May 5 15:06 onsistem
  63. drwxr-xr-x 2 mlfs mlfs 4096 May 5 15:09 sources
  64. mlfs@makine1:~$ export
  65. declare -x HOME="/home/mlfs"
  66. declare -x LC_ALL="POSIX"
  67. declare -x MILIS_HOME="/home/mlfs"
  68. declare -x MILIS_REPO="/home/mlfs/milis"
  69. declare -x MPS_NOROOT="yes"
  70. declare -x MPS_PATH="/home/mlfs/mps"
  71. declare -x OLDPWD
  72. declare -x ONSISTEM_CHROOT="/home/mlfs/onsistem"
  73. declare -x ONSISTEM_TARGET="x86_64-milis-linux-gnu"
  74. declare -x PATH="/home/mlfs/mps/bin:/tools/bin:/usr/local/bin:/bin:/sbin:/usr/sbin:/usr/bin:/root/bin"
  75. declare -x PS1="\${debian_chroot:+(\$debian_chroot)}\\u@\\h:\\w\\\$ "
  76. declare -x PWD="/home/mlfs"
  77. declare -x SHLVL="1"
  78. declare -x TALIMATNAME="/home/mlfs/milis/talimatname"
  79. declare -x TERM="screen"
  80. 5. MPS önsistem için hazırlanıp, kontrol edilir:
  81. .. code:: bash
  82. cd ~/mps
  83. bash derle.sh
  84. mlfs@makine1:~/mps$ mps.lua -v
  85. MPS 2.0.0 - Milis Paket Sistemi milisarge@gmail.com
  86. 6. Önsistem derlenmeye başlanır:
  87. .. code:: bash
  88. cd ~/milis
  89. ./01-onsistem.sh
  90. .. note::
  91. Sertifika ilgili bir hata oluşursa,
  92. ::
  93. export WGET_GENEL_PARAM="--no-check-certificate"
  94. komutu derlemeden önce verilerek sertifika denetimi kapatılabilir.
  95. 7. Önsistem derlemesi Lua ile bittiğinde ve 'talimatname/0/order' dosyası içindeki paketlerin kurulduğundan
  96. emin olunduktan sonra önsistem sıkıştırılarak yedeklenir:
  97. .. code:: bash
  98. ./onsistem_sfs.sh
  99. 8. Temel sistem paketlerinin hazırlanması için yeni derleme ortamına girilir:
  100. .. note::
  101. Temel sistem üretimi ertlenmek veya sfs kullanarak yapılmak istenirse:
  102. .. code:: bash
  103. unsquashfs onsistem-tarih-saat-degeri.sfs
  104. mv squashfs-root ${ONSISTEM_CHROOT}
  105. Buradan sonraki işlemler sudo yetkileri ile yapılmalıdır:
  106. .. code:: bash
  107. exit
  108. cd /home/mlfs/milis
  109. sudo su
  110. bash --rcfile ../.bashrc
  111. ./02-enter-chroot-tools
  112. # aşağıdaki çıktıyı görmeniz gerekir.
  113. Chroot ortamı bağlanıyor...
  114. mount: /dev bound on /home/mlfs/onsistem/dev.
  115. mount: devpts mounted on /home/mlfs/onsistem/dev/pts.
  116. mount: proc mounted on /home/mlfs/onsistem/proc.
  117. mount: sysfs mounted on /home/mlfs/onsistem/sys.
  118. mount: tmpfs mounted on /home/mlfs/onsistem/run.
  119. temel sistem talimatları kopyalandı.
  120. '/etc/ssl/certs/ca-certificates.crt' -> '/home/mlfs/onsistem/tools/etc/ssl/certs/ca-certificates.crt'
  121. '/etc/resolv.conf' -> '/home/mlfs/onsistem/tools/etc/resolv.conf'
  122. 9. Temel sistem içine girildikten sonra ulaşılması gereken komut satırı:
  123. .. code:: bash
  124. (temel) I have no name!:/#
  125. 10. Gerekli betikler çağrılarak sistem hazırlanmaya başlanır:
  126. .. code:: bash
  127. (temel) I have no name!:/# 03-temel-dosya-sistemi-hazirla
  128. .. note::
  129. Bu aşamada ulaşılması gerek komut satırı bu şekildedir:
  130. .. code:: bash
  131. bash-5.0#
  132. .. code:: bash
  133. bash-5.0# 04-mps-hazirla
  134. Bu aşamada mps'in doğru sürümünün kurulu olduğunu test etmek için:
  135. .. code:: bash
  136. bash-5.0# mps.lua -v
  137. MPS 2.0.0 - Milis Paket Sistemi milisarge@gmail.com
  138. .. code:: bash
  139. bash-5.0# 05-temel-sistemi-derle.sh
  140. Bash derlenip kurulduktan sonra aşağıdaki çıktı ile derleme duracaktır:
  141. ::
  142. # bash_refresh komutu verip tekrar devam edin!
  143. Aşağıdaki komut verilerek, derleme yeni bash ile kaldığı yerden devam edecektir:
  144. .. code:: bash
  145. bash-5.0# bash_refresh
  146. bash-5.0# 05-temel-sistemi-derle.sh
  147. .. note::
  148. Yeni bash ten sonra ortamdan çıkma durumu olursa yeniden ortam girmek için:
  149. .. code:: bash
  150. ./02.1-enter-chroot
  151. bash-5.0# 05-temel-sistemi-derle.sh
  152. 11. Canlı(Live) imajda kullanmak üzere initramfs üretilir:
  153. .. code:: bash
  154. dracut -N --force --xz --add 'dmsquash-live pollcdrom' --omit systemd /boot/initramfs_live `ls /usr/lib/modules`
  155. 12. Temel sistem derlemesi bittikten sonra derleme logları ve temel sistem incelenir:
  156. Aşağıdaki komutların çıktıları olmamalı:
  157. .. code:: bash
  158. bash-5.0# grep -l 'compilation terminated' /tmp/*.log
  159. bash-5.0# grep -l '.h: No such file or directory' /tmp/*.log
  160. find /var/lib/mps -name kurulan -size 0
  161. # kırık linklerin kontrolü
  162. rm -rf /tools
  163. find /usr -xtype l
  164. Aşağıdaki komutun çıktısı ise 'TM' olmalı:
  165. .. code:: bash
  166. [ `ls /var/lib/mps/db | wc -l` -eq `cat /usr/milis/talimatname/1/order | wc -l` ] && echo "TM"
  167. 13. Canlı imajda kullanmak üzere root şifresi oluşturulur: (Öntanımlı **toor**)
  168. .. code:: bash
  169. passwd
  170. 14. Temel sistem gereksiz dosyalardan arındırılır ve sfs yedeklenir:
  171. .. code:: bash
  172. exit
  173. cd /home/mlfs/milis
  174. ./temel_sfs.sh
  175. 15. Güncel MPS yüklenir ve gerekli ayarlamalar yapılır:
  176. .. code:: bash
  177. cp onsistem/etc/bash.bashrc onsistem/root/.bashrc
  178. cd /home/mlfs/mps
  179. git pull
  180. cd /home/mlfs
  181. rm -rf onsistem/usr/milis/mps
  182. cp -rf mps onsistem/usr/milis/
  183. # **temel sistemin içine tekrar gireriz**
  184. ./02.1-enter-chroot
  185. (temel) root:/# cd /usr/milis/mps
  186. (temel) root:/# echo "export MPS_PATH=/usr/milis/mps" >> /root/.bashrc
  187. (temel) root:/# echo "export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:\$MPS_PATH/bin" >> /root/.bashrc
  188. (temel) root:/# source /root/.bashrc
  189. (temel) root:/# sh derle.sh
  190. # sürüm numarası alınarak MPS kurulum doğrulanır.
  191. # mps -v
  192. 2.0.0
  193. # bashrc profile kopyalanarak chroot ortamdan çıkış yapılır.
  194. cp /root/.bashrc /etc/profile
  195. exit
  196. 16. İmaj üreticinin kullanılarak temel canlı imajın üretilmesi:
  197. .. code:: bash
  198. cd /home/mlfs
  199. git clone https://notabug.org/milislinux/imaj-uretici-2
  200. cd imaj-uretici-2
  201. ./iso_olustur.sh