## page was renamed from Fortran/ifort [[Getestet(warty,hoary,breezy)]] {{{#!Wissen * [1]: [:Terminal: Ein Terminal öffnen] * [2]: [:Pakete_installieren: Software installieren] }}} [[TableOfContents(3)]] = 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 ein eigenes deb Paket gebaut, so dass sich die Software leicht wieder entfernen lässt. == Benötigte Software == Um aus den RPMs von Intel(R) Ubuntu-Pakete erstellen zu können muss die folgende Software installiert[2] werden: * '''alien''' * '''rpm''' == 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: [http://www.intel.com/cd/software/products/asmo-na/eng/compilers/flin/219857.htm 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. === Dateien entpacken === Das heruntergeladene Paket '''l_fc_p*.tar.gz''' ist im Terminal[1] zu entpacken {{{#!Befehl tar -xvzf l_fc_p*.tar.gz }}} Nach dem entpacken findet sich im aktuellen Verzeichnis ein neues Unterverzeichnis namens '''l_fc_p_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 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. Dies lässt sich durch ein: {{{#!Befehl sudo alien --to-deb -g intel-ifort9*.i386.rpm }}} erreichen. Es werden zwei neue Unterverzeichnisse angelegt: * '''intel-ifort9-9.0''' Enthält die Daten, die '''alien''' aus dem RPM-Paket erstellt hat. * '''intel-ifort9-9.0.orig''' Enthält die original Daten aus dem RPM-Paket. Nun in das neu angelegte Verzeichnis '''intel-ifort9-9.0''' wechseln. {{{#!Warnung Wichtig: Die im folgenden beschriebenen Aktionen werden alle in diesem Verzeichnis und mit root-Rechten ausgeführt! }}} Dass heißt entweder man öffnet ein Root-Terminal[1] und wechselt in das Verzeichnis oder es ist allen Befehlen ein '''sudo''' voranzustellen. === Dateien an ihren Platz schieben === Die im RPM-Paket vorgeschlagene Verzeichnisstruktur ist für Ubuntu suboptimal. In dieser Anleitung werden alle Dateien in '''/usr/local''' geschoben. Dort werden die Executables und Libraries standardmässig gefunden, und sind dennoch "aus dem Weg". Dies macht es jedoch notwendig den '''/usr/local/lib''' Pfad eurem 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. {{{#!Text mkdir -p usr/local/bin mkdir -p usr/local/share/doc/fc/9.0 mkdir -p usr/local/include mkdir -p usr/local/lib mkdir -p usr/local/man/man1 rm -f opt/intel/fc/9.0/bin/uninstall.sh mv opt/intel/fc/9.0/bin/* usr/local/bin mv opt/intel/fc/9.0/doc usr/local/share/doc/fc/9.0 mv opt/intel/fc/9.0/include/* usr/local/include mv opt/intel/fc/9.0/lib/* usr/local/lib mv opt/intel/fc/9.0/licenses usr/local/share/doc/fc/9.0 mv opt/intel/fc/9.0/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 einfügen: {{{#!Befehl cp Pfad_zur_Lizenz/*_for_l_*.lic usr/local/share/doc/fc/9.0/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: {{{#!Text sed -i -e 's/\/licenses/\/usr\/local\/share\/doc\/fc\/9.0\/licenses/g' \ -i -e 's/\/bin/\/usr\/local\/bin/g' \ -i -e 's/\/lib/\/usr\/local\/lib/g' usr/local/bin/ifc sed -i -e 's/\/include/\/usr\/local\/include/g' usr/local/bin/ifc.cfg sed -i -e 's/\/licenses/\/usr\/local\/share\/doc\/fc\/9.0\/licenses/g' \ -i -e 's/\/bin/\/usr\/local\/bin/g' \ -i -e 's/\/lib/\/usr\/local\/lib/g' usr/local/bin/ifort sed -i -e 's/\/include/\/usr\/local\/include/g' usr/local/bin/ifort.cfg sed -i -e 's/\/licenses/\/usr\/local\/share\/doc\/fc\/9.0\/licenses/g' \ -i -e 's/\/bin/\/usr\/local\/bin/g' \ -i -e 's/\/lib/\/usr\/local\/lib/g' \ -i -e 's/\/man/\/usr\/local\/man/g' usr/local/bin/ifortvars.csh sed -i -e 's/\/licenses/\/usr\/local\/doc\/fc\/9.0\/licenses/g' \ -i -e 's/\/bin/\/usr\/local\/bin/g' \ -i -e 's/\/lib/\/usr\/local\/lib/g' \ -i -e 's/\/man/\/usr\/local\/man/g' usr/local/bin/ifortvars.sh sed -i -e 's//l_fc_p_9\.0\.021/' \ usr/local/share/doc/fc/9.0/doc/fsupport }}} === Das Ubuntu-Paket bauen === Noch einmal sicherstellen, dass die Dateien alle root gehören: {{{#!Befehl sudo chown -R root:root usr/ }}} 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: {{{#!Befehl sudo dpkg-buildpackage -us -B }}} im Terminal[1] bauen. Dadurch entsteht im übergeordneten '''ifort''' Verzeichnis ein passendes Ubuntu Paket, dass sich wie gewöhnlich installieren und deinstallieren lässt. === Nach der Installation === ''(Nicht mehr im Verzeichnis intel-ifort9-9.0)'' Falls der Compiler in ein eigenes Verzeichnis installiert wurde, so bietet es sich an, die Position allgemein bekannt zu machen: {{{#!Befehl sudo sh -c 'echo "source /usr/local/bin/ifortvars.sh" >> /etc/profile' }}} Wurde die Lizenzdatei von intel nicht bereits in das Paket aufgenommen, so muss es nun noch an die passende Stelle kopiert werden: {{{#!Befehl cp Pfad_zur_Lizenz/*_for_l_*.lic /usr/local/share/doc/fc/9.0/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: {{{#!Befehl 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 durch: {{{#!Befehl sudo alien --to-deb -g intel-iidb9*.i386.rpm }}} erreicht. Es werden zwei neue Unterverzeichnisse angelegt: * ''intel-iidb9-9.0'' Enthält die Daten, die ''alien'' aus dem rpm Paket erstellt hat. * ''intel-iidb9-9.0.orig'' Enthält die original Daten aus dem rpm Paket. Nun in das neu angelegte Verzeichnis '''intel-iidb9-9.0''' wechseln. {{{#!Warnung Wichtig: Die im folgenden beschriebenen Aktionen werden alle in diesem Verzeichnis und mit root-Rechten (sudo) ausgeführt! }}} === 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. {{{#!Text mkdir -p usr/local/bin mkdir -p usr/local/share/doc/idb mkdir -p usr/local/man/man1 rm -f opt/intel/idb/9.0/bin/uninstall.sh mv opt/intel/idb/9.0/bin/* usr/local/bin mv opt/intel/idb/9.0/doc usr/local/share/doc/idb mv opt/intel/idb/9.0/man/man1/* usr/local/man/man1 rm -rf opt }}} === Debugger konfigurieren === Folgende Schritte passen den Debugger an die Ubuntu-Umgebung an: {{{#!Text sed -i -e 's/\/licenses/\/usr\/local\/share\/doc\/fc\/9.0\/licenses/g' \ -e 's/\/bin/\/usr\/local\/bin/g' \ -e 's/\/man/\/usr\/local\/man/g' usr/local/bin/idbvars.csh sed -i -e 's/\/licenses/\/usr\/local\/share\/doc\/fc\/9.0\/licenses/g' \ -e 's/\/bin/\/usr\/local\/bin/g' \ -e 's/\/man/\/opt\/man/g' usr/local/bin/idbvars.sh sed -i -e 's//l_fc_p_9\.0\.021/' \ usr/local/share/doc/idb/doc/idbsupport }}} === Das Paket bauen und Installation === 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''' ab, das in den '''universe''' Paketquellen zu finden ist. ---- ["Kategorie/Programmierung"]