好的,这是让我感到困惑的一件事...我试图从源代码构建一个程序包,然后使用它checkinstall
来生成.deb程序包。请注意,我只想创建.deb软件包,但不想安装它。
因此,这是一个示例-我在Ubuntu 11.04上,首先我feh
从默认存储库安装了该软件包;它的版本号显然是1.3.4.dfsg.1-3
然后我试图feh
从源头建立; 必须make
通过,并且可以从命令行运行新代码feh
;灿烂。
现在最后,要创建一个deb包,我使用以下命令行:
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
好吧,注意我曾经在--install=no
那儿使用过吗?甚至man checkinstall
说:
--install切换安装已创建的软件包。
嗯,这是该checkinstall
命令的答复:
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 !!!!!!!!!!
我不希望该死的软件包安装-这就是为什么我要--install=no
大声哭泣!!!
然后,显然是为了讽刺,日志继续:
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
您一定是在跟这个“ 注意:该软件包将不会安装 ”,对吧checkinstall
?当然可以;完成此操作后,请注意我得到的:
$ 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
不知道它是1.10-1
从哪里来的(至少应该1.3.4
按照上面所述?)-但是该死的很明显是安装了2.7 DID,尽管我的指令没有安装...
当然,我可以尝试在之后删除:
$ 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
...但什至不起作用dpkg --purge
(apt-get remove
由于它是手动安装的.deb软件包,因此一开始就不起作用)。而且除了dpkg -r
不提供版本之外(所以我不确定是否应该删除该版本)-实际上,它没有删除该死的可执行文件吗?
但是,任何人都可以解释是怎么回事这里-以及如何checkinstall
以只产生一个.deb文件,并在同一时间去安装它?额外的问题-如何删除以这种方式安装的所有文件,包括中的可执行文件/usr/local/bin/
-显然dpkg -r
不起作用?
eval echo $1
...实际上应该是eval "echo '$1'"
。我想我会尽量与作者联系。