VMware Server x64 auf Debian 5.0 Lenny mit Perl für i486

Wenn man ein Standarddesktopsystem mit Debian Lenny betreibt und man dort den VMware-Server in der aktuellen Version VMware-server-2.0.1-156745.x86_64 installieren möchte, beginnt man mit folgenden Zeilen:
# apt-get install linux-headers-`uname -r` build-essential
# tar xvfz VMware-server-2.0.1-156745.x86_64.tar.gz
# vmware-server-distrib/vmware-install.pl

An dieser Stelle kann es zur folgenden Fehlermeldung kommen:
This version of "VMware Server" is incompatible with this operating system.
Please install the "i386" version of this program instead.

Der Hintergrund dieser falschen Meldung ist, dass das in Perl geschriebene VMware-Installationsscript die installierte Kernelvariante nicht per uname -r auf AMD64-Kompatibilität überprüft, sondern hierzu die Perlversion befragt. Dies kann man auch manuell tun, im folgenden Fall mit Rückgabe der i486-Version:
# perl -v
This is perl, v5.10.0 built for i486-linux-gnu-thread-multi

Bei Lenny wird aktuell standardmäßig leider keine x86-64-Version von Perl per apt ausgeliefert, sondern eben diese i486-Version. Trotzdem kann man die 64-Bit-Version des VMware-Servers installieren. Hierzu öffnet man die Datei vmware-server-distrib/vmware-install.pl und sucht dort nach einem Auszug aus der Fehlermeldung, z.B. incompatible. Man landet in der Funktion, die diesen Fehler zurückmeldet und fügt dort einfach gleich zu Beginn ein return undef; ein und schon lässt sich das Installationsscript ausführen.

Kurz danach taucht ein weiteres Problem auf: der Kernel ist mit gcc 4.1.3 kompiliert, die installierte Standardversion des gcc ist aber aus dem neueren 4.3er Zweig:
Your kernel was built with "gcc" version "4.1.3", while you are trying to use
"/usr/bin/gcc" version "4.3.2". This configuration is not recommended and
VMware Server may crash if you'll continue. Please try to use exactly same
compiler as one used for building your kernel. Do you want to go with compiler
"/usr/bin/gcc" version "4.3.2" anyway? [no]

Die Umstellung auf den 4.1er gcc-Zweig ist simpel:
# apt-get install gcc-4.1
# ln -sf /usr/bin/gcc-4.1 /usr/bin/gcc

Mitunter kommt kurz nach dem Kompilieren der vmnet-Module und der Abfrage des Remote-Ports folgende Fehlermeldung:
Unable to get the last modification timestamp of the destination file
/etc/vmware/ssl/rui.key.

Warum das Installationsscript die nötige Datei nicht selbst anlegt, ist eine gute Frage. Abhilfe schafft das Anlegen der Dateien und um das Installationsscript neu ausführen zu können müssen außerdem die schon kompilierten Module gelöscht werden:
# touch /etc/vmware/ssl/rui.key
# touch /etc/vmware/ssl/rui.crt
# rm /lib/modules/2.6.26-1-amd64/misc/vmci.{o,ko}
# rm /lib/modules/2.6.26-1-amd64/misc/vmnet.{o,ko}
# rm /lib/modules/2.6.26-1-amd64/misc/vmmon.{o,ko}

Anschließend sollte sich VMware vollständig installieren lassen. Es kommt allerdings unter Umständen noch zu einem Fehler bei der Überprüfung der Serial-Nummer:
Type XXXXX-XXXXX-XXXXX-XXXXX or 'Enter' to cancel: ...
sh: /usr/lib/vmware/bin/vmware-vmx: Datei oder Verzeichnis nicht gefunden
The serial number ... is invalid.

Relevant ist hierbei der Fehler, der von /usr/lib/vmware/bin/vmware-vmx gemeldet wird und auf fehlende Pakete, also nicht aufgelöste Abhängigkeiten, hindeutet. Installiert werden muss das Paket ia32-libs, was jedoch auch nicht immer auf Anhieb klappt. Obwohl das paket ia32-libs von der Paketsuche direkt auf der Debain-Homepage gelistet wird und Paket-Quellen korrekt konfiguriert sind, kommt u.U. folgende Meldung:
apt-get install ia32-libs
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut
Lese Status-Informationen ein... Fertig
E: Konnte Paket ia32-libs nicht finden

Das Paket ließ sich auch nicht aus dem Testing-Zweig installieren. Um ein Paket trotz dieser Merkwürdigkeit zu bekommen, muss man sich ein wenig durch die Paketsuche auf debian.org wühlen und den Download-Link für das deb-Paket suchen. Anschließend helfen folgende Zeilen weiter:
# wget http://ftp.de.debian.org/debian/pool/main/i/ia32-libs/ia32-libs_2.7_amd64.deb
# dpkg -i ia32-libs_2.7_amd64.deb

Allerdings kam dann eine Ausgabe, die mich zur Aufgabe auf diesem System gebracht hat:
dpkg: Fehler beim Bearbeiten von ia32-libs_2.7_amd64.deb (--install):
Paket-Architektur (amd64) passt nicht zum System (i386)
Fehler traten auf beim Bearbeiten von:
ia32-libs_2.7_amd64.deb

Bei dem Rechner, der diese vielen kleinen Problemchen hervorgebracht hat, handelt es sich um ein vor über einem Jahr mit Debian Etch Testing (sprich: pre-Lenny) installierten Rechner, der auch das Dist-Upgrade vom stable zum testing und Anfang des Jahres schließlich zum Lenny-stable hinter sich hat. Einige der obigen Fehler traten nur bei dieser Lenny-Desktopinstallation auf, jedoch nicht auf einem reinen Lenny-Server. Es kann also in Abhängigkeit davon, was man so auf dem System hat und in welcher Version dies (ursprünglich) installiert wurde auch mal etwas andere Effekte beobachten. Dieser Testrechner mit Gnome-Desktop durchlebte schon so einige (Fehl-)Konfigurationen und wird jetzt einfach komplett neu installiert, um anschließend problemloser VMware einrichten zu können und auch andere kleine Ungereimtheiten los zu werden.

Bei der Suche nach einigen der obigen diesen Fehlern taucht auch immer wieder Ubuntu auf, wo man wohl selbige Stolpersteine überwinden muss. Selbstredend klappt dies bei Ubuntu analog, es muss lediglich vor den Befehlen noch das dort übliche sudo eingefügt werden, um root-Befehle als User absetzen zu können.

Edit: Nach der Neuinstallation des Rechners war die Installation von VMware erwartungsgemäß ein Kinderspiel. VMware entpacken, den gcc-Link setzen und schon läuft das Installationsscript erfolgreich durch. Perl liefert aktuell als Version folgendes zurück:
This is perl, v5.10.0 built for x86_64-linux-gnu-thread-multi
Daher ist auch die zuvor nötige Anpassung des Perl-Scripts nicht mehr notwendig.

Eine Reaktion zu “VMware Server x64 auf Debian 5.0 Lenny mit Perl für i486”

  1. Sven

    Vielen Dank für den informativen Artikel! Ihre Tipps haben mir die Arbeit wesentlich erleichtert.

Einen Kommentar schreiben