linux的依赖包有何用

等待国庆节快乐是一件好事;但是在Linux系统上,上次在宿舍修电脑,安装了编译器,结果是找不到libpng1 2 .so。
此时已是晚上1 1 点左右。
宿舍走廊里灯光闪烁。
我打开虚拟机,敲了半天命令行。
最后发现又得去软件仓库找包了。
那么libpng是一个图像处理库。
它用于小型设备中查看图像。
结果,如果没有视觉工具,那就很愚蠢。
我认为这是依赖性问题。
当某些东西丢失时,这会产生级联效应。
等待接下来,我当天就发现了 libxml2 该库与网页解析相关,简单的文本编辑器离不开它。
因此,在安装Linux系统时;您应该只关注桌面环境。
以下图书馆不容错过。

linux的.ko与.so文件

Linux 中的 .ko 文件和 .so 文件确实有很大不同。
想一想,.ko 是做什么的?这是针对内核的,称为内核模块。
例如,有一个网络驱动程序,可以在不使用时删除并在使用时重新插入。
这使得核心不那么臃肿。

具体使用时,比如有一个名为test.ko的文件,可以insmod test.ko到该文件中,直接安装。
或者更常见的方法是将 .ko 文件放在 /lib/modules/ 目录中,例如版本 5 .4 .0-4 2 -generic。
然后运行 ​​depmod 5 .4 .0-4 2 -generic 然后运行 ​​modprobe 即可安装。
安装后,使用lsmod检查是否存在。
要删除,请使用 rmmod 测试。
请记住,模块名称与 .ko 不同。

.so 文件怎么样?这是一个称为共享库的用户空间。
多个程序可以使用相同的.so,从而节省磁盘和内存。
例如,如果使用GCC编译程序,则关联的库是.so文件。

安装.so文件更容易。
编译程序时,使用-L和-l选项指定.so文件的位置。
例如,如果有libmylib.so,则编译main.c时,写gcc -L./lib -lmylib main.c。
启动程序后,系统自动查找.so。
或者您可以使用 dlopen 等函数在程序运行时加载 .so,并在使用后将其丢弃。

说实话,我当时并不明白为什么要做这两件事。
但它确实很有用。
内核模块可以随时更改,.so 文件也可以随时更新。
Linux的设计相当有趣。

Linux上的ldd命令:如何轻松查找和管理软件包依赖关系

ldd 命令是在 Linux 中查找软件包依赖关系的工具。
一看就知道!
1 .这是什么意思? ldd 列出动态依赖项并显示程序使用的库文件。
2 、如何使用? ldd 文件的简单名称,例如 ldd /usr/bin/python3 3 .检查路况?使用which,ldd$(哪个程序名)。
4 . 检查版本?添加-v、ldd -v 文件名。
5 .检查未使用的库?添加-u、ldd -u 文件名。
6 . 缺少库怎么办?添加-d或-r,ldd -d/r文件名。
7 . 实际例子?例如,如果运行 ldd /usr/bin/python3 ,您将看到它使用的库和路径。
8 .安全检查?使用ldd检查非官方库,防止被劫持。
9 . 静态连接? ldd 会提示,使用该文件确认连接类型。
1 0、注意权限?分析系统进程可能需要sudo。
1 1 .容器环境?不要用 ldd 污染主机环境。

ldd,简单易用,开发者和系统管理员必备!你自己看看,还有其他问题吗?