ubuntuusers.de

Ifort

Archivierte Anleitung

Dieser Artikel wurde archiviert. Das bedeutet, dass er nicht mehr auf Richtigkeit überprüft oder anderweitig gepflegt wird. Der Inhalt wurde für keine aktuell unterstützte Ubuntu-Version getestet. Wenn du Gründe für eine Wiederherstellung siehst, melde dich bitte in der Diskussion zum Artikel. Bis dahin bleibt die Seite für weitere Änderungen gesperrt.

Artikel für fortgeschrittene Anwender

Dieser Artikel erfordert mehr Erfahrung im Umgang mit Linux und ist daher nur für fortgeschrittene Benutzer gedacht.

Pakete installieren

Folgendes Paket muss installiert [1] werden:

  • build-essential

Intel(R) Fortran 9 installieren

Der Intel(R) Fortran Compiler 9 steht für den nicht kommerziellen, akademischen und bildenden Gebrauch unter Linux kostenlos zur Verfügung. Leider existiert der Compiler nur in Form eines RPM-Paketes. Auf dieser Seite soll beschrieben werden, wie der Compiler dennoch unter Ubuntu installiert werden kann. Dazu wird mittels Alien ein eigenes Deb-Paket gebaut, so dass sich die Software leicht wieder entfernen lässt.

Diese Anleitung wurde unter Verwendung der Version 9.1.040 erstellt. Für andere Versionen ist das Vorgehen ähnlich, kann aber in Details abweichen.

Vorbereitende Schritte

Bevor mit der eigentlichen Arbeit begonnen werden kann, müssen einige Schritte zur Vorbereitung unternommen werden.

Compiler herunterladen

Der Compiler kann von Intel hier: Intel Fortran 🇬🇧 heruntergeladen werden. Dort muss eine E-Mail-Adresse hinterlassen werden, an diese wird eine Lizenzdatei geschickt, ohne die der Compiler nicht funktionieren wird. Das heruntergeladene Paket entpackt man einfach [5] und erhält einen Ordner namens l_fc_version.

Arbeitsumgebung vorbereiten

Am besten legt man sich nun an passender Stelle ein Arbeitsverzeichnis ifort an. Hier wird nur die i386 Architektur behandelt, für die übrigen in dem Paket enthaltenen sind aber im Prinzip die gleichen Schritte nötig. Im oben entpackten Verzeichnis finden sich im Unterverzeichnis data/ diverse Pakete (*.rpm), die die zu installierende Software enthalten. Der Compiler für die i386 Architektur findet sich in der Datei intel-ifort9-Version.i386.rpm. Der Debugger in intel-iidb9-Version.i386.rpm. Diese beiden Dateien werden nun in das frisch angelegte Verzeichnis ifort kopiert. Anschließend wechselt man in dieses ifort Verzeichnis.

Compiler installieren

Zunächst wird der Compiler, der im rpm-Format vorliegt, entpackt und zugleich eine passende Debian-Struktur angelegt, das heißt die Konvertierung mit alien [6] muss mit einem Zwischenschritt erfolgen.

Durch die Verwendung der Option -g von alien werden zwei neue Unterverzeichnisse angelegt:

  • intel-ifort9-Version enthält die Daten, die Alien aus dem RPM-Paket erstellt hat.

  • intel-ifort9-Version.orig enthält die original Daten aus dem RPM-Paket.

Nun in das neu angelegte Verzeichnis intel-ifort9-Version wechseln.

Achtung!

Wichtig: Die im folgenden beschriebenen Aktionen mit root-Rechten ausgeführt! Das heißt entweder man öffnet ein Root-Terminal [1] und wechselt in das Verzeichnis oder es ist allen Befehlen ein sudo voranzustellen. Zusätzlich ist es wichtig, dass man sich im Verzeichnis intel-ifort9-9.0 befindet.

Dateien an ihren Platz schieben

Die im RPM-Paket vorgeschlagene Verzeichnisstruktur ist für Ubuntu nicht optimal. In dieser Anleitung werden alle Dateien in /usr/local geschoben. Dort werden die Executables und Libraries standardmäßig gefunden, und sind dennoch "aus dem Weg". Dies macht es jedoch notwendig den /usr/local/lib Pfad dem Linker später bekannt zu machen. Das lässt sich vermeiden, indem usr/local/lib durch usr/lib ersetzt wird. Falls die Software in andere Pfade installiert werden soll, müssen die Skripte entsprechend angepasst werden. Wichtig: Bei den unten angegebenen Befehlen ist unbedingt darauf zu achten, dass die Versionsnummer (nach opt/intel/fc) zu der heruntergeladenen Version passt. Am besten ist es im opt/intel/fc/ Verzeichnis nachzuschauen, wie genau die Versionsbezeichnung lautet.

