İ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.
Dosyaları bana gönderebilir misiniz?
YanıtlaSil