• In diesem Bereich findet ihr Tutorials und Reviews. Die Forenrechte zur Erstellung neuer Themen sind hier eingeschränkt, da Problemdiskussionen bitte in den übrigen Forenbereichen auf Apfeltalk zu führen sind. Wer ein Tutorial oder Review einstellen möchte, kann im Unterforum "Einreichung neuer Tutorials" ein neues Thema erstellen. Die Moderatoren verschieben den Beitrag dann in den passenden Bereich.
  • Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

[TUTORIAL] Terminal - Teil 5

  • Ersteller Hobbes_
  • Erstellt am

Hobbes_

Gast
Dies ist Teil 5 eines Tutorials zu Terminal

Inhalt
Teil 1
(0) Einleitung
(1) Das Programm
(2) Unix als System
(3) man
(4) Einige Befehle

Teil 2
(5) I/O-Redirection / Pipes und Wildcards / Regular Expressions
(6) Editoren vi/vim, Emacs und nano
(7) "Pimp my Terminal"

Teil 3
(7) "Pimp my Terminal" (Fortsetzung)
(8) User / Admin / Superuser

Teil 4
(8) User / Admin / Superuser (Fortsetzung)
(9) Wie komme ich zu UNIX-Programmen?

Teil 5
(9) Wie komme ich zu UNIX-Programmen? (Fortsetzung)

Teil 6
(10) Einige Unterschiede zwischen Darwin und anderen UNICES
(11) Weitere Informationen / Referenzen / Links
Dank

------

(9) Wie komme ich zu UNIX-Programmen? (Fortsetzung)

(9.1) fink (Fortsetzung)

(9.1.3) Programmpakete installieren
Nochmals zur Repetition: Fink zeigt seine Programm-Optionen direkt mit folgendem Befehl an:
$ fink

Von den Optionen selfupdate und update-all haben wir bereits Gebrauch gemacht.

Nach interessanten Programmen sucht man am besten auf der Fink Homepage - Package Database.

Wenn man den Paketnamen (oder dessen Anfang) kennt, kann man sich auch direkt in fink orientierten. Wir benutzen im Folgenden ein Paket mit der Basis fortune. Es ist ein Beispiel einer coolen Anwendung, welche jeweils einen zufällig ausgewählten Spruch auf den Shell-Bildschirm zaubert.
$ fink list fortune

Wichtig: je nachdem, welche Pakete wir ausgesucht haben (stable / unstable) erhalten wir unterschiedliche Resultate auf diese Anfrage. Auch hat fink selbst nicht dieselbe Version.
- stable: Zeigt uns ein vorhandenes Paket fortune-mod an, das noch nicht installiert ist (stable, fink Version 0.26): Dieses paket enthält das Programm und eine Spruch-Datenbank
- unstable: Wichtig dabei sind fortune-mod (Programm) und die Datenbanken mit den Sprüchen: fortunes (Standard), fortunes-de (deutsch), andere (Beschreibung); (fink hat aktuell auch Version 0.27 in unstable)

Wir können auch eine Beschreibung zum Paket ansehen:
$ fink desc fortune-mod
$ fink desc fortunes

Wenn wir uns entschieden haben, so können wir gleich mehrere Pakete miteinander installieren:
$ fink install fortune-mod fortunes fortunes-de

Fink zeigt uns an, welche Pakete installiert werden (und welche Pakete, zB. Bibliotheken zusätzlich noch dazu kommen). Grosse Programme benötigen jedoch viel Zeit. Dieses Programm ist zum Glück sehr kompakt.

Nach Erfolgreicher Installation kann das Programm mittels folgendem Befehl gestartet werden.
$ fortune

Dazu müssen müssen wir nicht mehr Admin sein. So empfehle ich wieder den Wechsel zurück zum normalen Benutzer-Account (wenn wir den Wechsel via su -l gemacht haben:
$ exit

Mit Hilfe von which (zur Info: man which :) ) können wir nachsehen, dass das Programm tatsächlich im Basisverzeichnis aller fink Programme installiert ist:
$ which fortune

Also in /sw/bin

Dies können wir uns zu Nutzen machen, indem wir unser Start-Script der bash anpassen. Gerne möchten wir doch einen coolen Spruch zum Start von bash sehen, nicht wahr?

