Pardus /lib Dizini: Sistemin Temel Kütüphaneleri
Pardus ve genel Linux ekosisteminde, /lib ile başlayan dizinler sistemin "can damarı" olarak nitelendirilebilir. Bu dizinler, işletim sisteminin önyükleme (boot) yapabilmesi ve temel komutların çalışabilmesi için ihtiyaç duyulan paylaşımlı kütüphane dosyalarını barındırır.
/lib dizini, sistemin çalışması için kritik öneme sahip olan paylaşımlı kütüphane nesnelerini (.so dosyaları) ve çekirdek modüllerini içerir. /bin ve /sbin dizinlerindeki temel komutların (örneğin ls, cp, mkdir) çalışması için bu kütüphanelere ihtiyaç vardır.
Öne Çıkan İçerikler:
Çekirdek Modülleri (
/lib/modules): Sistemin yüklü olan tüm kernel sürümlerine ait sürücüler ve modüller burada saklanır. Her kernel sürümü için ayrı bir alt klasör bulunur.Firmware (
/lib/firmware): Donanımların (Wi-Fi kartları, ekran kartları vb.) düzgün çalışması için ihtiyaç duyduğu aygıt yazılımları burada yer alır.Dinamik Bağlayıcılar: Programlar çalıştırıldığında, ihtiyaç duydukları kütüphaneleri belleğe yükleyen
ld-linux.sogibi dosyalar burada bulunur.
/lib32 ve /lib64: Mimari Farklılıklar
Modern Pardus sürümleri genellikle 64-bit (x86_64) mimarisini kullanır. Ancak sistemde hem 32-bit hem de 64-bit uygulamaların bir arada çalışabilmesi için bu ayrım hayati önem taşır.
/lib64
64-bit sistemlerde, 64-bitlik temel paylaşımlı kütüphaneler bu dizinde bulunur. Çoğu modern Linux dağıtımında bu dizin, aslında /lib dizinine bir sembolik bağ (symlink) olabilir veya kütüphanelerin mimari bazlı ayrıldığı ana nokta olarak hizmet eder.
/lib32
Sisteminiz 64-bit olsa bile, bazen eski uygulamalar veya özel kapalı kaynaklı yazılımlar (bazı oyunlar veya eski sürücüler) 32-bit kütüphanelere ihtiyaç duyar. /lib32 dizini, bu 32-bitlik uygulamaların çalışabilmesi için gerekli olan çalışma zamanı (runtime) kütüphanelerini barındırır.
UsrMerge Yapısı: Modern Pardus'taki Değişim
Pardus'un son sürümlerinde (ve Debian tabanında), UsrMerge adı verilen bir yapıya geçilmiştir. Bu yapıda, kök dizindeki /lib, /lib32, /lib64, /bin ve /sbin dizinleri aslında /usr dizini altındaki karşılıklarına işaret eden birer sembolik bağdır (symlink).
| Eski Yol | Gerçek Yol (UsrMerge) | Açıklama |
| /lib | /usr/lib | Temel sistem kütüphaneleri |
| /lib64 | /usr/lib64 | 64-bit kütüphaneler |
| /lib32 | /usr/lib32 | 32-bit kütüphaneler |
Neden bu yapıya geçildi?
Sistem Temizliği: Tüm statik verilerin
/usraltında toplanması yedeklemeyi ve sistem yönetimini kolaylaştırır.Snapshot Desteği: Dosya sistemi anlık görüntüleri (snapshot) alınırken daha tutarlı bir yapı sunar.
Uyumluluk: Farklı dağıtımlar arasındaki dosya yolu farklılıklarını minimize eder.
Kütüphane Dosyalarını Anlamak (.so dosyaları)
Bu dizinlerin içinde en çok rastlayacağınız dosya uzantısı .so (Shared Object) uzantısıdır. Windows'taki .dll dosyalarının karşılığıdır.
Dinamik Paylaşım: Bir kütüphane (örneğin
libc.so), aynı anda onlarca farklı program tarafından kullanılabilir. Bu, RAM tasarrufu ve disk alanı verimliliği sağlar.Bağımlılık Yönetimi: Bir uygulamayı Pardus'ta
aptile kurduğunuzda, aslında o uygulamanın ihtiyaç duyduğu ve bu dizinlerde bulunması gereken kütüphaneler de otomatik olarak kontrol edilir.
Özet ve Teknik İpucu
Eğer bir program çalışırken "shared library not found" hatası alıyorsanız, sisteminiz bu /lib dizinlerinde ilgili dosyayı bulamıyor demektir. Pardus'ta bu sorunu çözmek için genellikle ldconfig komutu kullanılır; bu komut kütüphane yollarını tarar ve önbelleği günceller.
Dosya yollarını kontrol etmek için şu komutu kullanabilirsiniz:
Bu komut, bu dizinlerin gerçek bir klasör mü yoksa /usr dizinine yönlendirilmiş birer link mi olduğunu size gösterecektir.
Uygulamalı Örnek: Bir Program Hangi Kütüphaneleri Kullanır?
Pardus üzerinde bir komutun veya uygulamanın hangi paylaşımlı kütüphanelere (.so dosyalarına) ihtiyaç duyduğunu ve bu kütüphanelerin hangi dizinlerden (/lib, /lib64 vb.) çekildiğini görmek için ldd (List Dynamic Dependencies) komutunu kullanırız.
ldd Komutu ile İnceleme
Gelin, sistemin en temel komutlarından biri olan ls komutunun hangi kütüphaneleri kullandığına bakalım:
ldd /usr/bin/ls
Örnek Çıktı:
linux-vdso.so.1 (0x00007ffd395f3000)
libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007f3e8a21d000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f3e8a03c000)
libpcre2-8.so.0 => /lib/x86_64-linux-gnu/libpcre2-8.so.0 (0x00007f3e89fa5000)
/lib64/ld-linux-x86-64.so.2 (0x00007f3e8a27a000)
Bu Çıktı Bize Ne Anlatıyor?
Kütüphane Adı: En soldaki sütun (
libc.so.6gibi), programın çalışması için gerekli olan kütüphanenin adıdır.Yol (Path): Ok işaretinden (
=>) sonraki kısım, Pardus'un bu kütüphaneyi sistemde hangi dizinde bulduğunu gösterir. Dikkat ederseniz kütüphanelerin çoğu mimari bazlı ayrılmış olan/lib/x86_64-linux-gnu/altında tutulmaktadır.Bellek Adresi: Parantez içindeki hex kodları, program çalıştığında kütüphanenin RAM üzerinde hangi adrese yüklendiğini belirtir.
Dinamik Bağlayıcı: En alttaki
/lib64/ld-linux-x86-64.so.2dosyası ise tüm bu kütüphaneleri bulup birbirine bağlayan "ana yükleyici"dir.
Neden Önemli?
Bir sistem yöneticisi olarak, bir uygulama "Shared library not found" hatası verdiğinde ldd komutunu kullanarak hangi dosyanın eksik olduğunu anında tespit edebilirsiniz. Eğer çıktıdaki bir satırda not found yazıyorsa, o kütüphaneyi içeren paketi apt ile kurmanız gerekir.
Blog İçin İpucu: Mimari Kontrolü
Eğer bir dosyanın 32-bit mi yoksa 64-bit mi olduğunu ve hangi kütüphane yapısını kullanması gerektiğini merak ediyorsanız file komutunu kullanabilirsiniz.
file /usr/bin/ls
Bu komut size dosyanın "ELF 64-bit LSB shared object" olduğunu söyleyecek, bu da onun neden /lib64 veya /lib/x86_64-linux-gnu/ dizinindeki kütüphanelere ihtiyaç duyduğunu kanıtlayacaktır.
Sorun Giderme: "Library Not Found" Hatası Nasıl Çözülür?
Pardus'ta (veya herhangi bir Debian tabanlı sistemde) bir programı çalıştırmak istediğinizde şu hata ile karşılaşabilirsiniz:
error while loading shared libraries: libexample.so.1: cannot open shared object file: No such file or directory
Bu, programın çalışmak için /lib dizinlerinde aradığı kütüphaneyi bulamadığı anlamına gelir. İşte bu sorunu çözmek için izlemeniz gereken 3 adım:
1. Adım: Eksik Kütüphanenin Hangi Pakette Olduğunu Bulun
Kütüphane dosyasının adını biliyorsunuz ancak hangi paketi kurmanız gerektiğini bilmiyorsanız apt-file aracı hayat kurtarır.
# Önce aracı kurun ve veritabanını güncelleyin
sudo apt update
sudo apt install apt-file
sudo apt-file update
# Eksik kütüphaneyi aratın
apt-file search libexample.so.1
Bu komut size libexample1 gibi bir paket adı döndürecektir.
2. Adım: Paketi Kurun
Paket adını öğrendikten sonra standart kurulum işlemini yapın:
sudo apt install libexample1
3. Adım: Kütüphane Önbelleğini Güncelleyin
Kütüphaneyi el ile (manuel) bir dizine kopyaladıysanız veya kurulumdan sonra sistem hala görmüyorsa, Pardus'un kütüphane yollarını yeniden taramasını sağlayın:
sudo ldconfig
Özel Durum: 64-bit Sistemde 32-bit Kütüphane Hatası
Eğer 64-bit bir Pardus kullanıyorsanız ve eski bir uygulama (örneğin eski bir yazıcı sürücüsü veya oyun) çalıştırıyorsanız, /lib32 dizinindeki eksiklikler nedeniyle hata alabilirsiniz.
Bunu çözmek için sisteme 32-bit mimarisini tanıtmanız gerekir:
# 32-bit mimarisini ekle
sudo dpkg --add-architecture i386
sudo apt update
# 32-bit kütüphaneyi kur (Paket adının sonuna :i386 eklenir)
sudo apt install libexample1:i386
Not:
/libve türevi dizinler sistemin kararlılığı için kritiktir. Bu dizinlerin içindeki dosyaları manuel olarak silmek veya isimlerini değiştirmek, sistemin bir sonraki açılışta "Kernel Panic" hatası vermesine veya hiç açılmamasına neden olabilir. Her zaman paket yöneticisini (apt) kullanmaya özen gösterin.
Pardus’ta /usr/lib Dizini
Kullanıcı Alanı Kütüphaneleri ve Uygulama Altyapısı
1️⃣ /usr/lib Nedir?
/usr/lib, kullanıcı alanındaki (user-space) programların ihtiyaç duyduğu:
Paylaşımlı kütüphaneleri (
.so)Dil çalışma zamanlarını
Masaüstü ortamı bileşenlerini
Donanım soyutlama katmanlarını
barındırır.
📌 /lib = sistemin ayağa kalkması
📌 /usr/lib = sistemin iş yapması
2️⃣ /usr/lib İçeriği Nasıl Yapılanır?
Pardus (Debian tabanlı) sistemlerde multiarch yapısı kullanılır:
🔹 Neden x86_64-linux-gnu?
Aynı sistemde farklı mimariler desteklenebilir
Kütüphane çakışmaları önlenir
32-bit ve 64-bit ayrımı netleşir
3️⃣ /usr/lib ile /lib Arasındaki Temel Fark
| Özellik | /lib | /usr/lib |
|---|---|---|
| Sistem açılışı | Zorunlu | Gerekli değil |
| Bağımlılık | Çekirdek & init | Uygulamalar |
| Silinirse | Sistem çöker | Uygulama çalışmaz |
| Güvenlik | Çok kritik | Kritik |
📌 Initramfs sadece /lib içerir, /usr/lib içermez.
4️⃣ /usr/lib İçindeki Önemli Alt Bileşenler
🖥Masaüstü Ortamları
Cinnamon
GNOME
KDE
🔊 Ses & Multimedya
PipeWire
PulseAudio
GStreamer
🧠 Dil Çalışma Zamanları
Python
Java
Mono
Node.js
Pardus’ta /lib/modules
Kernel Modülleri, Donanım Desteği ve Sistem Kararlılığı
6️⃣ /lib/modules Nedir?
/lib/modules, çalışan Linux çekirdeğine ait tüm modülleri barındırır.
çıktısı neyse, karşılığı burada vardır:
7️⃣ Dizin Yapısı
🔹 Önemli Dosyalar
| Dosya | Görev |
|---|---|
modules.dep | Modül bağımlılıkları |
modules.alias | Donanım ↔ modül eşleşmesi |
modules.symbols | Kernel sembolleri |
8️⃣ Kernel Modülleri Nasıl Çalışır?
🔄 Otomatik Yükleme
Donanım algılanır
udevtetiklenirmodprobeçağrılırİlgili
.kodosyası yüklenir
Manuel Kontrol
9️⃣ ETAP 23 Akıllı Tahta Özel Notlar
| Bileşen | Modül |
|---|---|
| Dokunmatik | hid_multitouch |
| Wi-Fi | iwlwifi, rtl8xxxu |
| GPU | i915, amdgpu |
| Kamera | uvcvideo |
📌 /lib/modules bozulursa:
Dokunmatik çalışmaz
Wi-Fi kaybolur
Grafik arayüz açılmaz
🔐 /lib/modules Güvenlik Politikası
Ek olarak:
İleri seviye:
Secure Boot
Modül imza doğrulama
Kara liste (blacklist)
10️⃣ Özet Karşılaştırma
| Dizin | Katman | Rol |
|---|---|---|
/lib | Çekirdek altı | Açılış |
/usr/lib | Kullanıcı alanı | Uygulamalar |
/lib/modules | Kernel alanı | Donanım |
Genel Sonuç
/usr/lib, Pardus’un uygulama motorudur
/lib/modules, Pardus’un donanım sinir sistemidir
Yorumlar