Linux 环境变量 LD_LIBRARY_PATH

在Linux环境中,动态链接库搜索路径由LD_LIBRARY_PATH环境变量控制。
运行程序时,系统首先在该变量指定的路径中查找所需的.so文件。
如果路径为空,则系统使用默认搜索路径进行搜索。
默认的动态链接库搜索路径通常包括系统库目录,如/lib、/usr/lib等。
这些默认路径是系统范围的,对所有用户可见。
同时,用户可以通过设置LD_LIBRARY_PATH来添加额外的搜索路径。
自定义路径的优先级高于默认路径。
这意味着如果在自定义路径中找到所需的.so文件,系统将首先使用该文件。
如果在解决特定问题时遇到动态链接库版本不匹配的情况,检查 LD_LIBRARY_PATH 是否为空可能是一个简单的解决方案。
例如,某个用户环境中LD_LIBRARY_PATH为空,但其他用户环境中LD_LIBRARY_PATH不为空。
此差异可能会导致某些 .so 文件的版本冲突。
将用户环境的LD_LIBRARY_PATH设置为空或者添加正确的路径可以保证系统首先在这些路径中找到需要的.so文件,从而解决问题。
另外,了解Linux和GCC的动态链接库的默认搜索路径可以帮助更好地理解LD_LIBRARY_PATH环境变量的作用。
可以使用 gcc-print-search-dirs 命令查看 GCC 在编译过程中使用的搜索路径。
这些路径也适合搜索动态链接库。
因此,当出现动态链接库版本不匹配问题或找不到所需的.so文件时,检查和调整LD_LIBRARY_PATH是一个有效的方法。
通过确保LD_LIBRARY_PATH中设置正确的路径,可以保证系统在运行程序时能够成功找到并使用正确的动态链接库。

Linux /etc目录下,经常配置的文件和目录

在Linux系统中,/etc目录是存储系统配置文件的主要位置。
系统管理员经常需要配置和维护这些文件以满足不同的系统要求。
下面是 /etc 目录中常用配置文件和目录的详细列表: 文件和目录列表: /etc/passwd: 描述:存储用户帐户信息,包括用户名、用户 ID(UID)、组 ID(GID)、用户主目录和默认 shell 等。
/etc/shadow: 描述:存储安全用户帐户信息,包括最大密码、加密日期、用户密码(加密截止时间后)、最大密码。
/etc/group: 说明:存储用户组帐户信息,包括组名、组ID(GID)、组成员列表。
/etc/sudoers: 说明:配置sudo程序的权限,指定哪些用户或用户组可以以其他身份执行命令。
/etc/hosts: 说明:用于主机名解析,将IP地址映射到主机名。
/etc/resolv.conf: 说明:配置DNS服务器进行域名解析。
/etc/sysconfig/network (某些发行版可能有所不同,例如 /etc/network/interfaces): 描述:配置网络参数,例如主机名、网关等。
/etc/sysconfig/network-scripts/ifcfg-eth*: 描述:配置网卡参数,例如 IP 地址、子网掩码、基于 RedHatlic 的系统等。
/etc/sysctl.conf: 描述:配置内核参数以调整系统性能和安全设置。
/etc/rsyslog.conf: 说明:配置系统日志服务,指定存储位置和日志格式。
/etc/systemd/system: 描述:存储systemd单元配置文件,用于管理服务启动和关闭。
/etc/selinux/config: 说明:配置SELinux(Security-EnhancedLinux)安全策略。
/etc/ssh/sshd_config: 描述:配置 SSH 服务,包括端口号、认证方式等。
/etc/httpd/conf/httpd.conf(或其他 Apache 配置文件路径): 描述:配置 HTTPD(Apache)服务,包括服务器设置、虚拟主机等。
/etc/yum.repos.d/:配置文件源,用于存储 Ys 配置。
/etc/security/limits.conf: 描述:配置用户资源限制,如CPU、内存、文件句柄等。
/etc/audit/auditd.conf: 描述:配置审计服务来记录系统事件。
/etc/pam.d/: 说明:存储 PAM (PluggableAuthenticationModules) 身份验证模块配置文件。
/etc/fstab: 说明:配置文件系统挂载信息,包括设备名称、挂载点、文件系统类型等。
/etc/inittab(某些现代系统可能会使用 systemd 代替): 说明:配置系统服务和运行级别,以确定系统启动时加载的默认服务和运行级别。
/etc/cron.d/: 说明:存放系统级定时任务配置文件。
/etc/cron.daily/、/etc/cron.weekly/、/etc/cron.monthly/: 说明:分别存储每日、每周、每月执行的计划任务脚本。
/etc/crontab: 说明:配置 crond 任务调度,包括用户、时间、命令等。
/etc/hosts.allow 和 /etc/hosts.deny: 说明:配置 TCPWrappers 访问控制和拒绝规则。
/etc/exports: 说明:配置NFS服务共享目录,指定远程系统可以挂载的目录。
/etc/sysconfig/iptables(或/etc/firewalld/等): 说明:配置iptables防火墙规则来管理网络流量和访问控制。
/etc/pki/tls/openssl.cnf: 说明:配置 OpenSSL 来管理 SSL/TLS 证书和密钥。
/etc/logrotate.conf: 说明:配置日志轮换策略来管理日志文件增长和归档。
/etc/ld.so.conf: 说明:配置动态链接库搜索路径,决定系统如何查找共享库文件。
/etc/locale.conf: 描述:配置系统语言环境,包括字符编码、语言等。
/etc/yum/pluginconf.d/: 描述:存放 YUM 插件配置文件,用于扩展 YUM 功能。
/etc/timezone: 说明:配置系统时区并确定系统时间的显示方式。
/etc/rc.d: 说明:设置启动时自动执行的启动脚本,包括/etc/rc.d/init.d(存放系统服务启动脚本)和/etc/rc.d/rc.local(本地启动脚本,所有服务启动后执行)。
这些文件和目录往往是Linux系统管理员在日常工作中配置和维护的。
它涵盖了用户管理、网络配置、系统安全和服务管理等多个方面。