Düzenleme Sürümü 0.6.0

8.1. Giriş

Bu bölümde Son sistem paketleri inşası için chroot hiyerarşisinin nasıl olacağına bakacağız.

8.2. E2fsprogs-1.40.4

Dosya sistemi biçimlendirmesini sağlayan programları içerir ext2 dışında ext3 desteği de vardır.

  • --enable-elf-shlibs
  • Bu pakette bazı programların kullandığı paylaşılan kütüphaneleri oluşturur.
  • --disable-evms
  • EVMS(Enterprise Volume Management System) ekletisini devredışı bırakır.Daha fazlası için...
  • install-libs
  • Bu komut sadece e2fsprogs kütüphanleri yükleyecek

8.3. Util-linux-ng-2.14

dosya sistemleri, konsollar, bölümler ve mesajlar ile ilgili çeşitli araçları içerir.

8.4. Sanal Çekirdek Dosya Sistemlerini Bağlama

8.5. Chroot Ortamına Giriş:

Son CLFS sistemini inşa etmeye ve yüklemeye başlamak için chroot ortamına girme zamanı.Root olarak aşağıdaki komutları çalıştırılım:

env komutu için verilen -i seçeneği chroot ortamının tüm değişkenlerini temizleyecektir. Sonra HOME,TERM,PS1 ve PATH değişkenleri tekrar ayarlar. TERM=${TERM} yapımı TERM değişkenini CHROOT içine dışındaki gibi ayarlayacak. Bu değişken vim,less benzeri programları düzgün işletmek için ihtiyaç duyar. Bu noktada CLFS değişkenine ihtiyacımız yok çünkü CLFS dosya sisteminde tüm işler kısıtlanmış olacak. Bu bölümün bundan sonraki bölümündeki tüm komutlar ve bundan sonraki konular "Chroot" ortamı içinden çalışacak. Herhangi bir sebepten dolayı(yeniden başlatmak gibi) bu ortamdan ayrılırsan ilk bağlanan "proc" ve "devpts" dosya sistemlerini bağlamayı ve yüklemeye devam etmeden önce chroot girişi yapmayı unutmayın.

8.6. Sahiplik Değişimi

"/tools" ve "/cross-tools" dizinleri clfs kullanıcı tarafından sahiplikleri vardır. sadece konuk sistem üzerinde bir kullanıcı var.

Komutta kullanılan "0:0", "root:root" yerine geçer çünkü chown, passswd oluşturulana kadar "root" çözememektedir.

8.7. Dizinleri Oluşturma

CLFS dosya sisteminde bazı yapıları oluşturma zamanı. Standart dizin ağacını oluşturalım:

Dizinler varsayılan olarak 755 iziniyle oluşturuldu ama bu bütün dizinler için kabul edilebilir birşey değil. O yüzden yukarıdaki komutlarda "root" kullanıcısının ev dizini ve geçici dosyalar için oluşturulan dizininin izinleri değişitirildi.
Birincisinde diğerlerinin "/root" dizinine giriş yapmasını engelliyoruz.İkincisinde ise "/tmp" ve "/var/tmp" dizinleri için her kullanıcıya yazma izni ama sadece kendi dosyalarını silme izni veriyoruz. Bunu da yapışkan bit(sticky bit=1) ile yapıyoruz.

8.7.1. FHS Uyum Notu

FHS(FileSystem Hierarcy Standart) tabanlı dizin ağacıdır.Buna ek olarak yukarıda oluşturduğumuz ağacı için bu standart "/usr/local/games" ve "/usr/local/share" dizinlerinin varolmasını sart koşar. FHS "/usr/local/share alt dizininin yapısı için tam değildir, bu yüzden biz sadece gerekli dizinleri oluşturduk. Bununla birlikte FHS için bunları oluşturabilirsin..."

8.8. Temel Sembolik Bağlantıları Oluşturma

Bazı programlar henüz olmayan programlar için direk yolları kullanırlar.Bu programları memnun edebilmek için daha sonraki bölümlerde gerçek dosyalar ile yer değiştirecek sembolik bağlantıları oluşturacağız.

8.9. Bayrakları İnşa Et

