【Linux】sudo make install 命令往系统中安装了什么 | 指定目录进行安装

前情提要

假如我们需要通过源码安装的方式,安装一个动态库。那么风格往往是这样的:

# 克隆仓库
git clone https://github.com/xxx.git

# 进入仓库目录
cd xxx

编译

# ... 可能有一些校验代码完整性的sh命令

# 构建
mkdir build
cd build
cmake ..

# 编译
make -j$(nproc)

安装

sudo make install

卸载

sudo make uninstall

现在有个关键问题:

想要预先知道 sudo make install 会往系统中安装什么。比如 sudo make install 接下来可能破坏系统中的一些库依赖关系,又或者其他一些安全考虑。当然,如果是一名开发者,也不一定会将动态库安装到/usr/local/lib这样的路径下,可能只是放在某个项目中,由 CMake 指定的规则进行构建。

一种办法是直接查看 makefile 文件,查找install 关键字。makefile 可能是生成的,大型项目的 makefile 往往很复杂。

我们可以先创建一个临时文件夹

mkdir ~/xxx_install
cd ~/xxx
make DESTDIR=~/xxx_install install

make install 之后,我们可能获得如下结构

lib 中可以查看即将安装的库。

上一篇
下一篇