Freitag, 5. Juli 2013

Homebrew der Paketmanager für OS X

Was unter Linux eine Selbstverständlichkeit ist (mit rpm oder deb), fehlt auf den Macs immernoch. Der fehlende Paketmanager für OS X ist homebrew. Die Installation ist in Sekunden erledigt, das Handling einfach (s. Einzeiler auf der Homebrew Webseite).
Endlich sind die Zeiten vorbei, wo man Tarballs herunterlädt, auspackt, "configure, make, make install" eintippt und dann, wenn alles glatt gelaufen sein sollte, die Anwendung installiert hat. Und wehe man will sie wieder deinstallieren.
Mit homebrew ist das Installieren schnell erledigt mit "brew install toolname". Zum Deinstallieren entsprechend mit "brew uninstall toolname".
Das Aktualisieren von Homebrew und den Formulae genannten Paketinformationen ist ebenfalls schön einfach gelöst und mit "brew update" durchgeführt. "brew outdated" zeigt die veralteten installierten Anwendungen an. "brew upgrade" aktualisiert sie alle und mit "brew upgrade toolname" aktualisiert man Einzelne gezielt.
Quellen und weiterführende Links:

Freitag, 24. September 2010

Programm mehrfach starten unter Mac OS

Läßt sich ein Programm mehrfach öffnen unter Mac OS X? Im Prinzip ja. Grundsätzlich läuft jedes Programm nur mit einer Instanz und beim erneuten Aufruf des Programms holt das OS diese in den Vordergrund.

Die Standardlösung für dieses Problem ist das Duplizieren des Programms. Diese Lösung gefällt mir nur überhaupt nicht. Man muss immer wissen, welche Instanz man bereits laufen hat, man verdoppelt den Speicherverbrauch, etc.

Eine viel sauberere Lösung ist die Verwendung des Terminals mit dem "open" Kommando. Mit dem Parameter "-n" wird schlicht eine weitere Instanz des selben Programms gestartet. Ich nutze das gerne, wenn ich mit Audiobook-Builder Hörbücher zusammenstelle. Während eine Instanz CDs einliesst kann ich auf einer zweiten Instanz aus Dateien oder iTunes heraus parallel ein anderes Hörbuch erzeugen.
open -n /Applications/Audiobook\ Builder.app
Quellen und weiterführende Links:

Freitag, 20. August 2010

Schneller Verzeichniswechsel mit autojump

Zur schnellen Navgation zwischen Verzeichnissen empfiehlt sich ein kleines Bash-Skript (Autojump), das eine Datenbank der benutzten Verzeichnisse anlegt, so dass man durch Angabe von Teilstrings schnell in das entsprechende Verzeichnis wechseln kann.

Dazu legt autojump eine kleine Datenbank der genutzten Verzeichnisse und der Häufigkeit der Nutzung an. Wenn genügend Daten gesammelt sind kann man dann mit der Eingabe von markanten Teilen des Verzeichnisnamens in das Verzeichnis wechseln. Es unterstützt auch Tab-Vervollständigung.
j mp3
springt z.B. ins Verzeichnis "/home/gwb/my mp3 collection". Praktisch: Wenn nur "j" ausgeführt wird, wechselt autojump in das meistverwendete Verzeichnis, bzw. das zweite, falls man gerade in Ersterem ist.

Mit jumpstat kann ein Status der gesammelten Daten abgerufen werden.

Die Installation ist sehr einfach und schnell erledigt:

  1. Herunterladen des aktuellen Installationspaketes bei Github.com:
    http://github.com/joelthelion/autojump/downloads
  2. Auspacken des Pakets.
    Auf dem Mac reicht einfach ein Doppelklick und das tar.gz Archiv wird in ein entsprechendes Unterverzeichnis entpackt.
  3. Das Installationsskript starten.
    Dazu muss die Datei ausführbar sein.
    chmod +x install.sh
    Anschliessend kann das Skript mit
    ./install.sh
    gestartet werden.
  4. Abschluss. Die Installation läuft automatisch und stellt bei Bedarf noch die Frage, ob das Skript in die .basrc installiert werden soll. Wenn Ihr die Option verwendet ist noch eine Korrektur erforderlich, damit es nicht zu einer Endlosschleife beim Aufruf der .bashrc kommt. Dafür müssen die letzten Zeilen des Skripts gelöscht oder wie folgt auskommentiert werden:
    # Get the aliases and functions

    # if [ -f ~/.bashrc ]; then
    # . ~/.bashrc
    # fi