8.10. Parola(passwd),Grup ve günlük dosyalarını oluşturma

"root" olarak "root" adıyla oturum açabilmek için "/etc/passwd" ve "/etc/group" içerisinde ilgili girdilerin olması gerekmektedir.Aşağıdaki komutla "/etc/passwd" dosyasını oluşturalım:

root için gerçek parola daha sonra atanacak.(x burada yertutucu olarak kullanılır.)

Ekleyebileceğin ek kullanıcılar:
  • bin:x:1:1:bin:/bin:/bin/false
  • daemon:x:2:6:daemon:/sbin:/bin/false
  • adm:x:3:16:adm:/var/adm:/bin/false
  • lp:x:10:9:lp:/var/spool/lp:/bin/false
  • mail:x:30:30:mail:/var/mail:/bin/false
  • news:x:31:31:news:/var/spool/news:/bin/false
  • uucp:x:32:32:uucp:/var/spool/uucp:/bin/false
  • operator:x:50:0:operator:/root:/bin/bash
  • postmaster:x:51:30:postmaster:/var/spool/mail:/bin/false
  • nobody:x:65534:65534:nobody:/:/bin/false

Şimdi "/etc/group" oluşturalım:

Ekleyebileceğin ek gruplar:
  • adm:x:16:root,adm,daemon
  • console:x:17:
  • cdrw:x:18:
  • mail:x:30:mail
  • news:x:31:news
  • uucp:x:32:uucp
  • users:x:1000
  • nogroup:x:65533
  • nobody:x:65534

login,agetty ve init programları gibi programlar günlük dosyaları tutarlar. Kimin, ne zaman işlem yaptığı tutan bu dosyalar oluşmamış ise günlükleme yaılamaz. O yüzden günlük dosyalarımızı oluşturalım ve izinlerini verelim:

"/var/run/utmp" dosyası şu anki oturum açan kullanıcıyı kaydeder. "/var/log/wtmp" dosyası tüm oturum açma ve kapama işlemlerini kaydeder. "/var/log/lastlog" dosyası her kullanıcının açtığı en son oturumu kaydeder."/var/log/btmp" dosyası başarışız girişleri kaydeder.

8.11. Çekirdek Dosya Sistemini Bağlama

yeni oluşturulmuş dizinler üzerinde çekrideğe özgü dosya sistemini bağlıyoruz.

  • can't open /etc/fstab: No such file or directory.
  • mount komutundan sonra böyle bir uyarı ile karşılaşırsanız. "/etc/fstab" henüz oluşturulmamış fakat dosya sistemini doğru şekilde oluşturmak için gerekli değildir. Bu yüzden bu uyarıyı içiniz rahat bir şekilde yoksayabilirsiniz.

Düzenleme Sürümü 0.9.0

6.1. Giriş

Bu bölümde en küçük Linux sistemin nasıl derlenip yüklendiğini göreceğiz.Bu sistem Bölüm-10-Temel Sistem Yazılımlarının Yüklenmesi(Installing Basic System Software) içerisinde son CLFS sistemini oluşturmaya başlamak için yeterli araçları içerir ve sıkışık ortamdan daha fazla kullanıcı rahatlığı sağlayan bir çalışma ortamına izin verecektir. Bu bölümde ki araçlar "/cross-tools" dizinindeki araç zincirini(toolchain) kullanarak çapraz derleme yapar ve daha sonraki CLFS sistemizin kirlenmesinide önlmek için "${CLFS}/tools" dizini altına yükleyecek. Şimdi değişkenimizi kontrol edelim.

Bu bölümde böyle bir hatayla karşılaşırsanız güvenle yokmuş gibi davranabilirsiniz.

configure: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used.

6.2 Değişkenleri Oluşturma

Bağlayıcılar ve derleyici için hedefe özel değişkenleri atayalım.

6.3. Binutils-2.18

Binutils paketi bağlayıcı,assembler ve nesne dosyaları için diğer araçları içerir.

  • CC="${CC} ${BUILD64}"
  • Derleyiciye 64 bit inşa bayraklarımızı kullanmasını söyler.

