
我在幾台 Ubuntu 12.04 伺服器上安裝了 Percona DB 5.6。在其中一些上,我已經能夠使用以下命令成功升級到最新版本(5.6.17)
apt-get update
apt-get upgrade
在其他幾個上, apt-get update + Upgrade 告訴我沒有什麼可做的,儘管那裡安裝的版本只有 5.6.15。為什麼找不到最新版本?
已更新的伺服器的最新版本:“伺服器版本:5.6.17-65.0-587.precise-log (Ubuntu)”
未更新的伺服器版本:“伺服器版本:5.6.15-63.0-log Percona Server (GPL),版本 63.0”
我已確認以下行位於所有伺服器上的 /etc/apt/sources.list 中:
deb http://repo.percona.com/apt precise main
deb-src http://repo.percona.com/apt precise main
(它必須在某個時候起作用,因為它們最初都是使用 apt-get 安裝的)
編輯:根據estibordo的建議,我加入了輸出
apt-cache policy percona-server-server-5.6
(percona-server-common-5.6 和 percona-server-client-5.6 也與此相同)
從未升級的伺服器:
percona-伺服器-伺服器-5.6: 安裝:1:5.6.15-rel63.0-519.precise 候選:1:5.6.15-rel63.0-519.precise 版本表: *** 1:5.6.15-rel63.0-519.精確0 100 /var/lib/dpkg/狀態 5.6.17-65.0-587.精確0 500 個 http://repo.percona.com/apt/precision/main amd64 軟體包
在我升級的伺服器上,輸出如下:
percona-伺服器-伺服器-5.6: 安裝:5.6.17-65.0-587.precise 候選:5.6.17-65.0-587.precise 版本表: *** 5.6.17-65.0-587.精確0 500 個 http://repo.percona.com/apt/precision/main amd64 軟體包 100 /var/lib/dpkg/狀態
為什麼會有差異,或者更重要的是,如何修復卡在 5.6.15 上的問題?謝謝。
答案1
我覺得
apt-cache policy percona-server-server
就是你所需要的。它將提供有關已安裝版本以及是否有其他候選版本需要安裝的資訊。它還會告訴您軟體包來自哪些儲存庫。
您可以使用帶有通配符的相同命令,例如:
apt-cache policy percona*
答案2
目前某些 Ubuntu PPA 也存在同樣的問題:仔細查看已安裝軟體包的版本號。它有一個前導 1:在開頭(“紀元” - 參見https://askubuntu.com/questions/441879/why-do-some-packages-have-extra-numbers-on-the-front-of-their-version-string),這導致 Apt 認為它是比儲存庫中實際更高版本更高的版本。舊的安裝是否來自 PPA,或者他們是否更改了版本號?
無論如何,由於輸出沒有說明目前安裝的軟體包來自何處,因此儲存庫可能已從您的配置中同時刪除。
我認為最好刪除(不是清除;刪除應該使所有配置保持不變;儘管如此,請務必備份 /etc 中的相應資料夾)當前包,然後(為了安全起見)再次執行apt-get update && apt-get clean
,然後安裝包裹又正常了apt-get install
。然後它應該忘記帶有 1: 前綴的版本並安裝存儲庫中的最新版本。