Jef*_*ger 13 bash debian checkinstall
我有一个我已经使用checkinstall
了一段时间的包,我想自动化它(通过命令行传递值而不是键入选择,粘贴值等等)
我不确定这是否是一个checkinstall错误,但是如何通过命令行--requires
选项包含多个包.如果我包括最小版本的包(例如--requires="libvte9 (>= 0.28.2)"
)或多个包(例如--requires "libvte9, libc6"
),它似乎是barf
有没有人用多个包的命令行参数获得更好的成功?我做错了什么,或者这是一个错误.
注意:如果我运行脚本,并选择requires选项(10),并使用多个软件包和最低版本粘贴我的整行(例如libvte9 (>= 0.28.2), libc6 (>= 2.13)
,它工作正常,它似乎在命令行上它有问题.这也是使用该-D
选项构建debian包.
Édo*_*pez 21
阅读了Aleks-Daniel Jakimenko-A.的回答,Reallumpi 的回答,并对现实案例进行了一些测试,这是你应该做的:
,
(逗号)没有空格来分隔所需的包;(
)
指定包的版本时转义和括号 ;>
指定包的版本时转义(更大的符号) ;make && sudo -k checkinstall \
--pkgsource="https://github.com/raboof/nethogs/" \
--pkglicense="GPL2" \
--deldesc=no \
--nodoc \
--maintainer="$USER\\<$USER@$HOSTNAME\\>" \
--pkgarch=$(dpkg \
--print-architecture) \
--pkgversion="0.8.1" \
--pkgrelease="SNAPSHOT" \
--pkgname=nethogs \
--requires="libc6 \(\>= 2.4\),libgcc1 \(\>= 1:4.1.1\),libncurses5 \(\>= 5.5-5~\),libpcap0.8 \(\>= 0.9.8\),libstdc++6 \(\>= 4.1.1\),libtinfo5" \
make install
Run Code Online (Sandbox Code Playgroud)
*****************************************
**** Debian package creation selected ***
*****************************************
This package will be built according to these values:
0 - Maintainer: [ elopez<elopez@> ]
1 - Summary: [ Net top tool grouping bandwidth per process ]
2 - Name: [ nethogs ]
3 - Version: [ 0.8.1 ]
4 - Release: [ SNAPSHOT ]
5 - License: [ GPL2 ]
6 - Group: [ checkinstall ]
7 - Architecture: [ amd64 ]
8 - Source location: [ https://github.com/raboof/nethogs/ ]
9 - Alternate source location: [ ]
10 - Requires: [ libc6 (>= 2.4),libgcc1 (>= 1:4.1.1),libncurses5 (>= 5.5-5~),libpcap0.8 (>= 0.9.8),libstdc++6 (>= 4.1.1),libtinfo5 ]
11 - Provides: [ nethogs ]
12 - Conflicts: [ ]
13 - Replaces: [ ]
Run Code Online (Sandbox Code Playgroud)