6.4. GCC-4.2.4

  • CXX="${CXX} ${BUILD64}"
  • 64 bit bayraklarmızı kullanmamız için C++ derleyicimizi zorlar.
  • --disable-libstdcxx-pch
  • libstdc++ için ön-derleme başlıklarını(PCH) inşa etmez.Çok fazla alan kapladığı için onu kullanmıyoruz.

6.5. Ncurses-5.6

The Ncurses package contains libraries for terminal-independent handling of character screens.

  • --with-shared
  • Ncurses'e paylaşılan kütüphane oluşturmasını söyler.
  • --without-debug
  • İnşanın Debug olmadan yapılmasını söyler.
  • --without-ada
  • Son Sistem inşası sırasında Ada Derleyici kullanılmayacağı için desteğini kaldırır.
  • --enable-overwrite
  • Diğer paketler başarılı bir şekilde Ncurses başlık dosyalarını bulabilmesi için "/tools/include/ncurses" yerine "/tools/include" içerisine yüklemesini söyler.
  • --with-build-cc=gcc
  • Kullanacağımız derleyicinin tipini söyler.

6.6. Bash-3.2

Bourne-Again SHell

  • --without-bash-malloc
  • Bu seçenek "Bash"'in hafıza ayırma fonksiyonunu (malloc) kapatır. "Bash", daha kararlı olan "Glibc" nin "malloc" fonksiyonunu kullanır.

6.7. Bzip2-1.0.4

Sıkıştırma ve açma programları içerir.Metin dosyalarını sıkıştırma geleneksel gzip'e oranla bzip daha iyi bir sıkıştırma sağlar.

6.8. Coreutils-6.9

temel sistem karakteristiklerini ayarlama ve gösterme için araçlar içerir.

6.9. Diffutils-2.8.7

Dizinlerin veya dosyaların arasındaki farkları gösterir.

6.10. Findutils-4.2.32

Dosyaları bulmak için programlar içerir.

6.11. Zlib-1.2.3

Bazı programlar tarafından kullanılan sıkıştırma ve açma programlarını içerir.

6.12. File-4.23

Verilen dosya(lar) tiplerini düzenlemek için araçlar içerir.

6.13. Gawk-3.1.6

Dizge kalıplarını tarama ve işleme dilidir.

6.14. Gettext-0.17

Bu paket ulusal ve yerel uyarlamalar için araçlar içerir.Bunlar programlara NLS(Native Language Support) ile derlenmeye izin verir.

6.15. Grep-2.5.3

Dosyalar arasında arama için program içerir.

  • --disable-perl-regexp
  • Son sistem inşas edildiği zaman çalışmayacak şuan ki sistemde çalışabilir, PERL COMPATIBLE REGULAR EXPRESSION (PCRE) kütüphanesinin bağlantısını almaz.

6.16. Gzip-1.3.12

Dosyaları sıkıştırma ve açma programları içerir.

6.17. Make-3.81

Derleme paketleri için program içerir.

6.18. Patch-2.5.9

Dosyalar arasındaki farkı yama dosyaları ile düzenleyen veya oluşturan programı içerir.

6.19. Sed-4.1.5

bir (stream editor)düzenleyici içerir.

6.20. Tar-1.20

Sıkıştırma programı içerir.

6.21. Texinfo-4.11

Bilgi sayfalarını okuma,yazma ve çevirme için gerekli programları içerir.

6.22. Boot veya Chroot ?

Bu noktadan sonra son sitemizi tamamlamak için iki farklı yolumuz var. Oluşan geçici sistemi kullanarak boot etmeyi sağlamak,Chroot ile sistemi kullanmak. BOOT metodu PowerPC sistemin x86 üzerinden inşa ederken kullanılır, CHROOT olunamaz. CHROOT metodu aynı mimari üzerinde inşa edildiği zaman kullanılır. Bu konu üzerinde şüpheleriniz var ise aşağıdaki komutları deneyebilirsiniz. Bu size CHROOT metodunu ve ya BOOT metodunu seçmenize yardım edecek.
  • /tools/lib/libc.so.6
  • /tools/lib64/libc.so.6
  • /tools/bin/gcc -v
Biz yola CHROOT ile devam edeceğiz...
Referances...

About

seruhatto