Achtung!

Die Angaben bzgl. usr/local und opt sind kein Schreibfehler und es ist wichtig, dass man den unter Umständen gewohnten führenden Slash / weglässt. Die unten stehenden Verzeichnisse sind so im ifort-Verzeichnis gegeben und beziehen sich nicht auf das Root-System!

mkdir -p usr/local/bin
mkdir -p usr/local/share/doc/fc/9.1
mkdir -p usr/local/include
mkdir -p usr/local/lib
mkdir -p usr/local/man/man1
rm -f opt/intel/fc/9.1.040/bin/uninstall.sh
mv opt/intel/fc/9.1.040/bin/* usr/local/bin
mv opt/intel/fc/9.1.040/include/* usr/local/include
mv opt/intel/fc/9.1.040/lib/* usr/local/lib
mv opt/intel/fc/9.1.040/doc usr/local/share/doc/fc/9.1
mv opt/intel/fc/9.1.040/samples usr/local/share/doc/fc/9.1
mv opt/intel/fc/9.1.040/licenses usr/local/share/doc/fc/9.1
mv opt/intel/fc/9.1.040/man/man1/* usr/local/man/man1
rm -rf opt 

Lizenzdatei in Paket aufnehmen

Falls das erstellte Ubuntu-Paket nicht weitergegeben werden soll und die Lizenzdatei beim Deinstallieren ebenfalls entfernt werden soll, kann nun die Lizenzdatei, die per Mail von Intel(R) gekommen ist, an die passende Stelle eingefügt werden:

cp Pfad_zur_Lizenz/*_for_l_*.lic usr/local/share/doc/fc/9.1/licenses 

Compiler konfigurieren

Schließlich müssen noch einige Dateien angepasst werden. Es muss dort überall der richtige Pfad zu den einzelnen Komponenten eingetragen werden. Das wird durch folgende Schritte erreicht:

sed -i -e 's|<INSTALLDIR>/licenses|/usr/local/share/doc/fc/9.1/licenses|g' \
        -i -e 's|#!/bin/sh|#!/bin/bash|g' \
        -i -e 's|<INSTALLDIR>/bin|/usr/local/bin|g' \
        -i -e 's|<INSTALLDIR>/lib|/usr/local/lib|g' usr/local/bin/ifc
sed -i -e '1a export LC_ALL=C' usr/local/bin/ifc
sed -i -e 's|<INSTALLDIR>/licenses|/usr/local/share/doc/fc/9.1/licenses|g' \
        -i -e 's|#!/bin/sh|#!/bin/bash|g' \
        -i -e 's|<INSTALLDIR>/bin|/usr/local/bin|g' \
        -i -e 's|<INSTALLDIR>/lib|/usr/local/lib|g' usr/local/bin/ifort
sed -i -e '1a export LC_ALL=C' usr/local/bin/ifort
sed -i -e 's|<INSTALLDIR>/licenses|/usr/local/share/doc/fc/9.1/licenses|g' \
        -i -e 's|<INSTALLDIR>/bin|/usr/local/bin|g' \
        -i -e 's|<INSTALLDIR>/lib|/usr/local/lib|g' \
        -i -e 's|<INSTALLDIR>/man|/usr/local/man|g' usr/local/bin/ifortvars.csh
sed -i -e 's|<INSTALLDIR>/licenses|/usr/local/doc/fc/9.1/licenses|g' \
        -i -e 's|<INSTALLDIR>/bin|/usr/local/bin|g' \
        -i -e 's|<INSTALLDIR>/lib|/usr/local/lib|g' \
        -i -e 's|<INSTALLDIR>/man|/usr/local/man|g' usr/local/bin/ifortvars.sh
sed -i -e 's/<installpackageid>/l_fc_c_9\.1\.040/' \
        usr/local/share/doc/fc/9.1/doc/fsupport 

Das Ubuntu-Paket bauen

Dann ist man endlich soweit, dass das Debian-Paket gebaut werden kann. Generell wäre es auch möglich, jetzt einfach das gesamte usr/ Unterverzeicheinis in das root / hineinzukopieren. Allerdings würde das eine Deinstallation erheblich erschweren. Dazu gibt es schließlich dpkg, und es ist auch nur eine Zeile bis zum komfortablen Ubuntu Paket:

Das .deb lässt sich durch:

sudo dpkg-buildpackage -us -B 

im Terminal bauen.

Dadurch entsteht im übergeordneten ifort Verzeichnis ein passendes Ubuntu Paket, dass sich wie gewöhnlich installieren und deinstallieren lässt [7].

Hinweis!

Fremdpakete können das System gefährden.

Nach der Installation

Falls der Compiler in ein eigenes Verzeichnis installiert wurde, so bietet es sich an, die Position allgemein bekannt zu machen. Hierzu öffnet man die Datei /etc/profile in einem Editor mit Root-Rechten [4] und fügt die Zeile

source /usr/local/bin/ifortvars.sh

am Ende der Datei ein. Wurde die Lizenzdatei von Intel nicht bereits in das Paket aufgenommen, so muss es nun noch an die passende Stelle kopiert werden [3]:

cp Pfad_zur_Lizenz/*_for_l_*.lic /usr/local/share/doc/fc/9.1/licenses 

Wurde für die Libraries der Pfad unter /usr/local/lib wie beschrieben verwendet, so muss dieser Pfad noch dem Linker als Suchpfad bekannt gemacht werden. Dazu muss einfach der Pfad, in dem die Library-Dateien liegen in der Konfigurationsdatei /etc/ld.so.conf eingefügt werden und anschließend einmal ldconfig ausgeführt werden:

sudo ldconfig 

Debugger installieren

Die Installation des Debuggers folgt dem selben Schema wie die Installation des Compilers. Zunächst wird der Debugger, der im rpm-Format vorliegt, entpackt und zugleich eine passende Debian-Struktur angelegt. Dies wird im Terminal [3] durch

sudo alien -d -g intel-iidb9*.i386.rpm 

erreicht.

Es werden zwei neue Unterverzeichnisse angelegt:

  • intel-iidb9-Version enthält die Daten, die Alien aus dem rpm Paket erstellt hat.

  • intel-iidb9-Version.orig enthält die original Daten aus dem rpm Paket.

Nun in das neu angelegte Verzeichnis intel-iidb9-Version wechseln.

Achtung!

Wichtig: Die im folgenden beschriebenen Aktionen werden alle in diesem Verzeichnis und mit root-Rechten (sudo) ausgeführt! Und wieder darf man den gewohnten Slash / nicht mit anführen!

Dateien an ihren Platz schieben:

Sollte bei der Installation des Compilers andere als die oben angegebenen Pfade verwendet worden sein, sollten hier die dazu passenden Pfade verwenden.

mkdir -p usr/local/bin
mkdir -p usr/local/share/doc/idb
mkdir -p usr/local/man/man1
rm -f opt/intel/idb/9.1.040/bin/uninstall.sh
mv opt/intel/idb/9.1.040/bin/* usr/local/bin
mv opt/intel/idb/9.1.040/doc usr/local/share/doc/idb
mv opt/intel/idb/9.1.040/man/man1/* usr/local/man/man1
rm -rf opt 

Debugger konfigurieren

Folgende Schritte passen den Debugger an die Ubuntu-Umgebung an:

sed -i -e 's|<INSTALLDIR>/licenses|/usr/local/share/doc/fc/9.1/licenses|g' \
        -e 's|<INSTALLDIR>/bin|/usr/local/bin|g' \
        -e 's|<INSTALLDIR>/man|/usr/local/man|g' usr/local/bin/idbvars.csh
sed -i -e 's|<INSTALLDIR>/licenses|/usr/local/share/doc/fc/9.1/licenses|g' \
        -e 's|<INSTALLDIR>/bin|/usr/local/bin|g' \
        -e 's|<INSTALLDIR>/man|/opt/man|g' usr/local/bin/idbvars.sh
sed -i -e 's/<INSTALLTIMECOMBOPACKAGEID>/l_fc_p_9\.1\.040/' \
        usr/local/share/doc/idb/doc/idbsupport 

Das Paket bauen und Installation

Hinweis!

Fremdpakete können das System gefährden.

Das Debugger Paket wird genauso erstellt, wie bereits für den Compiler beschrieben. Abschließende Arbeiten nach der Installation sind nicht nötig, jedoch hängt der Debugger vom Paket

  • libxft1 (universe, [2])

ab, was ggf. zuvor installiert werden muss [1].


Diese Revision wurde am 19. März 2012 14:17 von aasche erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Programmierung