[Breezy] gcc-3.4 installieren / vmware-tools vollständig installieren / kein DSL

Fridtjof Caspar fcasparx at web.de
Mon Nov 7 14:04:42 CST 2005


Hallo Listler, dies ist mein Einstieg in die Linux/Unix-Welt;
entsprechend schwer fällt es mir, die wirklich relevanten
Informationen (bezüglich meiner Anfrage) zu posten, und irrelevantes
beiseite zu lassen. Gerne beantworte ich weitere Fragen zu meinem
System, und freue mich generell über Hinweise die mir dabei helfen,
Wichtiges von Unwichtigem zu trennen.

# Hardware: PC mit Gigabyte GA-7N400E-L Haupplatine und Athlon XP
(32Bit) Barton CPU.
# beteiligte Software:
- Ubuntu 5.10 mit Kernel 2.6.12-9-386; installiert von
"ubuntu-5.10-install-i386 cd.iso" (also nur eine '1' CD)
- Win XP Pro sp1
- VMware-workstation-5.0.0-13124 für Windows {Ubuntu 5.10 ist guest-OS
(Gast-Betriebsystem) in VMware, während VMware 5.0 selbst in dem
host-OS (Wirts-OS) WinXP Pro sp1 läuft}
-VMware-Tools-Installationsskript: "vmware-config-tools.pl"

VMware-Tools-Module, die nicht installiert/kompiliert werden konnten:
- vmhgfs (für u.a. shared folders, shared clipboard)
- vmxnet (für "fast networking")

Im guest-OS (Ubuntu) sind die sogenannten VMware-Tools zu
installieren. Die VMware-Tools gehören zu VMware. Sie ermöglichen u.a.
den gemeinsamen Zugriff auf Ordner durch sowohl den host als auch den
guest (sog. "shared folders") und auch die Kommunikation zwischen den
Clipboards (Zwischenablagen) von host und guest.

Mein Versuch die VMware-Tools komplett zu installieren (im guest-OS
Ubuntu) scheitert daran, daß zwei VMware-Tools-Module  - angestoßen
durchs Installationsskript - erneut kompiliert werden müssen, da sich
unter den mitgelieferten binaries der Module keine zu meinem Kernel
passenden befinden (meldet das Install-Skript vmware-config-tools.pl).

Hier die ersten gut fünf Dutzend Ausgabezeilen  von
vmware-config-tools.pl (es reicht die erste Hälfte zu lesen, die sich
auf das Modul vmhgfs bezieht. Die zweite Hälfte bezieht sich auf das
zweite Modul vmxnet und entspricht ansonsten wortwörtlich der ersten
Hälfte):

|> root at ubuntu:~# vmware-config-tools.pl
|> 
|> Stopping VMware Tools services in the virtual machine:
|> 	Guest operating system daemon:			done
|> Trying to find a suitable vmhgfs module for your running kernel.
|> 
|> None of the pre-built vmhgfs modules for VMware Tools is suitable for
|> your running kernel.  Do you want this program to try to build the vmhgfs
|> module for your system (you need to have a C compiler installed on your
|> system)? [ yes ]
|> 
|> [y][e][s][Enter] {<-- meine Antwort}
|> 
|> Using compiler "/usr/bin/gcc". Use environment variable CC to override.
|> 
|> Your kernel was built with "gcc" version "3.4.5", while you are trying
|> to use "/usr/bin/gcc" version "4.0.2". This configuration is not
|> supported and VMware Tools cannot work in such configuration. Please
|> either recompile your kernel with "/usr/bin/gcc" version "4.0.2", or
|> restart /usr/bin/vmware-config-tools.pl with CC environment variable
|> pointing to the "gcc" version "3.4.5".
|> 
|> The filesystem driver (vmhgfs module) is used only for the shared folder
|> feature. The rest of the software provided by VMware Tools is designed
|> to work independently of this feature.
|> 
|> If you wish to have the shared folders feature, you can install the
|> driver by running vmware-config-tools.pl again after making sure that
|> gcc, binutils, make and the kernel sources are installed on your
|> machine. These packages are available on your distribution's
|> installation CD.
|> 
|> [ Press Enter key to contiunue ]
^ Ende erste Hälfte (zu vmhgfs).

