/lib,usr/lib,/usr/local/lib区别

本文详细介绍了Linux系统中关键目录的作用及其存储的内容,如/bin、/sbin、/usr、/lib等,帮助读者理解Linux文件系统的组织结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简单说,/lib是内核级的,/usr/lib是系统级的,/usr/local/lib是用户级的. /lib/ — 包含许多被 /bin/ 和 /sbin/ 中的程序使用的库文件。目录 /usr/lib/ 中含有更多用于用户程序的库文件。/lib目录下放置的是/bin和/sbin目录下程序所需的库文件。/lib目录下的文件的名称遵循下面的格式: libc.so.* ld* 仅仅被/usr目录下的程序所使用的共享库不必放到/lib目录下。只有/bin和/sbin下的程序所需要的库有必要放到/lib目录下。实际上,libm.so.*类型的库文件如果被是/bin和/sbin所需要的,也可以放到/usr/lib下。 /bin/ — 用来贮存用户命令。目录 /usr/bin 也被用来贮存用户命令。 /sbin/ — 许多系统命令(例如 shutdown)的贮存位置。目录 /usr/sbin 中也包括了许多系统命令。 /root/ — 根用户(超级用户)的主目录。 /mnt/ — 该目录中通常包括系统引导后被挂载的文件系统的挂载点。譬如,默认的光盘挂载点是 /mnt/cdrom/. /boot/ — 包括内核和其它系统启动期间使用的文件。 /lost+found/ — 被 fsck 用来放置零散文件(没有名称的文件)。 /lib/ — 包含许多被 /bin/ 和 /sbin/ 中的程序使用的库文件。目录 /usr/lib/ 中含有更多用于用户程序的库文件。 /dev/ — 贮存设备文件。 /etc/ — 包含许多配置文件和目录。 /var/ — 用于贮存variable(或不断改变的)文件,例如日志文件和打印机假脱机文件。 /usr/ — 包括与系统用户直接有关的文件和目录,例如应用程序及支持它们的库文件。 /proc/ — 一个虚拟的文件系统(不是实际贮存在磁盘上的),它包括被某些程序使用的系统信息。 /initrd/ — 用来在计算机启动时挂载 initrd.img 映像文件的目录以及载入所需设备模块的目录。 警告 不要删除 /initrd/ 目录。如果你删除了该目录后再重新引导 Red Hat Linux 时,你将无法引导你的计算机。 /tmp/ — 用户和程序的临时目录。 /tmp 给予所有系统用户读写权。 /home/ — 用户主目录的默认位置。 /opt/ — 可选文件和程序的贮存目录。该目录主要被第三方开发者用来简易地安装和卸装他们的软件包。

### 如何正确使用和管理 Linux 系统中的 `/usr/local/lib` 路径 #### 添加库文件至动态链接器配置 为了使位于 `/usr/local/lib` 的共享库能够被系统识别并用于程序运行时的动态链接,可以编辑全局的 `ld.so.conf.d` 文件夹下的配置文件。创建一个新的配置文件来指定额外的库路径是一种常见做法。 ```bash echo "/usr/local/lib" | sudo tee /etc/ld.so.conf.d/usr_local_lib.conf sudo ldconfig ``` 上述命令会将 `/usr/local/lib` 加入到系统的动态链接库查找路径中,并刷新缓存以便立即生效[^1]。 #### 使用环境变量临时添加库路径 对于不需要永久修改的情况,可以通过设置 `LD_LIBRARY_PATH` 来临时增加特定目录作为附加的库搜索位置。这通常适用于测试阶段或是当不想影响其他应用程序的行为时采用的方法。 ```bash export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH ``` 此方式仅对当前shell session有效,在新打开终端窗口后需重新设定该变量[^2]。 #### 解决符号链接错误提示 如果遇到关于某个 `.so` 库不是符号链接的问题,则可能是由于安装过程中出现了异常情况所引起的。此时应该检查目标文件是否存在以及其属性是否正常;必要情况下可尝试重建正确的符号链接指向实际版本号的具体实现文件。 例如修复 CUDA 下 CUDNN 库的相关问题: ```bash ln -sf /usr/local/cuda-11.4/targets/x86_64-linux/lib/libcudnn.so.8 \ /usr/local/lib/libcudnn.so.8 ``` 这条指令建立了从具体版本到通用名称之间的软链关系,从而解决了找不到合适库文件的问题[^3]。 #### 验证更改效果 完成以上任一步骤之后,可通过以下命令验证新的库路径已被成功加入到了动态链接器的搜索范围内: ```bash ldd --version # 查看 ldd 版本信息 ldd some_executable_or_shared_object_file # 显示给定对象依赖的所有共享库及其解析后的绝对路径 ``` 通过这种方式确认 `/usr/local/lib` 中的新库已经被正确加载。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值