123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309 |
- Sıfırdan Milis Linux Yapımı
- ===================================
- .. toctree::
- :maxdepth: 2
- :caption: Contents:
- .. warning::
- Test aşamasındadır. Lütfen kullanmayınız!
- 0. Önsistemi oluşturmak için gerekli paketler kurulur:
- .. code:: bash
- # Milis
- mps kur lua (luafileystem kaynak kodundan derlenecek.)
- # ------------------------
- # Arch
- pacman -S base-devel
- pacman -S bison
- pacman -S libarchive
- pacman -S lua
- pacman -S lzip
- pacman -S squashfs-tools
- pacman -S xorriso
- # ------------------------
- # Ubuntu ve türevleri için
- apt install build-essential
- apt install bison
- apt install bsdtar
- apt install lua5.3
- apt install liblua5.3
- apt install lzip
- apt install squashfs-tools
- apt install xorriso
- 1. Yetkili komut satırına geçerek Milis LFS kullanıcı dizinlerini ayarlanır:
- .. code:: bash
- sudo su
- groupadd mlfs
- useradd -s /bin/bash -g mlfs -m -k /dev/null mlfs
- passwd mlfs
- 2. Milis 2.0 deposu klonlanıp önsistem için gerekli dizinler oluşturulur:
- .. code:: bash
- git clone https://notabug.org/milislinux/milis19 /home/mlfs/milis
- git clone https://notabug.org/milislinux/mps /home/mlfs/mps
- cp /home/mlfs/milis/bashrc-onsistem.temp /home/mlfs/.bashrc
- cp /home/mlfs/milis/bash_profile.temp /home/mlfs/.bash_profile
- mkdir -p /home/mlfs/{onsistem,sources}
- mkdir -p /home/mlfs/onsistem/tools
- ln -sv /home/mlfs/onsistem/tools /
- ln -sv /home/mlfs/sources /
- chown -R mlfs:mlfs /home/mlfs
- 3. Önsistemi oluşturmayı başlatmak için mlfs kullanıcısıyla giriş yapılır:
- .. code:: bash
- su - mlfs
- source ~/.bash_profile
- 4. İzin ve ortam değişkenleri kontrol edilir:
- .. code:: bash
- mlfs@makine1:~$ ls -al
- drwxr-xr-x 7 mlfs mlfs 4096 May 5 15:09 .
- drwxr-xr-x 4 root root 4096 May 5 14:32 ..
- -rw------- 1 mlfs mlfs 166 May 5 15:17 .bash_history
- -rw-r--r-- 1 mlfs mlfs 59 May 5 14:55 .bash_profile
- -rwxr-xr-x 1 mlfs mlfs 327 May 5 15:17 .bashrc
- drwxr-xr-x 4 mlfs mlfs 4096 May 5 15:15 milis
- drwxr-xr-x 2 mlfs mlfs 4096 May 5 15:06 mps
- drwxr-xr-x 3 mlfs mlfs 4096 May 5 15:06 onsistem
- drwxr-xr-x 2 mlfs mlfs 4096 May 5 15:09 sources
- mlfs@makine1:~$ export
- declare -x HOME="/home/mlfs"
- declare -x LC_ALL="POSIX"
- declare -x MILIS_HOME="/home/mlfs"
- declare -x MILIS_REPO="/home/mlfs/milis"
- declare -x MPS_NOROOT="yes"
- declare -x MPS_PATH="/home/mlfs/mps"
- declare -x OLDPWD
- declare -x ONSISTEM_CHROOT="/home/mlfs/onsistem"
- declare -x ONSISTEM_TARGET="x86_64-milis-linux-gnu"
- declare -x PATH="/home/mlfs/mps/bin:/tools/bin:/usr/local/bin:/bin:/sbin:/usr/sbin:/usr/bin:/root/bin"
- declare -x PS1="\${debian_chroot:+(\$debian_chroot)}\\u@\\h:\\w\\\$ "
- declare -x PWD="/home/mlfs"
- declare -x SHLVL="1"
- declare -x TALIMATNAME="/home/mlfs/milis/talimatname"
- declare -x TERM="screen"
- 5. MPS önsistem için hazırlanıp, kontrol edilir:
- .. code:: bash
- cd ~/mps
- bash derle.sh
- mlfs@makine1:~/mps$ mps.lua -v
- MPS 2.0.0 - Milis Paket Sistemi milisarge@gmail.com
- 6. Önsistem derlenmeye başlanır:
- .. code:: bash
- cd ~/milis
- ./01-onsistem.sh
- .. note::
- Sertifika ilgili bir hata oluşursa,
- ::
- export WGET_GENEL_PARAM="--no-check-certificate"
- komutu derlemeden önce verilerek sertifika denetimi kapatılabilir.
- 7. Önsistem derlemesi Lua ile bittiğinde ve 'talimatname/0/order' dosyası içindeki paketlerin kurulduğundan
- emin olunduktan sonra önsistem sıkıştırılarak yedeklenir:
- .. code:: bash
- ./onsistem_sfs.sh
- 8. Temel sistem paketlerinin hazırlanması için yeni derleme ortamına girilir:
- .. note::
- Temel sistem üretimi ertlenmek veya sfs kullanarak yapılmak istenirse:
- .. code:: bash
- unsquashfs onsistem-tarih-saat-degeri.sfs
- mv squashfs-root ${ONSISTEM_CHROOT}
- Buradan sonraki işlemler sudo yetkileri ile yapılmalıdır:
- .. code:: bash
- exit
- cd /home/mlfs/milis
- sudo su
- bash --rcfile ../.bashrc
- ./02-enter-chroot-tools
- # aşağıdaki çıktıyı görmeniz gerekir.
- Chroot ortamı bağlanıyor...
- mount: /dev bound on /home/mlfs/onsistem/dev.
- mount: devpts mounted on /home/mlfs/onsistem/dev/pts.
- mount: proc mounted on /home/mlfs/onsistem/proc.
- mount: sysfs mounted on /home/mlfs/onsistem/sys.
- mount: tmpfs mounted on /home/mlfs/onsistem/run.
- temel sistem talimatları kopyalandı.
- '/etc/ssl/certs/ca-certificates.crt' -> '/home/mlfs/onsistem/tools/etc/ssl/certs/ca-certificates.crt'
- '/etc/resolv.conf' -> '/home/mlfs/onsistem/tools/etc/resolv.conf'
- 9. Temel sistem içine girildikten sonra ulaşılması gereken komut satırı:
- .. code:: bash
- (temel) I have no name!:/#
- 10. Gerekli betikler çağrılarak sistem hazırlanmaya başlanır:
- .. code:: bash
- (temel) I have no name!:/# 03-temel-dosya-sistemi-hazirla
- .. note::
- Bu aşamada ulaşılması gerek komut satırı bu şekildedir:
- .. code:: bash
- bash-5.0#
- .. code:: bash
- bash-5.0# 04-mps-hazirla
- Bu aşamada mps'in doğru sürümünün kurulu olduğunu test etmek için:
- .. code:: bash
- bash-5.0# mps.lua -v
- MPS 2.0.0 - Milis Paket Sistemi milisarge@gmail.com
- .. code:: bash
- bash-5.0# 05-temel-sistemi-derle.sh
- Bash derlenip kurulduktan sonra aşağıdaki çıktı ile derleme duracaktır:
- ::
- # bash_refresh komutu verip tekrar devam edin!
- Aşağıdaki komut verilerek, derleme yeni bash ile kaldığı yerden devam edecektir:
- .. code:: bash
- bash-5.0# bash_refresh
- bash-5.0# 05-temel-sistemi-derle.sh
- .. note::
- Yeni bash ten sonra ortamdan çıkma durumu olursa yeniden ortam girmek için:
- .. code:: bash
- ./02.1-enter-chroot
- bash-5.0# 05-temel-sistemi-derle.sh
- 11. Canlı(Live) imajda kullanmak üzere initramfs üretilir:
- .. code:: bash
- dracut -N --force --xz --add 'dmsquash-live pollcdrom' --omit systemd /boot/initramfs_live `ls /usr/lib/modules`
- 12. Temel sistem derlemesi bittikten sonra derleme logları ve temel sistem incelenir:
- Aşağıdaki komutların çıktıları olmamalı:
- .. code:: bash
- bash-5.0# grep -l 'compilation terminated' /tmp/*.log
- bash-5.0# grep -l '.h: No such file or directory' /tmp/*.log
- find /var/lib/mps -name kurulan -size 0
- # kırık linklerin kontrolü
- rm -rf /tools
- find /usr -xtype l
- Aşağıdaki komutun çıktısı ise 'TM' olmalı:
- .. code:: bash
- [ `ls /var/lib/mps/db | wc -l` -eq `cat /usr/milis/talimatname/1/order | wc -l` ] && echo "TM"
-
- 13. Canlı imajda kullanmak üzere root şifresi oluşturulur: (Öntanımlı **toor**)
- .. code:: bash
- passwd
- 14. Temel sistem gereksiz dosyalardan arındırılır ve sfs yedeklenir:
- .. code:: bash
- exit
- cd /home/mlfs/milis
- ./temel_sfs.sh
- 15. Güncel MPS yüklenir ve gerekli ayarlamalar yapılır:
- .. code:: bash
- cp onsistem/etc/bash.bashrc onsistem/root/.bashrc
- cd /home/mlfs/mps
- git pull
- cd /home/mlfs
- rm -rf onsistem/usr/milis/mps
- cp -rf mps onsistem/usr/milis/
- # **temel sistemin içine tekrar gireriz**
- ./02.1-enter-chroot
- (temel) root:/# cd /usr/milis/mps
- (temel) root:/# echo "export MPS_PATH=/usr/milis/mps" >> /root/.bashrc
- (temel) root:/# echo "export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:\$MPS_PATH/bin" >> /root/.bashrc
- (temel) root:/# source /root/.bashrc
- (temel) root:/# sh derle.sh
- # sürüm numarası alınarak MPS kurulum doğrulanır.
- # mps -v
- 2.0.0
- # bashrc profile kopyalanarak chroot ortamdan çıkış yapılır.
- cp /root/.bashrc /etc/profile
- exit
- 16. İmaj üreticinin kullanılarak temel canlı imajın üretilmesi:
- .. code:: bash
- cd /home/mlfs
- git clone https://notabug.org/milislinux/imaj-uretici-2
- cd imaj-uretici-2
- ./iso_olustur.sh
|