Sıfırdan Linux 2 - Kullanıcı hesabı oluşturma, binutils, gcc


Serinin ikinci yazısında derleme ortamındaki kullanıcı hesabımızı oluşturalım ve temel paketleri derlemeye başlayalım.



Kullanıcı grubu ve kullanıcı hesabı

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

Klasörlerin sahibi

chown -v lfs $LFS/tools
chown -v lfs $LFS/sources

Geçelim

su - lfs

~/.bash-profile dosyasına

cat > ~/.bash_profile << "EOF"
exec env -i HOME=$HOME TERM=$TERM PS1='\u:\w\$ ' /bin/bash
EOF


~/.bashrc dosyasına

cat > ~/.bashrc << "EOF"
set +h
umask 022
LFS=/mnt/lfs
LC_ALL=POSIX
LFS_TGT=$(uname -m)-lfs-linux-gnu
PATH=/tools/bin:/bin:/usr/bin
export LFS LC_ALL LFS_TGT PATH
EOF

ve alttaki bunu çıktı vermeli: dircolors: no SHELL environment variable, and no shell type option given

source ~/.bash_profile

_____________________________________________________________________________


binutils paketini derleyelim. Dosya kopyalama, taşıma, arşivden çıkarma işlemlerini ya komutlarda lfs kullanıcısı üzerinden yapmalısınız ya da grafiksel arayüzde root yetkisi ile yaptıktan sonra dosyaların sahipliğini lfs ye vermelisiniz.

Ben komutlarla yapıyorum.

cd /mnt/lfs/sources
tar -xvjf binutils-2.24.tar.bz2

Bazı paketlerin derleme işini paketin dışında bir konuma yapmak gerekir. binutils bunlardan biri. binutils-build diye bir klasör oluşturup ona derleyelim.

mkdir binutils-build
cd binutils-build

../binutils-2.24/configure --prefix=/tools --with-sysroot=$LFS --with-lib-path=/tools/lib --target=$LFS_TGT --disable-nls -disable-werror

make

64 bit sistem ayarladığımız için bir ek:

case $(uname -m) in
x86_64) mkdir -v /tools/lib && ln -sv lib /tools/lib64 ;;
esac

make install

_____________________________________________________________________________

gcc-4.8.2.tar.bz2 için gmp, mpfr ve mpc paketleri gerekli. Bu üç kitaplığı gcc'nin içine bu isimlerle çıkartmalıyız.

cd /mnt/lfs/sources
tar -xvjf gcc-4.8.2.tar.bz2
cd gcc-4.8.2
tar -Jxf ../mpfr-3.1.2.tar.xz
tar -Jxf ../gmp-5.1.3.tar.xz
tar -zxf ../mpc-1.0.2.tar.gz
mv -v mpfr-3.1.2 mpfr
mv -v gmp-5.1.3 gmp
mv -v mpc-1.0.2 mpc

Ve bu komutu çalıştırın

for file in \
$(find gcc/config -name linux64.h -o -name linux.h -o -name sysv4.h)
do
cp -uv $file{,.orig}
sed -e 's@/lib\(64\)\?\(32\)\?/ld@/tools&@g' \
-e 's@/usr@/tools@g' $file.orig > $file
echo '
#undef STANDARD_STARTFILE_PREFIX_1
#undef STANDARD_STARTFILE_PREFIX_2
#define STANDARD_STARTFILE_PREFIX_1 "/tools/lib/"
#define STANDARD_STARTFILE_PREFIX_2 ""' >> $file
touch $file.orig
done

Ve bu:

sed -i '/k prot/agcc_cv_libc_provides_ssp=yes' gcc/configure

gcc'nin de dışarıda derlenmesi gerekli:

mkdir -v ../gcc-build
cd ../gcc-build

Tek komut olarak

../gcc-4.8.2/configure --target=$LFS_TGT --prefix=/tools --with-sysroot=$LFS --with-newlib --without-headers --with-local-prefix=/tools --with-native-system-header-dir=/tools/include --disable-nls --disable-shared --disable-multilib --disable-decimal-float --disable-threads --disable-libatomic --disable-libgomp --disable-libmudflap --disable-libitm --disable-libquadmath --disable-libsanitizer --disable-libssp --disable-libstdc++-v3 --enable-languages=c,c++ --with-mpfr-include=$(pwd)/../gcc-4.8.2/mpfr/src --with-mpfr-lib=$(pwd)/mpfr/src/.libs

make
make install

ln -sv libgcc.a `$LFS_TGT-gcc -print-libgcc-file-name | sed 's/libgcc/&_eh/'`

3. yazıda kernel başlığı ve birkaç kitaplığı derleyeceğiz.

Hiç yorum yok :

Yorum Gönder