嗯,如果您已经处理了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之间的区别相关推荐

  1. 详解linux杀死进程方法:kill、pkill、killall之间的区别及用法!

    详解linux杀死进程方法:kill.pkill.killall之间的区别及用法! kill 命令 killall 命令 pkill 命令 kill.pkill.killall之间的区别 kill 命 ...

  2. linux系统i386和X86区别,linux – i386:x64-32 vs i386 vs i386:x86_64之间的区别

    有人可以解释这三种架构之间的区别吗? 实际上当我在 Linux中构建一个64位应用程序时,我收到一个链接错误说: skipping incompatible library.a when search ...

  3. linux中ps ef和aux,Linux中ps aux、ps -aux、ps -ef之间的区别讲解

    Linux中的ps命令是Process Status的缩写.ps命令用来列出系统中当前运行的那些进程.ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信 ...

  4. 系统软件和应用软件的区别_系统软件和应用程序软件之间的区别

    系统软件和应用软件的区别 In this tutorial you will learn about difference between system software and applicatio ...

  5. 2121端口和21端口区别_耳机端口和扬声器端口之间有区别吗?

    2121端口和21端口区别 Your computer has a speaker port (perhaps even multiple ones) and a headphone port. Yo ...

  6. Linux软件安装包中devel与非devel包之间的区别

    带devel(develop)的包,俗称开发包.功能上与普通包相同,但体积更大 使用rpm -qi看看这两类包的区别: # rpm -qi glibc-devel-2.12-1.149.el6.x86 ...

  7. linux 安装libcurl4-gnutls-dev,curl / curl.h,libcurl,libcurl4-openssl-dev,libcurl4-nss-dev库之间的区别?...

    我有以下curl标题,我仍然可以安装上面提到的libcurl4包 – kafka@Metamorphosis:~$ll /usr/include/curl/ total 200 drwxr-xr-x ...

  8. Linux中环境变量文件profile、bashrc、bash_profile之间的区别和联系

    /etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集shell的设置. 英文描述为: # /etc/pr ...

  9. java c++的区别_Java语言与C、C++之间的区别?

    小伙伴你知道吗?Java是由C++开发而来的,并且在当时一直被搁置.随着Java语言的崛起那么Java和C/C++有什么不同和相同之处呢? 通过上述我们知道那Java前身是C++,并且保留了C++的大 ...

最新文章

  1. 修改SQL SERVER内置存储过程
  2. java文件的相对路径_java中使用相对路径读取文件的写法总结 ,以及getResourceAsStream() (转)...
  3. Android提高十六篇之使用NDK把彩图转换灰度图
  4. 新建parcel写入数据后,读取数据为null
  5. phalcon: 资源文件管 理 引入css,js
  6. 顺丰gis产品经理_线上面试季丰图科技—顺丰旗下专注GIS领域
  7. JavaScript 判断浏览器类型
  8. 点赞!一个程序员花了14小时寻找问题疫苗的流向
  9. RocketMq单机和集群搭建教程
  10. Java编程:爬楼梯问题、斐波那契数列问题
  11. ODbgscript 1.82.x Document
  12. dcdc模块降额设计_人工智能产品设计—LDO使用的技术总结篇
  13. 《你可能不知道免像控的两个细节问题》
  14. poj 2454 随机化(划片使得选举胜利)
  15. git push 报错 error: failed to push some refs to ‘git@xxx/xx.git‘
  16. 认证抖音蓝V认证有什么好处?开通抖音企业号蓝V认证有什么权益优势?
  17. 机器学习之机器学习绪论-王而川-专题视频课程
  18. eslint代码自动修复
  19. PHP explode 和 implode 用法
  20. 微信小程序接入关联微信公众号official-account方案总结

热门文章

  1. Caffe学习(十)protobuf及caffe.proto解析
  2. 使用Faster-Rcnn进行目标检测(实践篇)
  3. g20曲线拟合源码解读
  4. GoogleAppEngine是什么?
  5. 【ARM】一步一步移植Linux Kernel 2.6.13到板子
  6. node进程管理——pm2
  7. LDAP-GUI管理工具
  8. 最新28个很棒的 jQuery 教程
  9. 狄克斯特拉算法(入门)
  10. jQuery 遍历 - slice() 方法