Ok, voici une chose qui me laisse perplexe ... J'essaie de construire un package à partir des sources, puis de l'utiliser checkinstall
pour générer un package .deb. Notez que je veux simplement créer le package .deb, mais je ne veux PAS l' installer .
Donc, voici un exemple - je suis sur Ubuntu 11.04, et d'abord j'installe son feh
package à partir des référentiels par défaut; qui a un numéro de version apparemment 1.3.4.dfsg.1-3
Ensuite, j'essaie de construire à feh
partir de la source ; obtenu make
à passer, et peut exécuter la nouvelle feh
de la ligne de commande; splendide.
Enfin, pour créer un paquet deb, j'utilise la ligne de commande suivante:
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 <pkg-phototools-devel@lists.alioth.debian.org>" \
--pakdir=../.. \
--requires=libc6,libice6,libsm6,libx11-6,libxaw7,libxext6,libxmu6,libxt6,dpkg,install-info
OK, remarquez que j'y ai utilisé --install=no
? Dit même man checkinstall
:
--install Bascule l'installation du package créé.
Eh bien, voici ce que cette checkinstall
commande répond:
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 <pkg-phototools-devel@lists.alioth.debian.org>'
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 !!!!!!!!!!
Je ne voulais PAS que ce fichu paquet s'installe - C'EST POURQUOI J'AI --install=no
UTILISÉ POUR CRYIN OUT LOUD !!!
Et puis, apparemment dans une tentative d'être sarcastique, le journal continue:
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
Vous devez plaisanter avec cette " REMARQUE: le paquet ne sera pas installé ", n'est-ce pas, monsieur checkinstall
? Évidemment que tu l'es; après cela, notez ce que j'obtiens:
$ 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
Vous ne savez pas d'où cela 1.10-1
vient (cela aurait dû être au moins 1.3.4
, comme ci-dessus?) - mais c'est sacrément évident que le 2.7 DID est installé, EN dépit de mes instructions de ne pas installer ...
Je peux sûrement essayer de supprimer par la suite:
$ 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
... mais ne dpkg --purge
fonctionne même pas ( apt-get remove
ne fonctionnerait pas pour commencer, car il s'agit d'un package .deb installé manuellement). Et en plus de dpkg -r
ne pas donner de version (donc je ne suis pas vraiment sûr de ce qui aurait dû être supprimé) - en fait, il n'a PAS supprimé l'exécutable sanglant?!
Mais quelqu'un peut-il expliquer ce qui se passe ici - et comment arriver checkinstall
à générer uniquement un .deb, et PAS l'installer en même temps? Question bonus - comment supprimer TOUS les fichiers, y compris les exécutables /usr/local/bin/
, qui ont été installés de cette façon - car apparemment, dpkg -r
cela ne fonctionne pas?
eval echo $1
... Elle devrait en fait l'être eval "echo '$1'"
. Je suppose que je vais essayer de prendre contact avec l'auteur ou quelque chose.