Ok, aquí hay una cosa que me desconcierta ... Estoy tratando de construir un paquete desde la fuente, y luego lo uso checkinstall
para generar un paquete .deb. Tenga en cuenta que solo quiero crear el paquete .deb, pero NO quiero instalarlo .
Entonces, aquí hay un ejemplo: estoy en Ubuntu 11.04, y primero instalo su feh
paquete desde los repositorios predeterminados; que aparentemente tiene un número de versión 1.3.4.dfsg.1-3
Entonces estoy tratando de construir feh
desde la fuente ; tiene make
que pasar, y puede ejecutar el nuevo feh
desde la línea de comandos; espléndido.
Ahora, finalmente, para crear un paquete deb, uso la siguiente línea de 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, ¿te das cuenta de que he usado --install=no
allí? Incluso man checkinstall
dice:
--instalar Alternar la instalación del paquete creado.
Bueno, esto es lo que checkinstall
responde este comando:
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 !!!!!!!!!!
¡NO quería que el maldito paquete se INSTALA, ES POR ESO QUE --install=no
LO UTILIZÉ PARA CRYIN OUT LOUD!
Y luego, aparentemente en un intento de ser sarcástico, el registro continúa:
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
Debe estar bromeando con esta " NOTA: El paquete no se instalará ", ¿verdad, Sr. checkinstall
? Seguro que eres; Una vez hecho esto, tenga en cuenta lo que obtengo:
$ 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
No estoy seguro de dónde 1.10-1
vino (¿debería haber sido al menos 1.3.4
, como se indicó anteriormente?), Pero es obvio que se instaló el 2.7, A pesar de mis instrucciones de NO instalar ...
Seguramente, puedo intentar eliminar después:
$ 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
... pero ni siquiera dpkg --purge
funciona ( apt-get remove
para empezar no funcionaría, ya que es un paquete .deb instalado manualmente). Y además de dpkg -r
no dar una versión (así que no estoy realmente seguro de qué es lo que debería haberse eliminado), ¿de hecho NO eliminó el ejecutable sangriento?
Pero ¿alguien puede explicar lo que está pasando aquí - y cómo llegar checkinstall
a la única generar un .deb, y lo instale al mismo tiempo? Pregunta adicional: ¿cómo eliminar TODOS los archivos, incluidos los ejecutables /usr/local/bin/
, que se instalaron de esta manera, ya que aparentemente dpkg -r
no funciona?
eval echo $1
... En realidad debería estarlo eval "echo '$1'"
. Creo que intentaré ponerme en contacto con el autor o algo así.