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

nip*_*dha 5 cmake checkinstall

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

这是我成功执行的命令。

cd ~/software/opencv/
mkdir build
cd build
cmake ..
make
Run Code Online (Sandbox Code Playgroud)

然后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]:
Run Code Online (Sandbox Code Playgroud)

当我列出文件时,它只是

/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
Run Code Online (Sandbox Code Playgroud)

我需要知道的是这个。

  • 出现这个提示的原因是什么?
  • 使用时我应该包含和排除哪些目录checkinstall
  • 怎样才能运行checkinstall而不出现这个提示呢?

Vel*_*kan 6

为什么

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

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

什么目录

取决于软件。bin和中的东西lib通常是需要的。

如何避免

使用checkinstall --default

其他事情

sudo make install没有必要的。

可以sudo通过使用fakeroot替代来避免(这样你就不会触及根帐户)。--install=no --fstrans=yes另外,在生成包时避免安装(通过使用)也是一件好事。所以如果可能的话使用这个:

fakeroot checkinstall --install=no --fstrans=yes
Run Code Online (Sandbox Code Playgroud)