Damit ist autojump schon startklar.

Quellen und weiterführende Links:


Danke für den Pick an Hessi in Bitsundso Folge Bits und so #211 (Vampirfrei)

Freitag, 13. August 2010

SnowLeo Kommandozeile einrichten

Eigentlich ist das Folgende nichts aussergewöhnliches und unter Linux Alltag, aber da ich auf meinem Mac die Kommandozeile selten nutze, will ich hier mal festhalten, was ich recherchiert habe um diese etwas komfortabler zu gestalten, wenn man das OS X Standardtool Terminal einsetzen will. Ziel ist es den Prompt zu ändern und ein paar Alias-Einträge einzurichten.

Die Konfigurationsdatei automatisch einlesen
Das Hauptproblem ist die Einbindung der Konfigurationsdatei. Und leider ist das wohl auch von der Version von Mac OS abhängig. Meine Beschreibung bezieht sich auf Snow Leopard und ich gehe davon aus, dass die Bash-Shell verwendet wird. Wenn an der Standardkonfiguration nichts geändert wurde, dann ist diese bereits gesetzt.

Jedenfalls musste ich einiges recherchieren und ausprobieren bis die Konfiguration zuverlässig geladen wird, wenn

  • Terminal gestartet wird, 
  • ein zusätzliches Fenster geöffnet wird oder 
  • ein neues Tab aktiviert wird. 

Ärgerlicherweise verhält sich Terminal dabei nicht einheitlich und zieht unterschiedliche Konfig-Dateien je nach Situation an. Der relativ einfache Fix ist, das man zwei identische Konfigurationsfiles einsetzt, bzw. eine Master-Konfig-Datei und einen symbolischen Link darauf für die andere Datei. Es mag auch andere Lösungen geben, aber diese funktioniert.

In der Terminalkonfiguration muss als Shell die Standardeinstellung beibehalten werden - also /bin/Local/login.

Im Homeverzeichnis des gewünschten Users muss die Datei .bashrc und .bash_profile angelegt werden. Bei mir ist .bashrc der Master für den Symbolischen Link.

Anlegen des Master-Konfigfiles: nano .bashrc oder vi .bashrc
Anlegen des Symbolischen Links: ln -si .bashrc .bash_profile

Ich gehe im Folgenden davon aus, dass die Konfiguration wie oben beschrieben verwendet wird.

Prompt anpassen
In der .bashrc muss die Environmentvariable PS1 mit den Optionen für den Prompt gesetzt werden. Die meist genutzten Optionen lauten wie folgt:

  • \t - Aktuelle Zeit
  • \d - Aktuelles Datum
  • \W - Aktueller Verzeichnisname ohne Pfad (z.B. Desktop/)
  • \w - Aktueller Pfad und Verzeichnisname (z.B. /Users/Admin/Desktop)
  • \h - Hostname
  • \u - Username
  • \# - Kommando Nummer
  • \n - Zeilenumbruch

Folgender Eintrag z.B.
export PS1="\t - \w\n\u@\h: "

Liefert folgenden Prompt:
14:40 - /user/Home/username
Username@meinMac:

Alias eintragen
Einen Alias trägt man dann ebenfalls einfach in die .bashrc ein, wobei hier keine Unterschiede zur Linux Bash vorhanden sind. Ein paar Beispiele:

Alias ..="cd .."
Alias ll="ls -la -G"
Alias l=ls

Quellen und weiterführende Links: