在主目录中检查安装源代码

checkinstall source code inside home directory

我正在尝试从我的 openCV(不相关)源代码创建一个 deb 文件。源位置是 ~/software/opencv/

这是我成功执行的命令。

cd ~/software/opencv/
mkdir build
cd build
cmake ..
make

然后我使用 sudo checkinstall 代替 sudo make install 创建 deb。但是在这个过程中,出现了这个提示。

Some of the files created by the installation are inside the home directory: /home

You probably don't want them to be included in the package.
Do you want me to list them?  [n]:

当我列出文件时,它只是

/home
/home/user
/home/user/software
/home/user/software/opencv
/home/user/software/opencv/opencv-3.3.1
/home/user/software/opencv/opencv-3.3.1/build
/home/user/software/opencv/opencv-3.3.1/build/CMakeFiles
/home/user/software/opencv/opencv-3.3.1/build/install_manifest.txt

我需要知道的是这个

为什么

不同软件的构建脚本质量可能会有所不同。 OpenCV 碰巧有一些缺陷,比如在安装文件中包含 install_manifest.txtcheckinstall 根本无法打包某些软件。

制作 deb 包的规范方法是使用 "Debian Maintainer Guide",用于打包 Debian OS 中的所有包。但是它太复杂了,所以它主要被真正有动力的人使用。

什么目录

取决于软件。 binlib 中的内容通常是需要的。

如何避免

使用 checkinstall --default.

其他

不需要sudo make install

可以通过使用 fakeroot 来避免 sudo(这样您就不会触及 root 帐户)。此外,最好在生成包时避免安装(通过使用 --install=no --fstrans=yes)。所以尽可能使用这个:

fakeroot checkinstall --install=no --fstrans=yes