Schlagwort-Archive: Installer

thematrix

Linux ist heutzutage wirklich außerordentlich benutzerfreundlich und intuitiv. Ihr müsst eigentlich nur mal kurz das Terminal aufmachen und diesen einen (gar nicht mal soooo langen) Befehl eintippen, den ihr euch im ganzen Leben nicht merken könnt. Und dann nur noch zwei oder drei weitere Befehle, und dann müsst ihr normalerweise nur noch den Nippel durch die Lasche ziehen und dann im Internet nachschauen wie man diesen einen Fehler behebt, und dann habt ihr es fast geschafft ein ganz normales Programm zu installieren. Kaum der Rede wert, so einfach ist das.

Ich habe mir mal zum Herumspielen Linux Mint 18 in einer VM installiert, also die womöglich beliebteste Linux-Distribution der letzten Jahre. Das hat sogar fast problemlos geklappt. So ist Linux im Jahr 2016: Es klappt immer fast problemlos. Man muss eigentlich nur in vier oder fünf Linux-Foren vorbeischauen, und jemanden finden, der irgendwann mal dieselben Probleme und dieselben Fehlermeldungen hatte wie man selbst, dann geht das schon irgendwie. So hat sich Linux gleich nach der Installation komplett aufgehängt, und ich habe mit zusammengebissenen Zähnen und viel bescheuertem Herumsuchen den Soundtreiber dazu bekommen, mal endlich Ton unter Linux abzuspielen. Ton unter Linux – wie das klingt, der reine Wahnsinn! Am Ende laufen vielleicht sogar noch Spiele unter Linux – sogar mit Grafik! Ihr werdet es bestimmt noch erleben!

So untersuchte ich staunend die tolle Benutzeroberfläche meines brandneuen Betriebssystems und wollte mir mal ein paar Programme installieren, um damit zu arbeiten. Als erstes fiel mir ein, dass ich gerne eine Linux-Alternative zum grandiosen Notepad++ hätte. Einen brauchbaren Linux-Klon gibt es wohl unter dem Namen „Notepadqq“. Den werde ich mir mal eben kurz installieren, so dachte ich jedenfalls. Also schnell die wundervolle Linux-Anwendungsverwaltung aufgemacht und „Notepadqq“ eingetippt. Und ich sah, dass ich nichts sah. Sehr nützlich diese Anwendungsverwaltung. Auf die Verlässlichkeit von Linux ist offenbar Verlass. Kein Problem, der Firefox ist ja praktischerweise vorinstalliert: Ich lade mir Notepadqq einfach von der Webseite runter. Dort steht unter „Install Notepadqq in Ubuntu 14.04 and Linux Mint 17„:

For Ubuntu and Ubuntu based Linux distributions such as Linux Mint, Elementary OS, PinguyOS there is a PPA available from the developers. Open the terminal and use the following commands:

sudo add-apt-repository ppa:notepadqq-team/notepadqq
sudo apt-get update
sudo apt-get install notepadqq

Hey, ich hatte wirklich schon die Befürchtung, ich müsste mir erst umständlich per Mausklick irgendeinen Installer herunterladen und dann darauf auch noch doppelklicken. Aber Linux zeigt konsequent wie es richtig geht. Und das ist noch gar nicht alles! Um das Tool wieder zu deinstallieren muss ich nicht erst umständlich in der Softwareverwaltung bei Notepadqq auf „Deinstallieren“ klicken – NEIN! Ich muss einfach nur folgende zwei Zaubersprüche in die Konsole hämmern und schon gehts los:

sudo apt-get remove notepadqq
sudo add-apt-repository –remove ppa:notepadqq-team/notepadqq

Das kann sogar meine Oma. Am besten schreibt man sich diese Befehle irgendwo ins Notizbuch oder klebt sich Post-Its an den Monitor. So geht das unter Linux. Da kann sich jeder wie der größte Hacker fühlen. Ich frage mich gerade, wie man unter Linux die Uhr umstellt. Wahrscheinlich irgendwie so:

sudo set-os-clock-configuration –time+date format:YYYY-MM-DD_HH:mm:SS/2016-09-17_11:18:22 -persist update
sudo clock-configuration change confirm -silent kthxbye
sudo sudo sudo kamehameha

Linux…

