Sıfırdan Linux 1 - Barındırıcı Sistemi Hazırlama ve Disk Bölümü

İlk yazı serime başlıyorum. Sıfırdan linux, "Linux From Scratch" adıyla bilinen, tamamen en baştan bütün paketleri, kitaplıkları bir bir derleyerek kendi linux dağıtımımızı oluşturabileceğimiz bir proje.


Pdf şeklindeki kitabı buradan indirebilirsiniz. Her paket, her kitaplık kesinlikle belirtilen sürümde olmalı.

Kullandığım sistem Linux Mint 17 v2 x64'ün güncelleme almamış hali. Dediğim gibi birebir aynı sistem gerekli.

Ben bu süreci henüz hiç tamamlamadım. Ancak hiçbir şüphem veya çekincem yok, azmim yeter :) Her komutu bir bir açıklayamayacağım gibi bu yazı serisi benim için oldukça sancılı olacak.

Yazı serisi bittiğinde nasıl yapıldığını göstermek için kendi yazımı kullandığım bir video hazırlayacağım.

Başlayalım.

İlk işimiz, sistemi derleyeceğimiz sistemi hazırlamak. Gerekli olan araçların yüklü olup olmadığını bu betik ile kontrol edebilirsiniz.

cat > version-check.sh << "EOF"
#!/bin/bash
# Simple script to list version numbers of critical development tools
export LC_ALL=C
bash --version | head -n1 | cut -d" " -f2-4
echo "/bin/sh -> `readlink -f /bin/sh`"
echo -n "Binutils: "; ld --version | head -n1 | cut -d" " -f3-
bison --version | head -n1
if [ -e /usr/bin/yacc ];
then echo "/usr/bin/yacc -> `readlink -f /usr/bin/yacc`";
else echo "yacc not found"; fi
bzip2 --version 2>&1 < /dev/null | head -n1 | cut -d" " -f1,6-
echo -n "Coreutils: "; chown --version | head -n1 | cut -d")" -f2
diff --version | head -n1
find --version | head -n1
gawk --version | head -n1
if [ -e /usr/bin/awk ];
then echo "/usr/bin/awk -> `readlink -f /usr/bin/awk`";
else echo "awk not found"; fi
gcc --version | head -n1
g++ --version | head -n1
ldd --version | head -n1 | cut -d" " -f2-
grep --version | head -n1
gzip --version | head -n1
cat /proc/version
m4 --version | head -n1
make --version | head -n1
patch --version | head -n1
echo Perl `perl -V:version`
sed --version | head -n1
tar --version | head -n1
xz --version | head -n1
# glibc version
echo 'main(){}' > dummy.c && g++ -o dummy dummy.c
if [ -x dummy ]
then echo "g++ compilation OK";
else echo "g++ compilation failed"; fi
rm -f dummy.c dummy
for lib in lib{gmp,mpfr,mpc}.la; do
echo $lib: $(if find /usr/lib* -name $lib|
grep -q $lib;then :;else echo not;fi) found
done
unset lib
EOF

bash version-check.sh

Linux Mint 17 v2'de bison, g++, libgmp, libmpfr ve libmpc paketleri eksik. Bison ve g++ depoda var

sudo apt-get install bison g++

Ancak diğer kitaplıklar üstteki pakette mevcut. Oradan sistemimize kuralım.

gmp-5.1.3 paketini derlerken /usr konumunu belirtmeyince /usr/local/lib'e kuruyor. Yani

./configure --prefix=/usr
make
make check
sudo make install

komutları ile yükleyin.

mpfr-3.1.2 ve sonra mpc-1.0.2'yi derlerken de aynı şekilde konum gerekli. Ve gmp'yi kullanarak derlenmeli.

./configure --prefix=/usr --with-gmp=/usr/lib
make
make check
sudo make install

Üstteki betikte eksik olan araç kalmadı. Sistemimiz sistem inşa etmek için hazır.

_______________________________________________________________________________


Sabit diskimizde en az 15 GB'lık bir bölümü bu sisteme ayırmalıyız. Gparted gibi bir araçla bölümü hazırlayın. Sisteminizin takas alanı da muhtemelen vardır yok ise ayarlayın. Dosya sisteminin ext4 olduğundan emin olmak için

mkfs -v -t ext4 /dev/sda2

Bende bölüm sda2 idi. Bir kısaltma önerilmiş

mkdir /mnt/lfs

export LFS=/mnt/lfs

Ve bağlayalım

mount -v -t ext4 /dev/sda2 $LFS

mkdir -v $LFS/sources

tar -xvf /home/ufuk/lfs-packages-7.5.tar -C /mnt/lfs/sources
mv /mnt/lfs/sources/7.5/* /mnt/lfs/sources
rm -r /mnt/lfs/sources/7.5 

chmod -v a+wt $LFS/sources

mkdir -v $LFS/tools

ln -sv $LFS/tools /

Diskimiz ve başta gerekecek klasörler hazır. Sonraki yazımda derleme yapacağımız kullanıcı profilini oluşturacağız.

1 yorum :