我正在尝试从我的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 操作系统中的所有软件包。但它太复杂了,所以它主要由真正有动力的人使用。
什么目录
取决于软件。通常需要bin
和lib
中的东西。
如何避免
使用checkinstall --default
.
其他事项
sudo make install
不是必需的。
改用fakeroot
来避免sudo
(这样您就不会触摸根部)。此外,在生成包时避免安装(通过使用 --install=no --fstrans=yes
)也是一件好事。因此,如果可能的话,请使用这个:
fakeroot checkinstall --install=no --fstrans=yes