Wir ergänzen also die Datei ~/.bash_profile im Benutzerverzeichnis jedes Benutzers, der diese Sprüche sehen soll, um folgende Zeile. Wir benutzen den Text-Editor unserer Wahl (die Antwort auf diese Frage sollte mittlerweile klar vim heissen :) )

Code:
[i]test -r /sw/bin/fortune && fortune[/i]

Erklärung: Die Zeile besteht aus zwei Teilen, die durch eine logische Verknüpfung && getrennt sind. Im ersten Teil wird kontrolliert, ob das Programm existiert mittels test -r. Der zweite Teil wird nur ausgeführt, wenn der erste keinen Fehlercode zurückgab (d.h. die Datei existiert).

Eigentlich sollte sich oberhalb unserer neuen Zeile auch die Konfigurationszeile von fink befinden
Code:
[i]test -r /sw/bin/init.sh && . /sw/bin/init.sh[/i]
Diese macht dasselbe wie unsere mit dem Unterschied, dass kein Programm, sondern ein Shell-Script gestartet wird. Diese werde ja mit dem voranstehenden . (Punkt: kleinster, jedoch mächtiger Befehl) gestartet.

Unsere ganze Konstruktion funktioniert natürlich erst beim ersten Login in die Shell.

Allgemeine Empfehlung: Selbstverständlich würde ich nur bei sehr gutem Grund ein Paket via fink installieren, welches es auch nativ für MacOS (mit Aqua) gibt (zB. mehr Funktionen). Dies kann in sehr speziellen Fragestellungen jedoch sehr wohl Sinn machen. Auch muss bedacht werden, dass das Compilieren von Programmen aus dem Quellcode auch bei schnellen Maschinen einige Zeit in Anspruch nehmen kann.


(9.2) MacPorts (von Tengu)

(9.2.1) Einleitung
Nehmen wir mal an Euklid hatte in Alexandria 2 Studenten. Beide haben von ihm 20 schwere Matheaufgaben (Algebra) erhalten, die sie bis zum morgen lösen sollen. Selbstverständlich gehen diese aber Abends lieber bei bei "Acubare" ordentlich einen Heben anstatt zu lernen. Und am nächsten morgen kurz vor der Schola fällt ihnen auf: "Meine Fresse..."

Eine schnelle Lösung muss her. Natürlich haben beide kein Geld und setzen voll auf OpenSource Software. Um die Aufgaben möglichst schnell zu lösen, müssen beide sich nun ein OpenSource CAS installieren. Ihre Wahl fällt auf CAS Maxima (keine Ahnung, wie die zu jener Zeit schon zu all diesen lateinischen Namen kamen :) ). Leider werden sie bei Fink, das sie auf ihrem Mac installiert haben nicht fündig. Emsig suchen sie weiter - und siehe da: Es gibt einen Port bei MacPorts. Wie sie den wohl installieren?

Beide haben nicht die Ahnung manuell zu kompilieren, wollen sich nicht mit den Spezialoptionen beschäftigen, die man kennen muss, wenn man ohne Port vorgeht. Vereinfachungen finden sie daher besonders gut.

(9.2.2) Allgemein
MacPorts, zuvor DarwinPorts genannt, ist eine Platform zur Portierung von UNIX-Programmen initial für das OpenDarwin-Projekt und nun nach Trennung von diesem Projekt nur noch für den Mac. Deshalb auch die Namensänderung.
Es ist im Endeffekt eine weitere Umgebung (wie Fink) um das manuelle Kompilieren zu ersparen und Portierungen auf Mac OS zu vereinfachen. Im Gegensatz zu Fink baut MacPorts nicht so sehr auf strikte Trennung vom restlichen OS, sondern integriert seine Programme enger in die übrige Mac Struktur.

(9.2.3) Und los...
Wir finden MacPorts Homepage mit zahlreichen Informationen hier.

Kommentar (psc): Wenigstens mir scheinen die Informationen weniger klar gegliedert zu sein wie im fink Projekt. Auch ist die Transition von DarwinPorts zu MacPorts noch nicht abgeschlossen (siehe unten). Deshalb habe ich auch einen externen Experten angeheuert, diesen Tutorial-Teil zu entwerfen :)

