當已經有 repo 套件了時,我可以從原始碼安裝嗎?

當已經有 repo 套件了時,我可以從原始碼安裝嗎?

我只是嘗試在 Ubuntu 上從原始碼安裝 Virtualbox,但它不允許我安裝,因為我已經有了 repo 軟體包。理想情況下我需要兩個版本。我是否可以透過原始碼安裝來繞過此限制?

以下是在 deb 軟體包上執行 sudo dpkg -i 指令後出現的錯誤訊息:

Selecting previously unselected package virtualbox-5.1.
dpkg: regarding virtualbox-5.1_5.1.18-114002-Ubuntu-trusty_amd64.deb containing virtualbox-5.1:
 virtualbox-5.1 conflicts with virtualbox
  virtualbox-5.0 provides virtualbox and is present and installed.

dpkg: error processing archive virtualbox-5.1_5.1.18-114002-Ubuntu-trusty_amd64.deb (--install):
 conflicting packages - not installing virtualbox-5.1
Errors were encountered while processing:
 virtualbox-5.1_5.1.18-114002-Ubuntu-trusty_amd64.deb

答案1

您無法透過套件管理器安裝同一套件的兩個版本。 (這就是 APT 的工作原理 - 還有其他套件管理器的工作方式不同。)如果您嘗試安裝第二個版本,它會替換舊版本。

可以使用 APT 安裝某些程式的多個版本。這是透過在套件名稱中新增程式版本來完成的。它通常是針對庫完成的,因為您可能使用同一庫的不同版本安裝了多個程式。這實際上發生在 VirtualBox 上:您嘗試virtualbox-5.1virtualbox-5.0已經安裝的情況下進行安裝。就包名稱而言,這是可能的。然而,這些軟體包實際上不能一起安裝;包元資料包含衝突訊息,告訴套件管理器不要將它們安裝在一起。即使包元資料沒有聲明衝突,兩個套件也無法安裝在一起,因為它們提供具有相同名稱的檔案。我不知道為什麼 VirtualBox 的軟體包名稱中包含軟體的版本。

如果要安裝 VirtualBox 的多個版本,則必須從二進位發行版或原始程式碼安裝它們,而不使用套件管理器。換句話說,不要取得 deb 檔案(其中一個版本可能除外)。

相關內容