Sample Header Ad - 728x90

Debian checkinstall ignores install=no; how to have it build, but NOT autoinstall a package?

15 votes
5 answers
10609 views
Ok, here is one thing that puzzles me... I'm trying to build a package from source, and then use checkinstall to generate a .deb package. Note that I want to just create the .deb package, but I do NOT want to _install_ it. So, here's an example - I'm on Ubuntu 11.04, and first I install it's feh package from the default repositories; which has a version number apparently being [1.3.4.dfsg.1-3](http://packages.ubuntu.com/lucid/feh) Then I'm trying to build feh [from source](http://feh.finalrewind.org/) ; got make to pass, and can run the new feh from the command line; splendid. Now finally, to create a deb package, I use the following command line: sudo checkinstall -D -y \ --install=no \ --fstrans=no \ --reset-uids=yes \ --pkgname=feh \ --pkgversion=2.7 \ --pkgrelease="tar.bz2" \ --arch=i386 \ --pkglicense=GPL \ --maintainer="Debian PhotoTools Maintainers " \ --pakdir=../.. \ --requires=libc6,libice6,libsm6,libx11-6,libxaw7,libxext6,libxmu6,libxt6,dpkg,install-info OK, notice that I've used **--install=no** there? Even man checkinstall says: > --install Toggle installation of the created package. Well, this is what this checkinstall command replies: checkinstall 1.6.2, Copyright 2009 Felipe Eduardo Sanchez Diaz Duran This software is released under the GNU GPL. /usr/bin/checkinstall: eval: line 598: syntax error near unexpected token `newline' /usr/bin/checkinstall: eval: line 598: `echo Debian PhotoTools Maintainers ' The package documentation directory ./doc-pak does not exist. Should I create a default set of package docs? [y]: y Preparing package documentation...OK ***************************************** **** Debian package creation selected *** ***************************************** This package will be built according to these values: 0 - Maintainer: [ root@mypc ] 1 - Summary: [ Package created with checkinstall 1.6.2 ] 2 - Name: [ feh ] 3 - Version: [ 2.7 ] 4 - Release: [ tar.bz2 ] 5 - License: [ GPL ] 6 - Group: [ checkinstall ] 7 - Architecture: [ i386 ] 8 - Source location: [ feh-2.7 ] 9 - Alternate source location: [ ] 10 - Requires: [ libc6,libice6,libsm6,libx11-6,libxaw7,libxext6,libxmu6,libxt6,dpkg,install-info ] 11 - Provides: [ feh ] 12 - Conflicts: [ ] 13 - Replaces: [ ] Enter a number to change any of them or press ENTER to continue: Installing with make install... ========================= Installation results =========================== installing manuals to /usr/local/share/man installing docs to /usr/local/share/doc/feh installing executables to /usr/local/bin installing fonts to /usr/local/share/feh/fonts installing images to /usr/local/share/feh/images installing examples to /usr/local/share/doc/feh/examples ======================== Installation successful ========================== NOOOOOOOOOOOOOOOOO!!!!!!!!!! I did NOT want the damn package to INSTALL -- THAT IS WHY I USED --install=no FOR CRYIN OUT LOUD!!! And then, apparently in an attempt to be sarcastic, the log continues: Copying documentation directory... ./ ./TODO ./AUTHORS ./COPYING ./ChangeLog ./README Copying files to the temporary directory...OK Stripping ELF binaries and libraries...OK Compressing man pages...OK Building file list...OK Building Debian package...OK NOTE: The package will not be installed You must be kidding with this "_NOTE: The package will not be installed_", right, Mr. checkinstall? Sure you are; after this is done, note what I get: $ apt-cache show feh | grep Version Version: 1.10-1 $ feh --version feh version 2.7 Compile-time switches: curl xinerama $ which feh /usr/local/bin/feh Not sure where that 1.10-1 came from (it should have been at least 1.3.4, as per above?) - but its damn obvious that the 2.7 DID get installed, IN SPITE of my instruction NOT to install... Surely, I can try to remove afterwards: $ sudo dpkg -r feh (Reading database ... 202193 files and directories currently installed.) Removing feh ... $ sudo dpkg --purge feh (Reading database ... 202163 files and directories currently installed.) Removing feh ... Purging configuration files for feh ... $ feh --version feh version 2.7 Compile-time switches: curl xinerama $ which feh /usr/local/bin/feh ... but not even dpkg --purge works (apt-get remove wouldn't work to begin with, since it's a manually installed .deb package). And besides dpkg -r not giving a version (so I'm not really sure what it is that should have been removed) - it in fact did NOT remove the bloody executable ?! But can anyone explain what is going here - and how to get checkinstall to _only_ generate a .deb, and NOT install it at the same time? Bonus question - how to remove ALL files, _including_ executables in /usr/local/bin/, that got installed in this way - since apparently dpkg -r doesn't work?
Asked by sdaau (7108 rep)
Nov 5, 2012, 09:18 AM
Last activity: Feb 13, 2017, 07:18 AM