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.
Kaydol:
Kayıt Yorumları
(
Atom
)
Hiç yorum yok :
Yorum Gönder