İmaj Hazırlama
===================================

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

#. 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üncellemeleri yapar; 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

   .. note::
    'order' dosyası minimal bir sistemi kurmak için gerekli dosyaları **sıralı** bir liste
    olarak içerir. Dosya istek doğrultusunda düzeltilebilir veye yerine başka bir dosya kullanılabilir.
    Fakat ne yaptığınızı kesin olarak bilmediğiniz takdirde belirtilen dosyayı kullanmanız 
    önerilir.

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

   .. code:: bash

    cp -r $MPS_PATH $MSYS/usr/milis/mps
    
#. konak sistemin hosts dosyası kullanılmak istenirse:

   .. code:: bash

    cp -f /etc/hosts $MSYS/etc/

#. chroot içine girilir:

   .. code:: bash

    ./enter-chroot $MSYS

#. mps'nin altındaki lua modulleri derlenir:

   .. code:: bash

    cd /usr/milis/mps
    bash derle.sh
  
#. Gerekli temel ve ek servisler kurulur ardından güncellemeler çalıştırılır:

   .. code:: bash

     cd /usr/milis/ayarlar/servisler
     make install
     make kur-random

   .. code:: bash
    
    update-ca-certificates --fresh && mps kur p11-kit && make-ca -g
   
   .. code:: bash
    
    cd /opt
    mps gun -H  
   
#. Minimal bir sistem kurmak için gerekli paketler indirilir ve yüklenir:

   .. code:: bash

    mps kur --dosya=/usr/milis/ayarlar/iso/minimal.pliste # minimal sistem
    mps kur --dosya=/usr/milis/ayarlar/iso/xorg.pliste    # + X altyapısı
    mps kur --dosya=/usr/milis/ayarlar/iso/xfce4.pliste   # + XFCE4 masaüstü
    mps kur --dosya=/usr/milis/ayarlar/iso/cesitli.pliste # + günlük uygulamalar

#. canlı sistem için initramfs üretilir:

   .. code:: bash

    dracut -N --force --xz --add 'dmsquash-live pollcdrom' --omit systemd /boot/initrd_live `ls /usr/lib/modules`

#. Yerelleştirme ayarları yapılır (Türkçe/Türkiye için ve minimal sistem kullanımında uygulanır.):

   .. code:: bash

    # nano /etc/sysconfig/rc.site
    UNICODE=1
    KEYMAP="trq"
    FONT="drdos8x16 -m 8859-15" #değerleri atanır.
    # nano /etc/sysconfig/clock
    UTC=1
    TIMEZONE="Turkey"

#. Canlı sistem ayarları yapılır.

   .. code:: bash
   
    echo ". /etc/profile" > /root/.bashrc
    echo "LANG=tr_TR.UTF-8" >> /etc/environment
    # aşağıdaki ayarlar X için gerekli  
    echo "tr" > /root/.Xkbmap
    usermod -a -G pulse-access root

   .. note::
    * /usr/milis/mps/conf/conf.lua dosyası içinde sistem için gerekli depo bilgilerini güncelleyin!
    * /etc/hosts dosyası kullandıysanız orjinal haline getirin.
    * Canlı kullanıcı için gerekli grup izinlerini(ses, ağ, vb erişimler) ayarlayın!
    * Masaüstü için gerekli klavye ayarlarını yapın!
    * Masaüstü için gerekli .xinitrc dosyasını ayarlayın!(Lightdm için gerekmez)

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

   .. code:: bash

    rm -f /var/cache/mps/depo/*.mps.lz ; rm -f /tmp/*.log
    service fixer
    exit
    rm -f $MSYS/root/.bash_history
    
#. iso yapılmak istenen dizinin altına girilir ve imaj üretici indirilir:

   .. code:: bash

    cd /opt
    git clone https://mls.akdeniz.edu.tr/git/milislinux/imaj-uretici

#. Imaj oluşturma betiğiyle imaj oluşturma işlemi başlatılır:

   .. code:: bash

    /opt/imaj-uretici-2.0
    bash iso_olustur.sh $MSYS

 .. note::
    Oluşan imajın giriş bilgileri: root / toor

