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
Then I'm trying to build feh
from source; 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 <[email protected]>" \
--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 <[email protected]>'
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?
eval echo $1
... It should actually beeval "echo '$1'"
. I guess I'll try to get in touch with the author or something.