Linux
apt vs apt-get 錯誤程式碼
我這裡有奇怪的東西,什麼時候
apt
被什麼東西鎖住了。分別,錯誤程式碼不匹配。apt update
似乎總是返回 success0
,而apt-get update
返回正確的錯誤程式碼。vlastimil@vb-nb-mint ~/Development/bash $ sudo apt-get update Reading package lists... Done E: Could not get lock /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable) E: Unable to lock directory /var/lib/apt/lists/ vlastimil@vb-nb-mint ~/Development/bash $ echo $? 100 vlastimil@vb-nb-mint ~/Development/bash $ sudo apt update Reading package lists... Done E: Could not get lock /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable) E: Unable to lock directory /var/lib/apt/lists/ vlastimil@vb-nb-mint ~/Development/bash $ echo $? 0
apt
的位置:vlastimil@vb-nb-mint ~/Development/bash $ which apt /usr/local/bin/apt
apt
的版本:vlastimil@vb-nb-mint ~/Development/bash $ apt-show-versions apt apt:amd64/xenial-updates 1.2.12~ubuntu16.04.1 uptodate
我原本想使用
apt
手動升級腳本,但這改變了情況。有人了解錯誤程式碼等以便幫助我嗎?
這顯然是故意的,請參見#778357:退出程式碼 0 表示成功或暫時錯誤,其他任何內容都表示永久錯誤。
如
apt
手冊頁所示:腳本用法和與其他 APT 工具的區別
命令行
apt(8)
被設計為最終使用者工具,它可能會改變版本之間的行為。雖然它盡量不破壞向後兼容性,但如果更改似乎有利於互動式使用,也不能保證。的所有功能
apt(8)
都可以在專用的 APT 工具中使用,例如apt-get(8)
和apt-cache(8)
。apt(8)
只是更改某些選項的預設值(請參閱apt.conf(5)
特別是二進制範圍)。因此,您應該更喜歡在腳本中使用這些命令(可能啟用了一些附加選項),因為它們盡可能保持向後兼容性。所以你不應該
apt
在腳本中使用。(奇怪的是你有
apt
;/usr/local/bin
鑑於你安裝了一個最新的apt
包,你可能也有它/usr/bin
!)