Mac OS X, Terminal.app, SSH, X11-forwarding ausm CIP

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

Mac OS X, Terminal.app, SSH, X11-forwarding ausm CIP
Hi!

Kann mir jemand sagen wie ich aufm Mac (und im CIP) das X11-Forwarding richtig konfiguriere um von zu Hause GUI-Programme ausm CIP benutzen zu können? Mit xterm geht’s immerhin schon einigermaßen. firefox ist _sau_langsam, xterm (im CIP) scheint zu funktionieren, aber bei vielen anderen Programmen krieg ich ne Fehlermeldung:

sijnhart@faui05 ~ $ eclipse
The program 'eclipse' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadWindow (invalid Window parameter)'.
  (Details: serial 66 error_code 3 request_code 38 minor_code 0)
  (Note to programmers: normally, X errors are reported asynchronously;
   that is, you will receive the error a while after causing it.
   To debug your program, run it with the --sync command line
   option to change this behavior. You can then get a meaningful
   backtrace from your debugger if you break on the gdk_x_error() function.)

…aber eigentlich würde ich die Programme ja gern direkt aus Terminal.app (ohne xterm) aufrufen können.

halfbrain


Welches Mac OS X verwendest du?

  • bei Tiger musst du in einer der Bash-Startdateien die [m]DISPLAY[/m]-Variable richtig setzen, weil sie nicht von Terminal.app gesetzt wird.
  • bei Leopard müsste das eigentlich out-of-the-box funktionieren.

Voraussetzung bei beiden Varianten: Du verbindest dich mit [m]ssh -X[/m].

Dass Firefox langsam ist, ist übrigens normal, und daran wirst du auch nicht viel ändern können: X11-Forwarding ist eben einfach alt und ineffizient. Du könntest ssh mit Kompression verwenden ([m]ssh -X -C[/m]) oder einen anderen Browser, z.B. [m]dillo[/m].

Statt X11-Forwarding könntest du aber auch einfach VNC oder FreeNX(http://freenx.berlios.de/) verwenden.


Ich hab Tiger. Mit dem richtig gesetzten $DISPLAY geht’s jetzt auch über Terminal.app, allerdings auch nur mit o.g. Programmen. Bei eclipse kommt weiterhin der Fehler, k a was da los ist.

Ist VNC denn überhaupt verschlüsselt?


Das ist meines Wissens nach im CIP nicht installiert, glaube aber auch nicht dass es wirklich nötig ist.

Eclipse gibts übrigens auch für Mac OS X, da gibts keinen Grund dass über X-Forwarding zu benutzen, vor allem weil das natürlich total lahm ist…


Ja, aber Java 6 und Mac OS X usw…


Doch, es gibt einen Grund: Manche Eclipse-Plugins (z.B. Pure::Variants) gibt es nicht für Mac OS X, sondern nur für Linux und Windows.

VNC ist übrigens nicht verschlüsselt, aber du musst den VNC-Traffic eh über ssh tunneln, also sollte das kein Problem sein:
SSH-Verbindung öffnen mit [m]ssh -X -C login@faui05 -L 5901:faui05:5901[/m], dann den VNC-Server starten mit [m]vncserver :1[/m].
Shell offenlassen!
Lokal auf dem Rechner einen VNC-Client starten, und als Host [m]127.0.0.1[/m], sowie als Display [m]1[/m] angeben. Wenn alles geklappt hat, solltest du eine VNC-Sitzung haben :wink:
Der VNC-Server schiebt sich selbst in den Hintergrund, um ihn wieder abzuschießen, einfach [m]vncserver -kill :1[/m] eingeben.


Java 6 will man halt noch nicht. Genau aus dem Grund, dass es nicht für alle Plattformen verfügbar ist. Daran wird sich vermutlich so schnell auch nichts ändern. Es gab zwar von Apple schon ein paar Betas von Java 6, aber denen vertraue ich auch nicht, weil es das Java direkt ersetzt, eine Parallelinstallation ist unmöglich. Ich glaube auch nicht, dass es von Apple nochmal ein Java Update für Tiger geben wird. Für Leopard wird vermutlich auch einfacher direkt Java 7 kommen.

Landon Fuller hat mal Java 6 von FreeBSD nach Mac OS X portiert und bietet das ganze unter dem Namen SoyLatte an. Das war aber mehr eine Machbarkeitsstudie, als dass man das wirklich benutzen will.

Das letzte Java 6 Patchset des FreeBSD Java Projects unterstützt laut ChangeLog auch Mac OS X Leopard. Nützt dir natürlich auf Tiger auch nichts mehr. Ich habs auch nie probiert, ob das taugt.

Alternativ gäbe es noch das IcedTea-Projekt. Dieses versucht die OpenJDK builds mittels freier Software zu bauen und den Binärkram durch GNU Classpath zu ersetzen. Dabei zum Hintergrund: Sun macht das schön Open Source, aber ein paar Sachen (sogenannte Binary Plugs) gibts auch einfach nur binär und auch nur für Windows, Linux und Solaris. Vermutlich genau das, was Sun wollte. Jetzt brauchen die das nicht selbst neu schreiben, sondern die Community macht das für sie.

Meine Empfehlung daher: Wenn man keine Mac OS X-Benutzer ausschließen will, sollte man einfach noch bei Java 5 bleiben. Ich wüsste übrigens keine Neuerung von Java 6 die den Einsatz wirklich nötig macht. Ein weiteres Argument für Java 5: Man kann es mit gcj und ecj (dem Eclipse Compiler) in echten Binärcode übersetzen.

Es ist auch einfach eine Schande, dass Java 6 bereits im Dezember 2006 released wurde und es immer noch nichts offizielles für Mac OS X gibt. Ob die Schuldigen da jetzt eher Apple oder Sun sind, weiß ich nicht. Immerhin wurde ja Java in Mac OS X durch Apple immer ordentlich mit einem nativen Aqua-Interface integriert, während Java auf anderen Plattformen (auf denen Sun das wohl selbst macht) ein AWT-Interface doch deutlich von der normalen Oberfläche unterscheidbar ist.


Gut, dass es solche “plattformunabhängigen” Sprachen wie Java gibt… :rolleyes:


Ja, wir brauchen’s halt für “Parallele und funktionale Programmierung” wegen Threads und Parallelität und Zeugs.


Und was hat sich da zwischen Java 5 und Java 6 verändert? Ich seh davon zumindest nichts im ChangeLog.

Naja gut, letztenendes würde ich trotzdem auf keinen Fall eclipse über X-Forwarding benutzen. Schreib deinen Code doch lokal in Java 5 und teste vor der Abgabe mal eben über ssh im CIP mit Java 6.


Java 1.6 ist für PFP interressant weil sie da in dem concurent package einiges effizienter und korrekter gemacht haben :slight_smile:


Naja gut, dann halt doch mit vim über ssh im CIP arbeiten :slight_smile:

Das einzige, was man von Eclipse her vielleicht vermissen könnte wäre Refactoring und Auto-Import, ansonsten funktioniert es aber ganz gut. Wenn man [m]makeprg[/m] und [m]efm[/m] richtig setzt, kann man auch ganz einfach quickfix benutzen ([m]:help quickfix[/m], [m]:help errorformat-javac[/m]).


http://docs.info.apple.com/article.html?artnum=307403


Die haben doch mitgelesen, oder? :wink:


Na klar, Apple hört auf die Bedürfnisse seiner Nutzer :heart: