Gentoo で VMware を使う

もっぱら VirtualBox 派の私ですが、たまには VMware を使ってみます。

インストールされるバージョンのチェック

$ emerge -pv vmware-player

 * app-emulation/vmware-player
     Available versions:  2.5.5.328052!b!s ~3.1.3.324285!f!b!s {doc +vmware-tools}
     Homepage:            http://www.vmware.com/products/player/
     Description:         Emulate a complete PC on your PC without the usual performance overhead of most emulators

2 系 と 3系 があるようです…ずいぶんバージョンに開きが。今回は vmware-player-3.1.3.324285 を入れます。

パッケージのキーワードマスクを外す

今回は vmware-player-3.1.3.324285 を入れたいのでキーワードマスクを外します。同時に依存するいくつのパッケージも新しいバージョンにする必要がありますが、どのパッケージが依存しどのパッケージがマスクされているかはキーワードマスクを外しながら emerge -p していけばシステムが教えてくれます。

app-emulation/vmware-player:0

!!! All ebuilds that could satisfy ">=x11-libs/libview-0.6.6" have been masked.
!!! One of the following masked packages is required to complete your request:
- x11-libs/libview-0.6.6 (masked by: ~amd64 keyword)

(dependency required by "app-emulation/vmware-player-3.1.3.324285" [ebuild])
For more information, see the MASKED PACKAGES section in the emerge
man page or refer to the Gentoo Handbook.

vmware-player-3.1.3.324285 を入れるには x11-libs/libview-0.6.6 以上が必要だけどこれが ~amd64 でキーワードマスクされてるのでいれられませんよという意味。


エラーが消えるまで何度か繰り返すとこんな感じになります。まとめて書いてしまいます。

$ sudo nano -w /etc/portage/package.keywords

# VMware
<=app-emulation/vmware-player-3.1.3.324285      ~amd64
<=app-emulation/vmware-tools-8.4.5.324285       ~amd64
<=x11-libs/libview-0.6.6                        ~amd64
<=app-emulation/vmware-modules-238.3-r8         ~amd64

一応バージョン指定してそれ「以下」で外しますが、適当でいいと思います。


今回インストールされるパッケージは依存関係含めてこんな感じになりました。

$ emerge -pv vmware-player

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild  N    ] dev-libs/libsigc++-2.2.7  USE="-doc -test" 0 kB
[ebuild  N    ] dev-libs/libaio-0.3.107  0 kB
[ebuild  N    ] dev-cpp/glibmm-2.24.2-r1  USE="-debug -doc -examples -test" 0 kB
[ebuild  N    ] dev-cpp/cairomm-1.8.6  USE="-doc -svg" 0 kB
[ebuild  N    ] media-libs/libart_lgpl-2.3.21-r1  0 kB
[ebuild  N    ] gnome-base/libgtop-2.28.2  USE="-debug -doc" 0 kB
[ebuild  NS   ] media-libs/libpng-1.2.44 [1.4.5] 0 kB
[ebuild  NS   ] dev-libs/openssl-0.9.8r [1.0.0d] USE="(sse2) zlib -bindist -gmp -kerberos -test" 0 kB
[ebuild  N    ] dev-libs/xmlrpc-c-1.18.02  USE="cgi curl cxx threads -abyss -tools" 0 kB
[ebuild  N    ] app-emulation/vmware-tools-8.4.5.324285  USE="-vmware_guest_freebsd -vmware_guest_linux -vmware_guest_netware -vmware_guest_solaris -vmware_guest_winPre2k -vmware_guest_windows" 0 kB
[ebuild  N    ] gnome-base/libgnomecanvas-2.30.3  USE="-doc -glade -test" 0 kB
[ebuild  N    ] dev-cpp/pangomm-2.26.3  USE="-doc" 0 kB
[ebuild  N    ] x11-libs/libgksu-2.0.12-r1  USE="nls -doc -static-libs" 0 kB
[ebuild  N    ] dev-cpp/atkmm-2.22.2  USE="-doc" 0 kB
[ebuild  N    ] dev-cpp/gtkmm-2.22.0  USE="-doc -examples -test" 0 kB
[ebuild  N    ] dev-cpp/libsexymm-0.1.9  USE="-debug -doc" 0 kB
[ebuild  N    ] x11-libs/libview-0.6.6  USE="-debug" 0 kB
[ebuild  N    ] dev-cpp/libgnomecanvasmm-2.26.0  USE="-debug -doc -examples" 0 kB
[ebuild  N F  ] app-emulation/vmware-player-3.1.3.324285  USE="vmware-tools -doc" 0 kB
[ebuild  N    ] app-emulation/vmware-modules-238.3-r8  0 kB

Total: 20 packages (18 new, 2 in new slots), Size of downloads: 0 kB
Fetch Restriction: 1 package

app-emulation/vmware-tools-8.4.5.324285 にある大量の USE フラグと、 app-emulation/vmware-player-3.1.3.324285 にある見慣れない 『ebuild N F 』 というものについては、後述します。

ゲスト OS 用の ISO イメージファイルの指定

インストールする前にゲストOSに使う OS 用の ISO イメージファイルを指定します。

 * app-emulation/vmware-tools
     Available versions:  (~)8.4.5.324285!m {vmware_guest_freebsd vmware_guest_linux
       vmware_guest_netware vmware_guest_solaris vmware_guest_winPre2k vmware_guest_windows}
     Homepage:            http://www.vmware.com/products/player/
     Description:         VMware Tools for guest operating systems

ゲスト用イメージは app-emulation/vmware-tools で提供されます。 USE フラグで対象を制御できますので、それらを USE フラグに追記していきます。たとえば Windows ゲストと Linux ゲストを考えているなら

$ sudo nano -w /etc/portage/package.use

app-emulation/vmware-tools    vmware_guest_linux vmware_guest_windows

という一行を追加すれば OK です。

VMwareバイナリのフェッチ

先ほどこんなのがありました。

[ebuild  N F  ] app-emulation/vmware-player-3.1.3.324285  USE="vmware-tools -doc" 0 kB

この F というのは fetch のことで、バイナリをよそから持ってこいというものです。 VMware のサイト http://www.vmware.com/products/player/ にアクセスして 3.1.3 のバイナリを事前に持ってくる必要があります。持ってきたら /usr/portage/distfiles/ にコピーしてやります。

ソースで提供されていないものはこういう手順を踏むことがあるんですね…たまに。

インストール

ここまで全部終わったらインストールします。

$ sudo emerge -av vmware-player

仕上げ

起動する前にモジュールの一部を読み込んでやる必要があります。 vmware サービスを起動します。

$ sudo /etc/init.d/vmware start
$ sudo rc-update add vmware default


ここまでやったら VMware を起動できます。


注意

vmware の起動に必要なモジュールはカーネルモジュール (ドライバ) なので、カーネルのバージョンを変更した場合その都度コンパイルし直してやる必要があります。

Gentoo ではその手のドライバを一括でリビルドするツール (module-rebuild) があるので使いましょう。

$ sudo emerge -av sys-kernel/module-rebuild           (module-rebuild をインストール)

$ sudo module-rebuild list                            (コンパイルが必要なものをリスト)
** Packages which I will emerge are:
        =app-emulation/vmware-modules-238.3-r8

$ sudo module-rebuild rebuild                         (実際に再コンパイルする)
** Preparing to merge modules:
** Packages which I will emerge are:
        =app-emulation/vmware-modules-238.3-r8


またその場合、ゲスト OS 上のドライバも入れなおしたほうが安定するようです。