リポジトリ パッケージがすでにある場合、ソースからインストールできますか?

リポジトリ パッケージがすでにある場合、ソースからインストールできますか?

Ubuntu にソースから Virtualbox をインストールしようとしましたが、リポジトリ パッケージがすでにあるためインストールできませんでした。理想的には両方のバージョンが必要です。この制限を回避するような方法でソースからインストールすることは可能ですか?

以下は、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

パッケージ マネージャーを使用して、同じパッケージの 2 つのバージョンをインストールすることはできません (これが APT の動作方法です。異なる動作をするパッケージ マネージャーは他にもあります)。2 番目のバージョンをインストールしようとすると、古いバージョンが置き換えられます。

APT を使用すると、一部のプログラムの複数のバージョンをインストールできます。これは、パッケージ名にプログラムのバージョンを追加することで行われます。これは通常、同じライブラリの異なるバージョンを使用して複数のプログラムがインストールされている可能性があるため、ライブラリに対して行われます。これは実際に VirtualBox で発生しています。つまり、すでにインストールされているものをインストールしようとしているのですvirtualbox-5.1virtualbox-5.0パッケージ名に関しては、それは可能です。ただし、これらのパッケージは実際には一緒にインストールできません。パッケージ メタデータには、パッケージ マネージャーに一緒にインストールしないように指示する競合情報が含まれています。パッケージ メタデータで競合が宣言されていない場合でも、2 つのパッケージは同じ名前のファイルを提供するため、一緒にインストールすることはできません。VirtualBox に、ソフトウェアのバージョンが名前に含まれるパッケージが付属している理由はわかりません。

VirtualBox の複数のバージョンをインストールする場合は、パッケージ マネージャーを使用せずに、バイナリ ディストリビューションまたはソースからインストールする必要があります。つまり、deb ファイルを取得しないでください (おそらく 1 つのバージョンを除く)。

関連情報