Ich weiß nicht ob das typisch für mich ist, dass ich das neue Jahr mit einem Rant einleite, aber zeitlich ist es jedenfalls nicht beabsichtigt. Ich wasche meine Hände in Unschuld. Zunächst also ein frohes neues Jahr. Die tollen, freundlichen Beiträge kommen alle noch die Tage. Wieder einmal habe ich die Hoffnung, dass dieser Artikel all jenen hilft, die mit einem ähnlichen Problem konfrontiert werden. Das Programmiererleben ist sicherlich vieles, aber gewiss nicht einfach.

Vergangene Woche war ich in der Situation eine portable Version einer Solaris JVM (Java Virtual Machine) aktualisieren zu dürfen. Die bisherige Version des JDK6 war leider veraltet und brachte regelmäßig Segmentation Faults im Dauerbetrieb zustande. Ein neueres Update (1.6.0 Update 38) sollte hoffentlich stabiler laufen. Mit einer portablen Version ist eine Java-Installation gemeint, die man einfach auf dem Zielsystem in ein Verzeichnis seiner Wahl entpackt und die sofort (und vor allem ohne betriebssystemabhängige Installation) lauffähig ist. Aus diesem Grund wollte ich mir eine solche Version von Oracle herunterladen. Das war aber schon das erste Problem: Oracle ist nämlich ziemlich scheiße.

Oracle bietet (jedenfalls für Java 6) keine portablen JDKs zum Entpacken an – nur Installer. Da ich auf dem Zielsystem aber keine Installationsprogramme ausführen kann/darf/will, ist das selbstverständlich keine Alternative, zumal ich ja wusste, dass Java problemlos portabel ausführbar ist. Eine Installation ist daher gar nicht nötig. Kurzerhand musste ich also kreativ werden und basteln. Ich wollte den doofen Installer umgehen und die Dateien von Hand extrahieren. Das war gar nicht so schwierig wie ich dachte. Mein Werk wollte ich im Vorbeigehen kurz an einer Client-Anwendung testen, als beim Starten der JVM eine wilde Fehlermeldung erschien:

Error occurred during initialization of VM
java/lang/NoClassDefFoundError: java/lang/Object

Soso, sehr interessant. Die JVM kann die Klasse java.lang.Object nicht finden. Wenn diese Klasse fehlt, dann fehlt praktisch alles. Ein freundliches Google teilte mir mit, dass es vermutlich mit einer fehlenden Datei rt.jar im Verzeichnis /jre/lib/ zusammenhängt. Tatsächlich, diese Datei gab es dort nicht. Ist Oracle wirklich so bescheuert und liefert ein unvollständiges, nicht lauffähiges JDK aus? Ist das die Strafe dafür, dass ich den Installer übergangen habe?

Ist es. Denn der Installer hat zudem die Aufgabe, die rt.jar aus einer gepackten Datei namens rt.pack auszupacken, und diverse weitere Dateien:

./lib/tools.pack
./jre/lib/charsets.pack
./jre/lib/jsse.pack
./jre/lib/deploy.pack
./jre/lib/javaws.pack
./jre/lib/plugin.pack
./jre/lib/rt.pack
./jre/lib/ext/localedata.pack

Warum das so ist, weiß nur der Teufel. Platzersparnis bringt es gegenüber dem umliegenden Archiv keine. Es ist wahrscheinlich reine Schikane. Manche behaupten auch, das wäre ein Mechanismus, um sicherzustellen, dass niemand den Installer umgeht, da dieser ja zum Akzeptieren der AGB auffordert. Zum Glück gibt es die mitgelieferten Java-Tools pack200 und unpack200. Mit deren Hilfe kann man die JAR-Dateien aus den PACK-Dateien befreien – sogar über verschiedene Betriebssysteme hinweg. Und dann klappt das auch wieder mit der JVM.

Seit diesem Tag hasse ich Oracle wieder ein bisschen mehr, und ich bin ein bisschen weiser geworden. In meinen Augen eine echte Schweinerei. Portable Versionen sind super und hinterlassen weniger Spuren. Wenn man weiß was man tut, und wenn man in der Lage ist, sich selbst um die richtigen Pfadangaben zu kümmern, dann hat ein portables Java viele Vorteile, vor allem wenn man viele homogene Systeme unter seiner Obhut hat.

