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.
checkinstall
?checkinstall
without facing this prompt?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 by checkinstall
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.
Depends on the software. The stuff in bin
and lib
is usually needed.
Use the checkinstall --default
.
The sudo make install
isn't necessary.
It's possible to avoid sudo
by using fakeroot
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:
fakeroot checkinstall --install=no --fstrans=yes