Ok, ecco una cosa che mi confonde ... Sto provando a creare un pacchetto dal sorgente, e poi lo uso checkinstall
per generare un pacchetto .deb. Nota che voglio solo creare il pacchetto .deb, ma NON voglio installarlo .
Quindi, ecco un esempio: sono su Ubuntu 11.04 e prima installo il suo feh
pacchetto dai repository predefiniti; che ha un numero di versione apparentemente 1.3.4.dfsg.1-3
Quindi sto provando a costruire feh
dalla fonte ; ottenuto make
a passare, e in grado di eseguire il nuovo feh
dalla riga di comando; splendida.
Ora finalmente, per creare un pacchetto deb, utilizzo la seguente riga di comando:
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, noti che l'ho usato --install=no
lì? Anche man checkinstall
dice:
--install Attiva o disattiva l'installazione del pacchetto creato.
Bene, questo è ciò che questo checkinstall
comando risponde:
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 !!!!!!!!!!
NON volevo che il maledetto pacchetto fosse INSTALLATO - QUELLO È IL PERCHE 'CHE HO UTILIZZATO --install=no
PER CRYIN OUT LOUD !!!
E poi, apparentemente nel tentativo di essere sarcastico, il registro continua:
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
Stai scherzando con questo " NOTA: il pacchetto non verrà installato ", giusto, signor checkinstall
? Sicuro che lo sei; dopo questo, nota cosa ottengo:
$ 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
Non sono sicuro da dove 1.10-1
provenga (avrebbe dovuto essere almeno 1.3.4
, come sopra?) - ma è dannatamente ovvio che il DID 2.7 viene installato, nonostante le mie istruzioni NON installare ...
Sicuramente, posso provare a rimuovere in seguito:
$ 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
... ma nemmeno dpkg --purge
funziona ( apt-get remove
non funzionerebbe per cominciare, dato che è un pacchetto .deb installato manualmente). E oltre a dpkg -r
non dare una versione (quindi non sono davvero sicuro di cosa avrebbe dovuto essere rimosso) - in realtà NON ha rimosso il maledetto eseguibile ?!
Ma qualcuno può spiegare cosa sta succedendo qui - e come arrivare checkinstall
a generare solo un .deb e NON installarlo allo stesso tempo? Domanda bonus - come rimuovere TUTTI i file, inclusi gli eseguibili /usr/local/bin/
, che sono stati installati in questo modo - dal momento che apparentemente dpkg -r
non funziona?
eval echo $1
... In realtà dovrebbe essere eval "echo '$1'"
. Immagino che proverò a mettermi in contatto con l'autore o qualcosa del genere.