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
checkinstallwithout 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.txtinto the install files. Some software isn't packageable bycheckinstallat 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
binandlibis usually needed.How to avoid
Use the
checkinstall --default.Other things
The
sudo make installisn't necessary.It's possible to avoid
sudoby usingfakerootinstead (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: