I am trying to create a deb
file from my openCV (not relevant) source code. location for the source is ~/software/opencv/
Here are the commands I executed successfully.
cd ~/software/opencv/
mkdir build
cd build
cmake ..
make
Then instead of sudo make install
, I am using sudo checkinstall
to create the deb
. But in the middle of the process, this prompt comes up.
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]:
when I list the files, it's just
/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
What I need to know is this.
- What is the reason for this prompt?
- What directories should I include & exclude when using
checkinstall
? - How can I run
checkinstall
without facing this prompt?
Why
The quality of the build scripts of different software may vary. OpenCV happens to have some imperfections like including
install_manifest.txt
into the install files. Some software isn't packageable bycheckinstall
at all.The canonical way of making deb packages is to use the "Debian Maintainer Guide" that is used for packaging all the packages in the Debian OS. But it's too complex, so it's used mostly by the really motivated people.
What directories
Depends on the software. The stuff in
bin
andlib
is usually needed.How to avoid
Use the
checkinstall --default
.Other things
The
sudo make install
isn't necessary.It's possible to avoid
sudo
by usingfakeroot
instead (so you don't touch the root accound). Also, it's a good thing to avoid installation (by using--install=no --fstrans=yes
) while generating the package. So use this if possible: