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



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

以下是我成功执行的命令。

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

然后我不是sudo make install,而是使用sudo checkinstall来创建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

我需要知道的是这个。

  • 出现此提示的原因是什么?
  • 使用checkinstall时应该包含和排除哪些目录?
  • 如何在不遇到此提示的情况下运行checkinstall

为什么

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

制作 deb 软件包的规范方法是使用"Debian 维护者指南",该指南用于打包 Debian 操作系统中的所有软件包。但它太复杂了,所以它主要由真正有动力的人使用。

什么目录

取决于软件。通常需要binlib中的东西。

如何避免

使用checkinstall --default .

其他事项

sudo make install不是必需的。

可以通过

改用fakeroot来避免sudo(这样您就不会触摸根部)。此外,在生成包时避免安装(通过使用 --install=no --fstrans=yes )也是一件好事。因此,如果可能的话,请使用这个:

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

最新更新