v Beginn zweite Hälfte (zu vmxnet, ansonsten identisch mit Obigem):
|> [Enter] {<-- meine Antwort}
|> 
|> Trying to find a suitable vmxnet module for your running kernel.
|> 
|> None of the pre-built vmxnet modules for VMware Tools is suitable for
|> your running kernel.  Do you want this program to try to build the
|> vmxnet module for your system (you need to have a C compiler installed
|> on your system)?  [ yes ]
|> 
|> [y][e][s][Enter] {<-- meine Antwort}
|> 
|> Using compiler "/usr/bin/gcc". Use environment variable CC to override.
|> 
|> Your kernel was built with "gcc" version "3.4.5", while you are trying
|> to use "/usr/bin/gcc" version "4.0.2". This configuration is not
|> supported and VMware Tools cannot work in such configuration. Please
|> either recompile your kernel with "/usr/bin/gcc" version "4.0.2", or
|> restart /usr/bin/vmware-config-tools.pl with CC environment variable
|> pointing to the "gcc" version "3.4.5".
|> 
|> The fast network device driver (vmxnet module) is used only for our fast
|> networking interface. The rest of the software provided by VMware Tools
|> is designed to work independently of this feature.
|> 
|> If you wish to have the fast network driver enabled, you can install the
|> driver by running vmware-config-tools.pl again after making sure that
|> gcc, binutils, make and the kernel sources for your running kernel are
|> installed on your machine. These packages are available on your
|> distribution's installation CD.
|> 
|> [ Press Enter key to contiunue ]
^ Ende zweite Hälfte (zu vmxnet).


In Synaptic finde ich nur ein gcc-4.0.2 installiert. Auf dem CD-ISO
"ubuntu-5.10-install-i386 cd.iso" befinden sich keine Pakete von
gcc-3.4.x (die würden ja auch in Synaptic angezeigt werden; die CD ist
gemountet und als Quelle in source.list eingetragen).

Mein Ziel ist es also, gcc 3.4 zu installieren. 
Ein Paket gcc 3.4.5 habe ich übrigens nicht gefunden. Wie funktioniert
die Bennenung mit Versionsnummern: ist das wie beim Kernel, wo
*gerade* Endziffern auf stabile Endbenutzer-Versionen hinweisen,
*ungerade* hingegen auf Entwicklerversionen? Aber warum ist dann der
Ubuntu 5.10 Kernel mit 3.4.5 kompiliert?

Nun denn. Angeblich funktioniert es folgendermaßen mit gcc 3.4:
<!-- saved from http://ffs.voiddeck.com/blog/ -->
|> sudo apt-get install make 
|> sudo apt-get install gcc-3.4 
|> sudo path_to_vmware_folder/vmware-install.pl 
|> 
|> (If you have already installed gcc 4, then you have to export CC 
|> environment variable to point to your gcc-3.4 before running the 
|> last step. So just do export CC=/usr/bin/gcc-3.4.)
|> 
|> Don’t forget to do 
|> sudo apt-get install linux-headers-686
|> if you’re running a recent system. The 686 is for Pentium-II and above.

Problem: Mit dem Internet bin ich nur per 56k-Analogmodem verbunden
(max. 48 kbit/s), und habe keine Flatrate.

Aber: Bei einem Bekannten habe ich *seltenst* die Möglichkeit, per DSL
aufs Internet zuzugreifen. Dort habe ich - weitgehend ohne zu wissen,
was ich tue - aus einem Ubuntu Breezy Repository folgende Dateien
heruntergeladen:

|> gcc-3.4_3.4.4.orig.tar.gz                       30.192.343   28.10.2005  13:11
|> gcc-3.4_3.4.4-6ubuntu8.diff.gz                   1.073.889   28.10.2005  13:07
|> cpp-3.4_3.4.4-6ubuntu8_i386.deb                  1.707.096   28.10.2005  13:08
|> gcc-3.4-base_3.4.4-6ubuntu8_i386.deb               163.028   28.10.2005  13:11
|> gcc-3.4-doc_3.4.4-6ubuntu8_all.deb               1.475.080   28.10.2005  13:14
|> gcc-3.4_3.4.4-6ubuntu8_i386.deb                    484.408   28.10.2005  13:06
|> libc6-dev_2.3.5-1ubuntu12_i386.deb               2.790.808   28.10.2005  13:13
|> libc6_2.3.5-1ubuntu12_i386.deb                   4.886.832   28.10.2005  13:12
|> libgcc1_4.0.1-4ubuntu9_i386.deb                     91.204   28.10.2005  13:12
|> binutils_2.16.1-2ubuntu6_i386.deb                1.469.386   28.10.2005  13:08

