我嘗試了以下操作,因為我將自訂補丁應用於某些套件:
當apt-get upgrade
顯示要升級的軟體包時,我使用 apt-get source 下載原始程式碼,應用補丁,重建,安裝(使用dpkg -i
)。然後安裝最新版本。但即使在 apt-get update 之後,我手動建立並使用 dpkg 安裝的軟體包仍然出現在升級中,因此會再次被覆蓋。
我該如何解決這個問題?
答案1
這更多的是給其他有相同問題的人的臨時說明,直到有更明智的人可以幫助解決問題。
在我的建置腳本中我放入
VERSION=$(grep -R "Version: " | grep .dsc | head -1 | awk '{print $2}')
NEW_NUMBER=$((${VERSION: -1} + 1))
NEW_VERSION=$(echo $VERSION | sed "s/ubuntu${VERSION: -1}/ubuntu$NEW_NUMBER/")
grep -rl $VERSION | xargs sed -i "s/$VERSION/$NEW_VERSION/g"
就在之後apt-get source <package-name>
這會將軟體包版本的最後一個數字更改為下一個更高的數字(例如ubuntu2
將變為ubuntu3
)。
此解決方法在這裡有效。
快速重現法: 確保您嘗試使用的軟體包已完全升級。現在當你這樣做時:
cd /tmp
apt-get -b source <package>
sudo dpkg -i *.deb
並檢查您將看到 apt-get 顯示您的軟體包的升級。