Quellen:
http://www.cynosurex.com/Forums/DisplayComments.php?file=Java/Finding_rt.jar_in_JRE_5.0_Update_9
http://tntit.blogspot.de/2012/04/linux-jdk-6-installation-hard-way.html
http://turbolinux.org/2011/05/error-occurred-during-initialization-of-vm-javalangnoclassdeffounderror-javalangobject/
http://stackoverflow.com/questions/1619662/where-can-i-get-the-latest-jre-jdk-as-a-zip-file-i-mean-no-exe-installer

Gestern noch fragte mich ein Freund, ob ich ihm bei einem Problem mit einem alten Spiel weiterhelfen könne. Es ging darum, dass Anstoss 3 unter Windows Vista aus irgendeinem Grund nicht lief, unter Windows 7 aber interessanterweise schon. Auf die Schnelle konnten wir auch keine Lösung finden. Heute hatte ich selbst ein ganz ähnliches Problem: Ich wollte den Rollenspielklassiker Baldur’s Gate unter Windows 7 installieren, aber der Installer zeigte sich einfach nicht.

Ich finde es absolut nachvollziehbar, warum man alte Spiele auch heute noch (auf modernen Betriebssystemen) installieren will, denn nur weil sie alt sind, sind sie nicht automatisch schlecht. Aber das ist eben ein sehr weites Feld und darauf will ich jetzt auch nicht so genau eingehen. Jedenfalls war ich eben einfach in der Stimmung für das Spiel, und da ist es nicht besonders hilfreich, wenn schon das Installationsprogramm seinen Dienst verweigert.

Wenn die DVD eingelegt wird, erscheint das Autostartmenü – soweit funktioniert alles noch. Das Installieren klappt aber nicht. Laut Taskmanager läuft die Setup.exe im Hintergrund, sie zeigt sich aber nicht. Laut einem Forenbeitrag soll nach etwa zehn Minuten dennoch eine Fehlermeldung erscheinen, aber so lange habe ich nicht gewartet. Auf zwei Rechnern mit Windows 7 x64 bestand das Problem. Auf meinem Notebook mit Windows 7 x86 klappte es dann doch. Meine Vermutung ist also, dass das Installationsprogramm von Baldur’s Gate die 64-Bit-Umgebung nicht verträgt. Auch der Kompatibilitätsmodus kann dagegen nichts machen.

Es gibt trotzdem eine Lösung für das Problem: Baldur’s Gate lässt sich im abgesicherten Modus von Windows 7 problemlos installieren. Anschließend ist es sogar ganz normal spielbar. Alternativ kann man das Spiel auf einem x86-Windows installieren und auf das x64-System kopieren. Wegen der Pfade muss man dann eben aufpassen und gegebenenfalls die Baldur.ini-Datei anpassen.

Ein weiteres Problem besteht, sobald man ein Multiplayer-Spiel über TCP/IP erstellen will. Der Bildschirm wird schwarz und der Spieler kann nichts mehr sehen, obwohl das Spiel ganz normal weiterläuft. Andere Personen können dem eröffneten Spiel sogar beitreten. Auch hier hat der Kompatibilitätsmodus in keiner Einstellungskonstellation irgendwie helfen können. Im Gegenteil: Baldur’s Gate startet offenbar mit den Win95/98/ME-Einstellungen erst gar nicht. Dieses Problem kann man aber trotzdem umgehen, indem man Baldur’s Gate mit ALT+Enter im Fenstermodus spielt.

Andere Schwierigkeiten sind mir bis jetzt noch nicht begegnet. So wünsche ich nun jedem Rollenspielfan und Retrospielegenießer ein beschwerdefreies Spieleerlebnis. Und falls es doch mal soweit kommen sollte, dass sich Baldur’s Gate in naher Zukunft weder installieren noch spielen lassen wird, mit GemRB gibt es inzwischen eine Open-Source-Reimplementation der Infinity Engine von Bioware, die kompatibel mit praktisch allen entsprechenden Spielen sein soll, wenn auch noch nicht hundertprozentig an allen Ecken. Sogar auf Smartphones lässt sich Baldur’s Gate damit spielen. Hat mit der Software jemand Erfahrungen gemacht?