Sind hierbei wohl alle für gcc 3.4 erforderlichen Pakete enthalten?
Meine bislang einzige Paketquelle ist das CD-ISO, von dem ich Ubuntu
installiert habe.

Und: Darf ich das Paket "gcc-3.4_3.4.4-6ubuntu8.diff.gz" überhaupt
installieren? Ich fürchte, mit dem diff-Paket erhalte ich letztendlich
eine "zu neue" Version von gcc ... nämlich gcc 3.4.6. So interpretiere
ich das "...3.4.4-6..." im Paketnamen - Als "Unterschiede zwischen
v3.4.4 und 3.4.6". Oder verstehe ich die Bedeutung von
*.diff.gz-Paketen völlig falsch? Tatsächlich rate ich hier bloß.

Weitere Fragen:
1) Inwieweit stören sich die beiden gcc-Versionen? Ich würde sie gerne
beide in ein gemeinsames (Eltern-)Verzeichnis installieren. 
Ist /usr/bin als parent-directory korrekt?

Der Umgebungsvariable CC würde ich dann vorübergehend den Pfad auf
gcc-3.4 zuweisen, und nach dem 'build' der Module vmhgfs und vmxnet
wieder zurücksetzen auf den vorherigen Pfad nach gcc-4 (?).

2) Befinden sich gcc-3.4 und alle abhängigen Pakete auf dem 2,9 GB
DVD-iso "ubuntu-5.10-dvd-i386.iso"? Falls ich also dieses Image bei
Bekannten herunterlade, es in Ubuntu mounte, und in sources.list
eintrage; kann ich dann 
|> sudo apt-get install make 
|> sudo apt-get install gcc-3.4 
erfolgreich lokal ausführen, ohne (über DSL o.ä.) auf die Repositories
im Internet zurückgreifen zu müssen?

Ich habe gelesen es sei möglich, (mittels dpkg-...) selbst
package.gz-Pakete zu erzeugen ... jedenfalls für .deb-Pakete. 

Auch für .tar.gz? Falls ja: Wohin im Verzeichnisbaum verschiebe ich
die *.tar.gz-Dateien, bevor ich für sie Pakete erzeuge? 
Und anschließend die fertigen nach /var/cache/apt/archive?
In ein Unterverzeichnis davon?

Ich frage dies, weil mir die Ordnungsstruktur von Linux-Dateibäumen
noch sehr unklar ist. Und weil ich annehme, daß u.A. wegen der
Zugriffsrechte auf die Verzeichnisse beim späteren Installieren der
Pakete dies sicher von Bedeutung ist. Außerdem gehe ich davon aus, daß
es Regeln gibt dafür, WO im Dateibaum WAS zu sein / zu geschehen hat.
Wo Pakete gelagert werden sollten (insbesondere wenn deren Pfade für
die Paketverwaltung in sources.list einzutragen sind). Wo Programme
installiert werden, die von allen Benutzern verwendbar seien sollen;
und wo jene Programme zu installieren sind, die nur von speziellen
Benutzern zu verwenden sind. 

3) Gerade kommt mir beim lesen in
http://debiananwenderhandbuch.de/apt-ftparchive.html eine Frage: 
Gibt es beim Vergleich von *.deb-Paketen (oder *.rpm) und
*.tar.gz-Dateien grundsätzliche Unterschiede, was ihren Inhalt
betrifft?
Ist es so, daß *.deb-Pakete *immer* Binaries enthalten?
Ist es so, daß *.tar.gz-Dateien zumindest üblicherweise Sourcecode
enthalten? 

Hier mache ich erst einmal Schluß. 
Vielen Dank fürs Lesen dieses überlangen Postings. 
Noch mehr Dank für eventuelle Antworten!
Gruß,
Fridtjof (bloody beginner)