cmakecheckinstall

checkinstall source code inside home directory


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.


Solution

  • 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 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.

    What directories

    Depends on the software. The stuff in bin and lib 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 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