# Derleme Ortamı Üretme

Milis Linux’ta paketleri temiz bir ortamda üretebilmek için squash filesystem ile sıkıştırılmış bir sistem kalıbı kullanılır. Aşağıdaki komutlarla bu sistem kalıbını üretebiliriz. Eğer hazır üretilmiş sistem kalıbını kullanmak isterseniz mpsdo komutunu kullanabilirsiniz.

1. Gerekli çevre değişkenleri ayarlanır:

       export MSYS=/tmp/sys
       export MPS_PATH=/opt/mps
       export MILIS_PATH=$MSYS/usr/milis

2. MPS kaynak kodu indirilip derlenir:

       git clone https://mls.akdeniz.edu.tr/git/milislinux/mps $MPS_PATH
       cd $MPS_PATH
       bash derle.sh $MPS_PATH

3. mps gerekli konfigürasyon ayarlarını yaptğınından dolayı ilk çalıştığında:

       cd bin
       ./mps
       MPS öntanımlı ayarlar yüklendi.
       Lütfen mps'i yeniden çalıştırın!

   uyarısını verecektir. Bu adımdan sonra mps kurulumu tamamlanmış olur. Kontrol etmek için:

       ./mps -v
       MPS 2.1.0 - Milis Paket Sistemi milisarge@gmail.com

4. MPS’in paketleri nereden alacağını belirlemek için gerekli ayarlar yapılır:

       nano ../conf/conf.lua

5. Dizin sistemi ve MPS’nin ilklenmesini –kok değerine göre verilen dizinde oluşturulur:

       ./mps --ilkds --ilk --kok=$MSYS

6. Gerekli güncellemeler yapılır; talimatname, depo ve betik:

       ./mps gun -GPB --kok=$MSYS

7. Minimal bir sistem ortamı kurmak için gerekli paketler indirilir ve yüklenir:

       ./mps kur --dosya=$MSYS/usr/milis/talimatname/1/ortam.order --kurkos=0 --koskur=0 --kok=$MSYS

8. MPS kurulum dizininin altına kopyalanır:

       cp -r $MPS_PATH $MSYS/usr/milis/mps

9. chroot içine girilir:

       ./enter-chroot $MSYS

10. mps dizini altındaki lua modulleri derlenir:

        cd /usr/milis/mps
        bash derle.sh

11. Gerekli güncellemeler çalıştırılır:

        update-ca-certificates --fresh && mps kur p11-kit && make-ca -g

12. Önbellekteki paket arşivleri temizlenir, ortamdan çıkılır ve komut tarihçesi temizlenir:

        rm -rf /var/cache/mps/depo/*
        exit
        rm -f $MSYS/root/.bash_history

13. Ortam içindeki sources dizini silinir çünkü sonra mpsdo ile güncel sources dizini bağlanacak:

        rm -rf $MSYS/sources

14. Yeni sistem squash filesystem ile sıkıştırılır:

        mksquashfs $MSYS milis2-"$(date -d "$D" '+%m-%d')"-ortam.sfs -comp xz