Milis Linux 2.0 Git Deposu

yasarciv67 d9fd1bf2a1 gst-plugins-bad_yeni-gerekler2 %!s(int64=5) %!d(string=hai) anos
ayarlar ed81035d12 plisteler %!s(int64=5) %!d(string=hai) anos
bin 66220baf29 miis-kur %!s(int64=5) %!d(string=hai) anos
rehber 2aa72a31b4 vtable-dumper %!s(int64=5) %!d(string=hai) anos
talimatname d9fd1bf2a1 gst-plugins-bad_yeni-gerekler2 %!s(int64=5) %!d(string=hai) anos
.gitignore 43638b33a3 gitignore-fix %!s(int64=5) %!d(string=hai) anos
01-onsistem.sh 3fe27dc10d readme %!s(int64=5) %!d(string=hai) anos
02-enter-chroot-tools a334615e5e reference-links %!s(int64=5) %!d(string=hai) anos
02.1-enter-chroot a334615e5e reference-links %!s(int64=5) %!d(string=hai) anos
03-temel-dosya-sistemi-hazirla 31d29b1a40 bin-dir %!s(int64=5) %!d(string=hai) anos
04-mps-hazirla 2f36576b3c mps-exe %!s(int64=5) %!d(string=hai) anos
05-temel-sistemi-derle.sh 3fe27dc10d readme %!s(int64=5) %!d(string=hai) anos
Readme.md bb55eb7ec7 05 %!s(int64=5) %!d(string=hai) anos
bash_profile.temp 83551660b7 readme %!s(int64=5) %!d(string=hai) anos
bashrc-onsistem.temp c0c231b8c0 onsistem-yonergeleri %!s(int64=5) %!d(string=hai) anos
git-guncelle c6ed2baaad onsistem %!s(int64=5) %!d(string=hai) anos
onsistem_sfs.sh 28a801c6e1 sfs %!s(int64=5) %!d(string=hai) anos
temel_sfs.sh b76d03373a temel_sfs.sh %!s(int64=5) %!d(string=hai) anos

Readme.md

Milis 2.0 Sıfırdan Yapım Rehberi (Milis Linux From Stratch)

(Test aşamasındadır!!! Kullanmayınız)

0- Önsistem oluşturmak için gerekli paketleri kurunuz.

# 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 ayarlıyoruz.

sudo su

groupadd mlfs
useradd -s /bin/bash -g mlfs -m -k /dev/null mlfs
passwd mlfs

2- Milis 2.0 Depoyu klonlayıp önsistem için gerekli dizinleri oluşturuyoruz.

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ş yaparız.

su - mlfs

source ~/.bash_profile

4- Aşağıdaki komutları vererek izin ve ortam değişkenlerini kontrol ediniz.

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- Aşağıdaki komutlarla MPS i önsistem hazırlayıp kontrol ederiz.

cd ~/mps
bash derle.sh

mlfs@makine1:~/mps$ mps.lua -v
MPS 2.0.0 - Milis Paket Sistemi milisarge@gmail.com

6- Aşağıdaki komutlarla önsistemi derlemeye başlarız.

cd ~/milis
./01-onsistem.sh

# sertifika sorunu olursa
export WGET_GENEL_PARAM="--no-check-certificate"
# komutu verip tekrar komutlayın.

7- Önsistem derlemesi Lua ile bittiğinde, talimatname/0/order dosyası içindeki paketlerin kurulduğundan emin olduktan sonra önsistemi sıkıştırarak yedekleyin.

./onsistem_sfs.sh

8- Temel sistem paketlerinin hazırlanması için yeni derleme ortamına gireriz. 8a- Eğer temel sistem üretimi ertelemek veya sfs kullanarak yapmak isterseniz.Bu adımı uygulayın.

# # 8a adımı
unsquashfs onsistem-tarih-saat-degeri.sfs
mv squashfs-root ${ONSISTEM_CHROOT}

8a uygulanmazsa direk burdan devam. Burdan sonraki işlemler sudo yetkili yapılmalıdır.

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 girdikten sonra aşağıdaki komut satırına ulaşmanız gerekir.

(temel) I have no name!:/#

10- Aşağıdaki komutu verip 2.satırdaki komut satırına ulaşılır.

(temel) I have no name!:/# 03-temel-dosya-sistemi-hazirla
bash-5.0#

11- Aşağıdaki komutu mps.lua -v komutu verilip sürüm bilgisi alınmalıdır.

bash-5.0# 04-mps-hazirla 
bash-5.0# mps.lua -v
MPS 2.0.0 - Milis Paket Sistemi milisarge@gmail.com

12- Aşağıdaki komutu verip temel sistemi derlemeye başlarız.

bash-5.0# 05-temel-sistemi-derle.sh

13- Bash derlenip kurulduktan sonra aşağıdaki çıktı ile derleme duracaktır.

# bash_refresh  komutu verip tekrar devam edin!

14- Aşağıdaki komutu vererek, derleme yeni bash ile kaldığımız yerden devam edecektir.

bash-5.0# bash_refresh
bash-5.0# 05-temel-sistemi-derle.sh

14a- Yeni bash ten sonra ortamdan çıkma durumu olursa yeniden ortam girmek için, aşağıdaki komutu kullanınız.

./02.1-enter-chroot
bash-5.0# 05-temel-sistemi-derle.sh

15- Canlı(Live) imajda kullanmak üzere initramfs üretiriz.

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

16- Temel sistem derlemesi bittikten sonra derleme logları ve temel sistem incelenir.

# çıktı olmamalı, olursa etkileri incelenecek
bash-5.0# grep -l 'compilation terminated' /tmp/*.log
bash-5.0# grep -l '.h: No such file or directory' /tmp/*.log

# çıktı TM olmalı.
[ `ls /var/lib/mps/db | wc -l` -eq `cat /usr/milis/talimatname/1/order | wc -l` ] && echo "TM"

# çıktı olmamalı
find /var/lib/mps -name kurulan -size 0

# kırık linklerin kontrolü, çıktı olmamalı
rm -rf /tools
find /usr -xtype l

17- Canlı imajda kullanmak üzere root şifresi oluştururuz. (öntanımlı toor)

passwd

18- Temel sistemin gereksiz dosyalardan arındırılıp sfs yedeklenmesi.

# chroot ortamdan çıktınız.
exit 

cd /home/mlfs/milis
./temel_sfs.sh

19- Güncel MPS nin yüklenmesi ve gerekli ayarların yapılması.

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

20- İmaj üreticiyi kullanarak temel canlı imajın üretilmesi

cd /home/mlfs
git clone https://notabug.org/milislinux/imaj-uretici-2

cd imaj-uretici-2
./iso_olustur.sh