Tip: Damit die Installation nachher problemlos geht, empfehlen wir wie für fink bereits vorgängig zwei Pakete zu installieren.
  • X11 (für alle UNIX-Programme notwendig, die eine X-GUI haben): Installation von der originalen Mac-DVD und nachfolgend mittels Software-Aktualisierung schauen, ob es nicht eine neue Version gibt. Wichtig: Insbesondere unter Tiger darf nicht die online für ältere OS-Versionen erhältliche Version installiert werden.
  • Entwicklungsumgebung Xcode: Diese kanst Du zwar ebenso von der originalen Installations-DVD installieren. Besser jedoch holst Du Dir diese (genügend schnelles Internet vorausgesetzt) online direkt von Apple Developer Connection (ADC). Du kannst Xcode und auch zahlreiche andere Tools erst nach Registration downloaden. Es gibt jedoch eine kostenlose Registrationsmöglichkeit.

Dies ist der Link für das Basisverzeichnis zum Download des Programmpakets.

Wir wählen in diesem Dateiverzeichnis die neuste Version (aktuell MacPorts 1.4.0)
Dann wählen wir das .dmg Package, das unserer OS Version entspricht (10.3 oder 10.4).

Dieses Package enthält einen Installer, der MacPorts auf Deinem Computer installiert. Zu Beginn der Installation wird ein umfangreicher Text dargestellt (bitte lesen!). Es lohnt sich, diesen Text zu drucken, oder wenigstens zu speichern, da in diesem Text genau erklärt wird, welche Modifikationen die Installationsroutine an den Umgebungsvariablen macht (Erweiterung path) und wie das Programm dann aufgerufen wird.

Wie gewohnt wird dieses Programm als Administrator installiert.

Danach steht uns in der Shell ein neuer Befehl port zur Verfügung. Wie gewohnt, holen wir uns weiter Informationen mittels:
$ man port
$ pman port
(beziehungsweise)

Wie Fink sollen wir auch port aktuell halten:
$ sudo port -v selfupdate

Info: wie gewohnt, wenn wir sudo verwenden, müssen wir uns vorgängig auch in der Shell als Admin angemeldet haben (siehe oben). Die Option -v steht für verbose. Das heißt man erhält Fehlermeldungen.

Wie auch in fink gibt es eine Funktion, ein gewünschtes Paket zu suchen:
$ port search <gesuchtes_Paket>
man ersetze <gesuchtes_Paket>mit dem Gesuchten und MacPorts zeigt die auf das Schlüsselwort hin gefundenen Packages an.

Programme installieren wir ganz einfach (als Admin, da wir sudo benötigen):
$ sudo port install <gewünschtes_Paket>

Was die beiden Studenten des Euklid jetzt machen?
$ port search maxima
$ sudo port install maxima


Nebenbei: Informationen zu diesem Package finden sich auch direkt im WWW.

Und sie können, da fleissig von Euklid die spezielle Syntax dieses OpenSource CAS gelernt haben, wunderbar ihre Hausaufgaben im Nullkommanichts machen. Trotzdem setzte es aber Backenstreiche (veraltete Teaching-Methode; es ist übrigens nicht überliefert, ob er sie angewandt hat; andere sprechen eher von einer hermeneutischen Methode, wie sie auch schon von anderen älteren Lehrer angewandt wurde), da Euklid 2 identische Lösungen bekam und davon ausging, dass die beiden abgeschreiben haben!

(9.2.4) Und was lehrt uns das?
Fortan können wir uns einige Porgramme installieren, die Fink z. B. nicht hat. Wir haben eine breitere Palette an OpenSource Software zur Verfügung. Natürlich sollen wir unsere Mathehausaufgaben nicht vergessen, was uns die beiden Schüler des Euklids zusätzlich lehren.

Disclaimer (psc): Dieses MacPort-Tutorial soll keine Anleitung sein, wie zeitgenössische Studenten Mathematikaufgaben lösen sollen. Diese sollen spätestens schon am Abend zuvor mit Maxima beginnen und nicht erst im Morgengrauen :)

Hilfreiche Links


(9.2.5) Aber der FinkComander...?
Ein weiterer Vorteil des Fink-Projektes ist der FinkCommander, welcher eine GUI bietet zur Installation der Fink-Pakete. Ein solches gibt es nur kostenpflichtig unter dem Namen Authority für das MacPort-System.


Kommentar (psc): Doch ehrlich gesagt: Wer nach diesem Tutorial noch überhaupt Lust auf eine GUI hat, ist selbst schuld :)


Link: Fortsetzung Teil 6
 
Zuletzt bearbeitet von einem Moderator: