Dumm gelaufen…

In meiner Arbeitsgruppe bin ich vor allem als Programmiererin tätig. Es war für mich damals ein gewagter Schritt, die Stelle anzunehmen, da ich vorher nur mit C und Fortran gearbeitet hatte und keine Ahnung von Python hatte. Ich habe mich mit der neuen Sprache doch relativ schnell abgefunden und gelernt, wie mein Vorgänger zu programmieren, da ich an seinem Projekt weiter arbeiten musste. Inzwischen ist mir klar geworden, dass er selber Python nicht so gut beherrschte und teilweise sehr suboptimale Lösungswege benutzt hat. Die jetzt zu verbessern würde so viel Zeit kosten, dass es mir besser erscheint, das Programm komplett umzuschreiben. Aber darum geht’s heute nicht.

Ich war damals nicht nur in Python eine Anfängerin, sondern auch im Umgang mit Linux. In meinem früheren Institut hatten wir nur Windows benutzt. Ja, während meiner Diplomarbeit musste ich mit Unix arbeiten. Da waren aber schon mehr als fünfzehn Jahre vergangen. Ich konnte mich gerade noch an die Befehle cd und ls erinnern. Und tail -f, warum auch immer. Es gab vieles nachzuholen. Dazu gehört ein großer Dank an meinem IT-Kollegen.

Es war für mich also schon ein bisschen beängstigend, als Uschi mich nicht mal ein halbes Jahr nach meiner Einstellung gefragt hatte, mich um die Aktualisierung der wissenschaftlichen Programme auf unserem Server zu kümmern. „Was, im Ernst jetzt? Aber ich verstehe nur Bahnhof, ich mache sicherlich nur alles kaputt…“ habe ich in dem Moment gedacht. Uschi war scheinbar der Meinung, da ich programmiere, kann ich alles. Und: Es klappt doch. Nochmal Danke für die Hilfe an meinem IT-Kollegen.

Vor Kurzem habe ich für mein wissenschaftliches Projekt eine Software A benutzt. Sie war mit meinen Daten nicht ganz zufrieden und ist bei einem bestimmten Schritt immer wieder mit der gleichen Fehlermeldung abgestürzt. Ich habe einen Autor von A kontaktiert, der mir empfohlen hatte, die allerletzte Entwicklungsversion zu installieren. Das habe ich gemacht. Es hat sich gelohnt, das Problem wurde behoben und ich konnte weiter arbeiten. Da diese Software von vielen Personen mit verschiedenen Zugriffsrechten benutzt wird, habe ich sie mit einem begrenzten Konto getestet. Darauf hatte Uschi immer großen Wert gelegen. Es lief ohne Problem. Ich habe die Aktualisierung von A in unseren internen Dokumenten protokolliert und bin später nach Hause gegangen.

Am nächsten Tag musste ich woanders als in meinem Büro arbeiten. Am frühen Vormittag habe ich eine Email von Winfried bekommen, weil ein Programm B für die Steuerung von einem Gerät nicht mehr funktionierte. Es gab eine Python-Ausnahme, gefolgt von der Fehlermeldung error while loading shared libraries: requires glibc 2.5 or later dynamic linker env: Command not found. Die Ausnahme kam aus dem von mir aktualisierten Programm (A ist in Python geschrieben). Warum die Aktualisierung von A ein solches Problem für Software B verursachen soll, die eigentlich gar nichts mit A zu tun hat, war mir ein Rätsel.

Mein IT-Kollege hat die Ursache vom Problem schnell identifiziert und beheben können. Ich hatte beim Aktualisieren von A die Kopie der alten Version behalten, daher konnte man den Pfad in der allgemeinen .bashrc Datei einfach zurück setzen. Das Gerät konnte dadurch wieder gesteuert werden. Winfried klang in seiner Email trotzdem ziemlich geärgert, weil ich angeblich A aktualisiert und das Büro verlassen hätte, ohne mich darum zu kümmern, A vorher zu testen und die Aktualisierung zu protokollieren. Das fand ich hart, weil ich es doch alles getan hatte. Ein Blick in unseren Dokumenten hätte gereicht, um Bescheid zu wissen. Ich habe ihm geantwortet, mit Verweis auf mein für alle in der Arbeitsgruppe zugängliches Protokoll.

Bei unserem Montagsmeeting kam das Problem zur Diskussion. Inzwischen hatte Winfried eingesehen, dass ich doch alles richtig gemacht hatte. Er hat dabei Mr Keen ausdrücklich angestarrt, als er langsam betonte, dass ich kein Fehler gemacht hatte. Mr Keen hat wohl anscheinend keine Zeit verloren, um über mich zu lästern, als ich abwesend war. Dass ich ihn nicht leiden kann ist offensichtlich nicht unbegründet, obwohl ich mein Bestes tue, um es mir nicht anmerken zu lassen. Das ist äußerst schwierig.

Ich habe nach dem Meeting nochmal versucht, das Problem zu reproduzieren, um es zu verstehen. Ich habe dabei gelernt, dass der Befehl, um die Software B zu starten, nicht einfach B ist, sondern, durch ein Alias, ssh -X steuerung.pc.von.geraet; B. Beim ssh wird die .bashrc Datei ausgeführt. Drin steht der Befehl source neue_A_Version, wie von den Entwicklern von A empfohlen. Der Rechner steuerung.pc.von.geraet ist aber alt, und damit gewährleistet wird, dass B immer funktioniert, hat mein IT-Kollege beschlossen, dass keine Linux-Update drauf laufen sollen. Seit Jahren. Unter anderen ist die Bibliothek glibc 2.5 nicht installiert, die A neuerdings braucht. Wenn ich auf steuerung.pc.von.geraet den Befehl source neue_A_Version eingebe, bekomme ich die gleiche Fehlermeldung. Die ist anscheinend so gravierend, dass danach einfache Linux-Befehle nicht mehr funktionieren. Selbst beim ls kriegt man dann die Meldung Command not found.

Ob es so sinnvoll ist, eine uralte Version von einem Betriebssystem zu behalten, nur damit B läuft, obwohl B von meinem IT-Kollegen entwickelt wird, bezweifle ich stark. Vor allem, wenn wir dadurch auf die neuesten Versionen von wissenschaftlichen Programmen verzichten müssen. Eine Lösung wäre jetzt, mit Hilfe von einem Alias den Befehl A durch source neue_A_Version; A in der .bashrc Datei zu ersetzen. Da steuerung.pc.von.geraet für die Ausführung von A nie benutzt wird, sollte es klappen.


Dieser Beitrag ist ursprünglich auf Meckereien & Co. erschienen.

Werbeanzeigen

Ein Gedanke zu “Dumm gelaufen…

Teile deine Meinung mit, aber nur, wenn du mit der Überprüfung und Speicherung deiner hier eingegebenen Daten und IP-Adresse zum Zweck der Spamvermeidung durch das Programm Akismet in den USA einverstanden bist! Solltest du damit nicht einverstanden sein, bitte ich dich, auf das Schreiben eines Kommentares zu verzichten.

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Google Foto

Du kommentierst mit Deinem Google-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.