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中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值