Derleme Ortamı Üretme
===================================

.. toctree::
   :maxdepth: 2
   :caption: Contents:

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.

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

   .. code:: bash

    export MSYS=/tmp/sys
    export MPS_PATH=/opt/mps
    export MILIS_PATH=$MSYS/usr/milis
 
#. MPS kaynak kodu indirilip derlenir:

   .. code:: bash

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

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

   .. code:: bash

    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:

   .. code:: bash

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

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

   .. code:: bash

    nano ../conf/conf.lua

#. Dizin sistemi ve MPS'nin ilklenmesini --kok değerine göre verilen dizinde oluşturulur:

   .. code:: bash

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

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

   .. code:: bash
    
    ./mps gun -GPB --kok=$MSYS

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

   .. code:: bash

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

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

   .. code:: bash

    cp -r $MPS_PATH $MSYS/usr/milis/mps
    
#. chroot içine girilir:

   .. code:: bash

    ./enter-chroot $MSYS

#. mps dizini altındaki lua modulleri derlenir:

   .. code:: bash

    cd /usr/milis/mps
    bash derle.sh
  
#. Gerekli güncellemeler çalıştırılır:

   .. code:: bash
    
    update-ca-certificates --fresh && mps kur p11-kit && make-ca -g
   

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

   .. code:: bash

    rm -rf /var/cache/mps/depo/*
    exit
    rm -f $MSYS/root/.bash_history
    
#. Ortam içindeki sources dizini silinir çünkü sonra mpsdo ile güncel sources dizini bağlanacak:

   .. code:: bash

     rm -rf $MSYS/sources

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

   .. code:: bash

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


