在 Kubuntu 17.10 中,我安装了 SafeQ 客户端用于打印管理。我需要安装两个 deb 软件包,libcrafter_0.0.2_all.deb
然后ysoft-client_4.0-87_all.deb
从这里。
但是,现在在 Kubuntu 18.04 中我无法安装这两个软件包。因为libcrafter_0.0.2_all.deb
如果我这样做
sudo dpkg -i libcrafter_0.0.2_all.deb
我明白了
dpkg: error processing archive libcrafter_0.0.2_all.deb (--install):
parsing file '/var/lib/dpkg/tmp.ci/control' near line 3 package 'libcrafter':
error in 'Version' field string '0.0.2-': revision number is empty
Errors were encountered while processing:
libcrafter_0.0.2_all.deb
我怎样才能安装这个,无论如何?我也尝试过
sudo dpkg --force-all -i libcrafter_0.0.2_all.deb
“修订号为空”不应成为不安装的理由。这个包是由一些学生的学士论文我认为它不会更新。
答案1
不幸的是,该libcrafter
软件包没有正确构建:其版本为“0.0.2-”,这在 Debian 中不是可接受的版本号(如Debian 政策的相关部分)。旧版本dpkg
接受这样的版本号,但这在 1.18.19 版本中得到了修复(我很惊讶你能够在 17.10 中安装这些软件包,因为它有dpkg
1.18.24)。
不过这是可以修复的:
- 下载现有的包。
提取它:
dpkg-deb -R libcrafter_0.0.2_all.deb libcrafter-0.0.2
修复该包的版本号和其他一些问题:
sed -i 's/0.0.2-$/0.0.2-1/;s/all$/amd64/;s/java$/libs/' libcrafter-0.0.2/DEBIAN/control
重建包:
dpkg-deb -b libcrafter-0.0.2 .
安装生成的包:
sudo dpkg -i libcrafter_0.0.2-1_amd64.deb
清理:
rm -rf libcrafter_0.0.2_all.deb libcrafter-0.0.2
(留下新包以供以后重复使用)。