linux lib lib64 区别,lib,lib32,lib64,libx32和libexec之间的区别
嗯,如果您已經(jīng)處理了Unix一段時(shí)間,這是一個(gè)非常令人困惑的部分。大多數(shù)Unixes都遵循一種稱為FHS的標(biāo)準(zhǔn)-Filesystem Hierarchy Standard。
鑒于我主要使用基于Red Hat的發(fā)行版,所以我最熟悉它們在 Fedora,CentOS和RHEL Linux發(fā)行版上采用FHS的情況。但是我也使用了基于Debian和BSD的發(fā)行版,它們在文件保存位置和存儲(chǔ)位置方面并沒有什么不同。
現(xiàn)在就您的問題了。我將看一下FHS文檔,該文檔松散地管理著這些目錄結(jié)構(gòu)。一般來說:
目錄 - /lib
包含基本的共享庫和內(nèi)核模塊。
目的: / lib目錄包含啟動(dòng)系統(tǒng)并在根文件系統(tǒng)(即,根目錄)中運(yùn)行命令所需的那些共享庫映像。通過/ bin和/ sbin中的二進(jìn)制文件。
注意1: / usr中的二進(jìn)制文件(例如任何X Window二進(jìn)制文件)僅需要的共享庫不能在/ lib中。只有在/ bin和/ sbin中運(yùn)行二進(jìn)制文件所需的共享庫可能在這里。
注2:鑒于/ lib的主要目的是包含用于部署到目錄/ bin和/ sbin的工具的庫,因此/ lib中的庫可以是32位或64位。
例如(Fedora 14 64位系統(tǒng))
$ 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等。
目的:在支持不只一種二進(jìn)制格式且需要單獨(dú)庫的系統(tǒng)上,/ lib目錄可能存在一個(gè)或多個(gè)變體。這在支持多種二進(jìn)制格式但需要同名庫的系統(tǒng)上通常用于64位或32位支持。
注意:在這種情況下,/ lib32和/ lib64可能是庫目錄,而/ lib是其中一個(gè)的符號(hào)鏈接。
目錄 - /usr/lib
用于編程和打包的庫。
目的: / usr / lib包括目標(biāo)文件,庫和內(nèi)部二進(jìn)制文件,這些文件不打算由用戶或shell腳本直接執(zhí)行。
注意1:必須將其他與體系結(jié)構(gòu)無關(guān)的應(yīng)用程序特定的靜態(tài)文件和子目錄放置在/ usr / share中。
應(yīng)用程序可以使用/ usr / lib下的單個(gè)子目錄。如果應(yīng)用程序使用子目錄,則必須將應(yīng)用程序獨(dú)占使用的所有與體系結(jié)構(gòu)相關(guān)的數(shù)據(jù)放置在該子目錄中。
注意2:例如,Perl 5模塊和庫的perl5子目錄。
目錄 - /usr/lib
備用格式庫(可選)。
用途: /usr/lib對(duì)于備用二進(jìn)制格式,其作用與/ usr / lib相同,除了不需要符號(hào)鏈接/usr/lib/sendmail和/usr/lib/X11。
注意:在/ usr / lib和/usr/lib相同的情況下(一個(gè)是另一個(gè)的符號(hào)鏈接),這些文件和按應(yīng)用程序的子目錄將存在。
TLDR;
一般來說:
如果/ bin或/ sbin目錄中有可執(zhí)行文件所需的庫,則這些庫應(yīng)位于/ lib *目錄中。
如果有使用程序和程序包的庫,則它們位于/ usr / lib / *中。如果特定庫需要某些可執(zhí)行文件,但是這些可執(zhí)行文件不是由用戶直接調(diào)用或由root調(diào)用的,則它們位于/ usr / libexec中。
總結(jié)
以上是生活随笔為你收集整理的linux lib lib64 区别,lib,lib32,lib64,libx32和libexec之间的区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: GPD电脑安装linux,怕虚拟机影响性
- 下一篇: linux time dev null,