Dpkg

無法安裝帶有“修訂號為空”消息的軟體包

  • May 2, 2018

在 Kubuntu 17.10 中,我安裝了 SafeQ 客戶端用於列印管理。我需要安裝兩個 deb 包,libcrafter_0.0.2_all.debysoft-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

“修訂號為空”不應成為不安裝的理由。這個包是由一些學生為他的學士論文完成的,我認為它不會更新。

不幸的是,libcrafter軟體包沒有正確建構:它的版本是“0.0.2-”,這不是 Debian 可接受的版本號(在Debian 政策的相關部分中指定)。接受此類版本號的舊版本dpkg,但已在版本 1.18.19 中修復(我很驚訝您能夠在 17.10 中安裝這些軟體包,因為它具有dpkg1.18.24)。

但是,這是可以修復的:

  1. 下載現有包。
  2. 提取它:
dpkg-deb -R libcrafter_0.0.2_all.deb libcrafter-0.0.2
  1. 修復它的版本號和包的其他幾個問題:
sed -i 's/0.0.2-$/0.0.2-1/;s/all$/amd64/;s/java$/libs/' libcrafter-0.0.2/DEBIAN/control
  1. 重建包:
dpkg-deb -b libcrafter-0.0.2 .
  1. 安裝生成的包:
sudo dpkg -i libcrafter_0.0.2-1_amd64.deb
  1. 清理:
rm -rf libcrafter_0.0.2_all.deb libcrafter-0.0.2

(留下新包裝供以後重複使用)。

引用自:https://unix.stackexchange.com/questions/441228