linux lib lib64 区别,lib,lib32,lib64,libx32和libexec之间的区别
嗯,如果您已經處理了Unix一段時間,這是一個非常令人困惑的部分。大多數Unixes都遵循一種稱為FHS的標準-Filesystem Hierarchy Standard。
鑒于我主要使用基于Red Hat的發行版,所以我最熟悉它們在 Fedora,CentOS和RHEL Linux發行版上采用FHS的情況。但是我也使用了基于Debian和BSD的發行版,它們在文件保存位置和存儲位置方面并沒有什么不同。
現在就您的問題了。我將看一下FHS文檔,該文檔松散地管理著這些目錄結構。一般來說:
目錄 - /lib
包含基本的共享庫和內核模塊。
目的: / lib目錄包含啟動系統并在根文件系統(即,根目錄)中運行命令所需的那些共享庫映像。通過/ bin和/ sbin中的二進制文件。
注意1: / usr中的二進制文件(例如任何X Window二進制文件)僅需要的共享庫不能在/ lib中。只有在/ bin和/ sbin中運行二進制文件所需的共享庫可能在這里。
注2:鑒于/ lib的主要目的是包含用于部署到目錄/ bin和/ sbin的工具的庫,因此/ lib中的庫可以是32位或64位。
例如(Fedora 14 64位系統)
$ uname -a
Linux grinchy 2.6.35.14-106.fc14.x86_64 #1 SMP Wed Nov 23 13:07:52 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux
這是我的/ lib文件的樣本
./libpam.so.0.82.2: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped
./libplc4.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped
./libidn.so.11.6.1: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped
./upstart/telinit: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, stripped
./upstart/runlevel: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, stripped
./upstart/shutdown: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, stripped
./upstart/reboot: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, stripped
./libdb-4.8.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped
./firmware/mixart/miXart8.elf: ELF 32-bit MSB executable, PowerPC or cisco 4500, version 1 (SYSV), statically linked, not stripped
./libtinfo.so.5.7: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped
目錄 - /lib
備用格式基本共享庫(可選)。這些將是目錄/ lib32,/ lib64等。
目的:在支持不只一種二進制格式且需要單獨庫的系統上,/ lib目錄可能存在一個或多個變體。這在支持多種二進制格式但需要同名庫的系統上通常用于64位或32位支持。
注意:在這種情況下,/ lib32和/ lib64可能是庫目錄,而/ lib是其中一個的符號鏈接。
目錄 - /usr/lib
用于編程和打包的庫。
目的: / usr / lib包括目標文件,庫和內部二進制文件,這些文件不打算由用戶或shell腳本直接執行。
注意1:必須將其他與體系結構無關的應用程序特定的靜態文件和子目錄放置在/ usr / share中。
應用程序可以使用/ usr / lib下的單個子目錄。如果應用程序使用子目錄,則必須將應用程序獨占使用的所有與體系結構相關的數據放置在該子目錄中。
注意2:例如,Perl 5模塊和庫的perl5子目錄。
目錄 - /usr/lib
備用格式庫(可選)。
用途: /usr/lib對于備用二進制格式,其作用與/ usr / lib相同,除了不需要符號鏈接/usr/lib/sendmail和/usr/lib/X11。
注意:在/ usr / lib和/usr/lib相同的情況下(一個是另一個的符號鏈接),這些文件和按應用程序的子目錄將存在。
TLDR;
一般來說:
如果/ bin或/ sbin目錄中有可執行文件所需的庫,則這些庫應位于/ lib *目錄中。
如果有使用程序和程序包的庫,則它們位于/ usr / lib / *中。如果特定庫需要某些可執行文件,但是這些可執行文件不是由用戶直接調用或由root調用的,則它們位于/ usr / libexec中。
總結
以上是生活随笔為你收集整理的linux lib lib64 区别,lib,lib32,lib64,libx32和libexec之间的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: GPD电脑安装linux,怕虚拟机影响性
- 下一篇: 按键精灵怎么用键盘控制鼠标移动