Peter Rehm's Blog

apple,development,life & more

Installing MongoDB Binaries on Mac

without Comments

Get latest binaries from here: http://www.mongodb.org/downloads
and unzip.

CODE:
sudo mv mongodb-osx-x86_64-2.2.1 /usr/local/mongodb
sudo mkdir /usr/local/mongodb_data /var/log/mongodb
sudo chown -R root /usr/local/mongodb
sudo vi /usr/local/mongodb/mongod.conf


Insert the following content

CODE:
# Store data alongside MongoDB instead of the default, /data/db/
dbpath = /usr/local/mongodb_data
 
# Only accept local connections
bind_ip = 127.0.0.1


Create a LaunchDaemon

CODE:
sudo vi /Library/LaunchDaemons/org.mongodb.mongod.plist


CODE:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
  "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>org.mongodb.mongod</string>
  <key>ProgramArguments</key>
  <array>
    <string>/usr/local/mongodb/bin/mongod</string>
    <string>run</string>
    <string>--config</string>
    <string>/usr/local/mongodb/mongod.conf</string>
  </array>
  <key>RunAtLoad</key>
  <true/>
  <key>KeepAlive</key>
  <true/>
  <key>WorkingDirectory</key>
  <string>/usr/local/mongodb</string>
  <key>StandardErrorPath</key>
  <string>/var/log/mongodb/output.log</string>
  <key>StandardOutPath</key>
  <string>/var/log/mongodb/output.log</string>
</dict>
</plist>


CODE:
sudo launchctl load /Library/LaunchDaemons/org.mongodb.mongod.plist


Try it with http://localhost:28017

CODE:
sudo sh -c 'echo "/usr/local/mongodb/bin" > /etc/paths.d/mongodb'

Posted by Peter Rehm

11/05/2012 at 02:49:57 PM

Defined tags for this entry: , ,

Installation PEAR/PECL/autoconf/intl/icu auf Mac OSX Mountain Lion

without Comments

Installation PEAR/PECL/autoconf/intl/icu auf Mac OSX Mountain Lion

- Install PECL & PEAR

CODE:
cd /usr/lib/php
sudo php install-pear-nozlib.phar


- Add to php.ini

CODE:
include_path = ".:/usr/lib/php/pear"
extension_dir = "/usr/lib/php/extensions/no-debug-non-zts-20090626"


- Update pear channels

CODE:
sudo pear channel-update pear.php.net
sudo pecl channel-update pecl.php.net
sudo pear upgrade-all


- Install ICU from http://site.icu-project.org/download/48#ICU4C-Download

CODE:
tar -xzvf icu4c-4_8_1_1-src.tgz
cd icu/source/
./runConfigureICU MacOSX
make
sudo make install


If you get something linke this...


configure: error: in `/Users/peterrehm/Downloads/icu/source':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details
./runConfigureICU: ./configure failed


you have to install the apple command line tools which you will find
under the following URL for the appropriate OS version like Mountain Lion.

CODE:
https://developer.apple.com/devcenter/mac/index.action


then you should be able to install it..

CODE:
sudo pecl install intl


If you have autoconfi missing go for that:

CODE:
curl -O http://ftp.gnu.org/gnu/autoconf/autoconf-latest.tar.gz
tar -xzvf autoconf-latest.tar.gz
cd autoconf-2.69/


Now you should add "extension=intl.so" to php.ini and restart apache. Here you go.

Posted by Peter Rehm

08/01/2012 at 09:11:24 PM

Defined tags for this entry: , ,

MAC OSX; Locate Database aktualisieren

without Comments

Mit dem folgenden Befehl wird die Erzeugung des locate Indexes angestoßen:


sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist

Posted by Peter Rehm

08/01/2012 at 07:56:24 AM

Defined tags for this entry:

Anzeige der git branch in der Console (OSX/bash)

without Comments

.bash_profile anlegen mit dem folgenden Inhalt


PATH=$PATH:/usr/local/git/bin:.
source /usr/local/git/contrib/completion/git-completion.bash
PS1='[\u@\h \w$(__git_ps1 " (%s)")]\$ '


Danach sieht der shell prompt wie folgt aus:


[peterrehm@tokyo-3 /www/scalc (master)]$


Dadurch wird nebenbei auch die completion hinzugefügt, zum Beispiel bei
der Auswahl der Branches mittels git branch ...

Posted by Peter Rehm

07/29/2012 at 07:26:01 PM

Defined tags for this entry: , , ,

PEAR unter OSX Leopard installieren

with 1 Comment

Im folgenden wird in aller kürze beschrieben, wie man PEAR unter
OSX 10.5 Leopard installiert. Dies sollte unter den vorherigen OSX
Versionen sicher ähnlich funktionieren.

Auf meinem lokalen System habe ich PHP5 von entropy.ch am laufen, da
ich unbedingt die GD-Lib benötige. Dies hat nur Einfluss auf die Ablage
der php.ini. Dies muss eben von den auf dem jeweilig auf dem System vorhandenen
Gegebenheit abhängig gemacht werden.

Wir werden in /usr/local/ installieren, und dem System gestatten die TEMP-Files
in /usr/local/temp abzulegen.

CODE:
sudo mkdir /usr/local/temp
sudo chmod -R 777 /usr/local/temp
sudo mkdir /usr/local/share/pear
sudo chmod -R 777 /usr/local/share/pear


Im nächsten Schritt wird go-pear ausgeführt.

CODE:
curl http://pear.php.net/go-pear | php


Hier muss bei den Pfaden der 1. auf /usr/local geändert werden.
Alle anderen Einstellungen können in der Regel beibehalten werden.

Während der Installation kommt dann die Warnung, dass der PEAR Pfad
noch nicht in der php.ini vorhanden ist, und es deswegen zu Problemen
mit der Verwendung von den PEAR Scripts kommen kann.

Hier kommen wir an den Punkt wo es wichtig ist, zu wissen, wo die
Konfigurationsdatei des Webservers liegen muss. Dies kann man einfach
über ein kurzes Script herausfinden:

CODE:
<? phpinfo(); ?>


Im Browser die Datei ansehen und nach folgender Zeile suchen.

CODE:
Configuration File (php.ini) Path /usr/local/php5/lib


Hier muss die php.ini für den Webserver liegen, die php.ini für
das Command-Line-Interface (CLI) unabhängig davon in /etc/

Standardgemäß ist eine php.ini.default in /etc/. Diese kopieren
und modifizieren wir zunächst.

CODE:
sudo cp /etc/php.ini.default /etc/php.ini
sudo nano /etc/php.ini


Nun nach dem Eintrag include_path suchen und diesen um "/usr/local/share/pear"
ergänzen. Bei mir sah dies nach der Anpassung so aus.

CODE:
include_path=".:/usr/local/share/pear"


Ist eine php.ini in dem Config-Path des Webservers vorhanden bearbeiten
wir diese, ansonsten kopieren wir die Datei /etc/php.ini an die gewünschte
Stelle

CODE:
sudo cp /etc/php.ini /usr/local/php5/lib/php.ini


Abschließend muss noch der Webserver neu gestartet werden, dann ist PEAR
einsatzfähig.

CODE:
sudo apachectl restart


Anmerkung: Kann PEAR von der Konsole nicht mit dem Befehl pear aufgerufen werden,
ist /usr/local/bin nicht korrekt in den SHELL-Pfaden eingetragen, und sollte nachgetragen
werden. Tipp: echo $PATH zum überprüfen in der SHELL eingeben.

Posted by Peter Rehm

01/02/2008 at 11:16:31 AM

Posted in PHP

Defined tags for this entry: , ,

Backupplan

without Comments

Als letzte Anmerkung zu dem ganzen Backup Thema noch mein Backup Plan.

Täglich: Datensicherung der geänderten Dateien per rsync. [anleitung]

Monatlich: Datensicherung über Carbon Copy Cloner. [anleitung]

Ich denke das ist ein vernünftige und einfach zu handhabende Datensicherung, so dass ich dem totalen Supergau hoffentlich immer entrinnen kann. Vorbei ist es nun mit dem Blogmarathon über Backups :-)

Posted by Peter Rehm

01/07/2007 at 09:30:32 PM

Defined tags for this entry: , ,

Festplatte klonen mit Carbon Copy Cloner

with 2 Comments

Der nun letze Teil der Backup Serie behandelt das Spiegeln der gesamten Platte. Dies ist meine zusätzliche Sicherung,
dass ich im Extremfall einfach von der Firewire HDD booten kann.

Ich hab meine Firewire HDD in mehrere Partitionen unterteilt, unter anderem 100GB für die tägliche Sicherung,
wo per rsync die geänderten Dateien kopiert werden. Die andere Partition hat 120GB und die soll das Ziel werden
für die geklonte Version. Dieses Laufwerk heisst treffend "Cloned" :-)

Als erstes solltet Ihr euch CCC (Carbon Copy Cloner) downloaden, SuperDuper wäre eine Alternative.

Das Programm installiert Ihr und startet es. Eure Firewire HDD solltet Ihr mit einer geeigneten Partition,
also so groß wie die Interne bereithalten. Tipp: Partitionieren könnt ihr mit dem Dienstprogramm "Festplatten-Dienstprogramm".

CCC

Ihr seht nun etwas wie oben, nachdem Ihr als Quelle eure Macintosh HD ausgewählt habt.
Als Ziel nehmt Ihr die Partition auf eurer Firewire HDD, auf der Ihr sichern möchtet.

Dann müssen nur noch die Einstellungen bearbeitet werden.

CCC

Wichtig ist nur, dass Ihr den Haken bei bootfähig macht.

Dann kommt noch ein kniffligerer Teil. Wir möchten ja nicht, dass die gesicherten Platten auch von Spotlight indiziert werden.
Daher soll der Index für die Partition ausgeschaltet sein. Dafür benötigen wir ein kleines Shell Skript.
Das heisst Ihr legt eine Textdatei mit der Endung .sh in einem Verzeichnis eurer Wahl an.
Bei mir ~/scripts/ also /Users/peterrehm/scripts/. In die Textdatei kommt folgender Inhalt:

CODE:
#!/bin/bash
sudo mdutil -i off /Volumes/Cloned
sudo mdutil -E /Volume/Cloned


Dann öffnet Ihr den Terminal, wir müssen dem Skript noch die richtigen Rechte geben.
Gebt dazu im Terminal folgendes ein

CODE:
chmod 755 /Users/peterrehm/scripts/no_index.sh


"no_index.sh" Ist der Name des Skripts, dem wir hier die Rechte zum Ausführen geben.

Nun können wir das Skript unter den fortgeschrittenen Einstellungen eintragen.

CCC

Wir tragen es unter "post-Action" ein, das bedeutet, das Programm wird nach dem Kopieren
ausgeführt. Damit sollte das Problem mit Spotlight unterbunden sein.

Nun sind wir mit den Einstellungen fertig.

Um nun beginnen zu können müssen wir dem Programm erst das Admin Passwort
geben, dass es auch alle Dateien kopieren kann.
Dazu klickt man auf das kleine Schloß.

CCC

Danach muss man das Passwort eingeben

CCC

Nun ist alles soweit und man kann auf "klonen" klicken.

CCC

Das dauert nun eine ganze Weile, danach hat mein ein bootbares OSX auf seiner
Firewire HDD.

CODE:
Clone operation completed at: Sonntag, 7. Januar 2007 19:22:50 Uhr
Elapsed time: 75,583333333333 minutes


Tipp: Um von der Firewire HDD booten zu können, muss man während dem Startvorgang
die Taste "alt" drücken.

Posted by Peter Rehm

01/07/2007 at 09:05:36 PM

Defined tags for this entry: , , , ,

Backups unter OSX mit rsync

with 5 Comments

Vor kurzem habe ich bei einem Kunden eine kleine Backup Lösung eingerichtet.
Diese sichert die geänderten Dateien auf eine externe Festplatte. Dies habe ich
mit xcopy realisiert.

Ich habe schon öfter nach einer Backup Lösung für OSX gesucht, und außer
einem komplett Image noch kaum was richtig brauchbares gefunden.

Es gibt aber keinen größeren Alptraum als einen Datenverlust, daher habe ich
nach einer Lösung für mein MacBook Pro gesucht, mit dem ich täglich kurz die
geänderten Dateien kopieren kann.

Dabei bin ich auf rsync gestoßen. Die Umsetzung ist denkbar einfach.

CODE:
rsync --archive -u -v /Users/peterrehm/ /Volumes/SEA_DISK/backup_sync/peterrehm/ 


Und das machen die Parameter:

CODE:
-u kopiert ist für das kopieren der geänderten Dateien zuständig
-v Zeigt die ganzen Nachrichten an, ich will ja schließlich wissen was passiert
--archive ist ein synonym für die Parameter -rlptgoD
-r Kopiert alle Verzeichnisse rekursiv
-l symlinks werden als Symlinks kopiert
-p die rechte bleiben erhalten
-t Timestamp bleibt erhalten
-g Die Gruppenzuordnung bleibt erhalten
-o lässt verzeichnisse aus, wenn Timestamp erhalten bleibt
-D kopiert sockets,fifos,....


Allerdings zeigt er beim Aufruf immer alle Dateien an, egal ob er Sie kopiert oder nicht.
Das finde ich etwas doof, da man dann nicht sieht welche Dateien sich explizit verändert haben.

Ich verwende folgendes Skript um meine Daten zu sichern, damit wird mein Web Directory gesichert,
und das ganze Home verzeichnis. Ratsam sind dabei auch die Excludes, wie z.B. das dass keine
Subversion Verzeichnisse (.svn) kopiert werden. Die muss ich nicht im Backup haben.

CODE:
#!/bin/bash
sudo rsync --archive -u -v -C --exclude="temp" --exclude="/Applications/" --exclude="tmp" /Users/peterrehm/ /Volumes/Backup/backup_sync/peterrehm/ 
sudo rsync --archive -u -v -C --exclude=.svn /Library/WebServer/Documents/ /Volumes/Backup/backup_sync/www/


Update:

Das tolle ist, nach dem ersten mal kopieren geht das razz fazz. Der Backupvorgang geht nach ersten Messungen weniger als 2 Minuten.
Nun gibt es wirklich tägliche Backups.

Update #2

Nun mein volles Backup Inklusive MySQL und SVN Dumps, wie in den anderen Blog einträgen von heute beschrieben.

CODE:
#!/bin/bash
sudo rsync --archive -u -v -C --exclude="temp" --exclude="/Applications/" --exclude="tmp" /Users/peterrehm/ /Volumes/Backup/backup_sync/peterrehm/ 
sudo rsync --archive -u -v -C --exclude=.svn /Library/WebServer/Documents/ /Volumes/Backup/backup_sync/www/
mysqldump -u root --all-databases > /Volumes/Backup/backup_sync/all_db_dump.sql
svnadmin dump /Users/peterrehm/Library/svn/cms/ > 
/Volumes/Backup/backup_sync/svn_cms.dump


Update #3
Man sollte evtl auch Parallels Desktop excluden, da sonst große Datenmengen kopiert werden müssen wegen dem Windows Müll.
Das muss man aber selber entscheiden.

Update #4

-C lässt auch core Files weg, das ist etwas suboptimal, wenn man Projekte mit einem Core Verzeichnis hat.
Daher --include=core hinzufügen oder einfach ganz auf -C verzichten.

Ich habe bei meinem Backup nun auch .Trash verzichtet, da ich meinen Papierkorb nicht backupen will :-)

In meiner aktuellen Version lasse ich auch die Dateien löschen, die auf der Quelle nicht mehr vorhanden sind.
Das hält das Backup wesentlich kleiner.

Das Script sieht dann jetzt so aus, die beiden rsync zeilen.

CODE:
sudo rsync --archive --delete -u -v --exclude="temp" --exclude=".Trash" --exclude="/Applications/"
 --exclude="tmp" /Users/peterrehm/ /Volumes/Backup/backup_sync/peterrehm/ 
sudo rsync --archive --delete -u -v /Library/WebServer/Documents/ /Volumes/Backup/backup_sync/www/

Posted by Peter Rehm

01/07/2007 at 02:10:16 PM

Posted in Apple

Defined tags for this entry: , , ,

VIM Kommandos in COCOA Anwendungen

without Comments

Nach langem testen funktioniert es nun endlich...

Ich kann VIM Commandos in COCOA Anwendungen verwenden. Dies ist möglich durch den VI Input Manager.

Man muss die Files an die entsprechenden Stellen kopieren. Nach dem kopieren sollte man folgendes kopiert haben:

CODE:
goofy$ ls Library/KeyBindings                                                                     ~
-rw-r--r--    1 peterreh  peterreh   576 Dec  7 23:20 DefaultKeyBinding.dict


und

CODE:
goofy$ ls Library/InputManagers/ViInputManager                                                    ~
-rw-r--r--   1 peterreh  peterreh   429 Oct 31 16:46 Info
drwxr-xr-x   3 peterreh  peterreh   102 Oct 31 16:45 ViInputManager.bundle


danach ein neustart und man kann loslegen.

Man sollte aber noch überlegen ob man nicht die Taste um das Commandofenster ummapped.
Dies macht man in der DefaultKeyBinding.dict. Ich habe momentan die ESC Taste eingestellt,
das ist aber irgendwie suboptimal. Mal noch etwas testen, ob das wirklich nervt.

Posted by Peter Rehm

12/08/2006 at 02:46:17 PM

Posted in Apple

Defined tags for this entry: , , ,

Nach Neuinstallation Mails von Spotlight neu indizieren lassen

without Comments

Seit der Neuinstallation hat die Spotlight Suche seinen Dienst verweigert, bzw. hat nur noch die neuen Mails durchsucht.
Dies ist sehr nervig und dem kann man helfen indem man die Mails neu indizieren lässt.

CODE:
sudo mdimport -r /System/Library/Spotlight/Mail.mdimporter


Dies dauert dann etwas, und danach sollte alles wie gehabt funktionieren!

Posted by Peter Rehm

12/06/2006 at 10:51:48 AM

Posted in Apple

Defined tags for this entry: , ,

Tastaturbeleuchtung MacBook Pro

without Comments

Die Tastaturbeleuchtung am MacBook Pro ist sehr hübsch. Allerdings funktioniert Sie leider nur durch den Lichtsensor.
Dies kann sehr nervig sein, wenn diese dann flackert, wenn man im Auto oder im Zug unterwegs ist.

Aber dem kann geholfen werden, mein Tool das Tages: LabTick

Posted by Peter Rehm

11/08/2006 at 10:33:50 PM

Defined tags for this entry: , , ,

Keyboard Layout unter Parallels Desktop anpassen

with 9 Comments

Parallels Desktop gefällt mir echt gut. Es startet in unglaublich schneller
Zeit und es lässt sich extrem performant damit arbeiten.
Allerdings das große Manko: Keyboardlayout
Ich habe lange gesucht, und nichts vernünftiges gefunden, nur
einen Hinweis aus einem Appletalk Thread, dass man das Keyboardlayout selber
anpassen kann.

Dies habe ich dann mit dem Keyboard Layout Generator erledigt.
Es war etwas umständlich aber nach der Installation der Developer Tools habe ich das
wie erwünscht erstellen können. Man kann allerdings in dem Tool die Alt Taste nicht
ummappen, das muss über einen Registry EIntrag erledigt werden, den ich zum Glück
auch in einem Forum gefunden habe.

CODE:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,02,00,00,00,38,e0,38,00,00,00,00,00


Wer sich näher mit dem Thema beschäftigen möchte findet hier weitere
Informationen.

Für alle anderen gibt es hier ein Package von mir zum Download,
mit dem Package für die Sprachinstallation und der Registry Datei.

Sollte der Registry Eintrag negative Nebenwirkungen mit sich bringen, kann
man den Schlüssel immer wieder löschen.
Man muss dann nur statt der [alt] Taste [alt] + [ctrl] drücken.

Nachdem man das Package installiert hat muss man das Keyboardlayout noch auswählen.

Dazu geht man wie folgt vor:

CODE:
Systemsteuereung -> Regions- und Sprachoptionen -> Sprachen -> Details -> Deutsch(Mac) hinzufügen


Hinzufügen kann man die Sprache, indem man auf Hinzufügen klickt, und dann bei
Tastaturlayout/IME die Sprache "Deutsch (Mac)" auswählt.
Danach kann man die alte Sprache entfernen. Dies wird dann nach einem
Neustart wirksam.

Das Package gibts hier -> download

Viel Spaß Damit!

Posted by Peter Rehm

11/07/2006 at 09:48:18 PM

Posted in Apple

Defined tags for this entry: , , ,

OSX - Iso brennen ohnen GUI

without Comments

Immer wieder muss man ISO Images brennen, und es ist dann mühsam wenn man kein GUI Tool wie Toast am laufen hat.
Allerdings ist bei OSX ein Konsoletool onboard, das einem das Problem schnell und einfach abnimmt.

CODE:
hdiutil burn D-WinXP_Pro_With_Sp2.iso 


Images kann man übrigens mit dem Disk Utility erstellen.

Posted by Peter Rehm

11/07/2006 at 01:00:10 PM

Defined tags for this entry: , , ,

SSH Tunnel & Bug in Apple Mail

without Comments

Da ich an der FH über WLAN einen SSH Tunner verwende kam es heute zu folgendem Problem.
:
Ich konnte keine Mails mehr versenden, ich bekam immer folgenden Fehler:

CODE:
<[????????0???!??$IPv6:::1]> Helo command rejected: invalid ip address


Nun habe ich den Fehler gefunden. Wenn ich den Tunnel auf localhost laufen lasse,
gibt Mail die IPV6 Adresse weiter. Lasse ich den Tunnel auf 127.0.0.1 laufen, funktioniert
es wunderbar.

So, jetzt weiter mit Grundlagen der Informatik :-)

Posted by Peter Rehm

11/07/2006 at 08:33:27 AM

Defined tags for this entry: , , ,

PHP4 & PHP5 auf einem MacBook Pro

without Comments

So mal wieder bin ich mit dem ganzen Installationszirkus beschäftigt.
Nun will ich wieder beide PHP Versionen Parallel zueinander laufen lassen.

PHP4 muss man sich Compilen, oder man kann auf die mit OSX ausgelieferte
Version zurückgreifen. Dies werde ich in diesem Fall tun.

In der http.conf muss nur PHP4 aktiviert werden. Nachdem dies getan ist,
kopieren wir die Konfigurationsdatei.

CODE:
sudo cp /etc/httpd/httpd.conf /etc/httpd/httpd.php4.conf 


Nun installieren wir gleich PHP5. Die Packages dazu findet
Ihr bei

CODE:
http://www.entropy.ch/software/macosx/php/


In der Regel ist Apache 1.3 vorinstalliert.


Nachdem PHP5 installiert ist kopieren wir die Config erneut

CODE:
sudo cp /etc/httpd/httpd.conf /etc/httpd/httpd.php5.conf 


Nun kommt das Script das für den Wechsel zuständig ist:

CODE:
#!/bin/bash
if [[ "$1" == 5 || "$1" == 4 ]]; then 
VERSION=$1; 
else 
echo -n "Please choose between PHP4 and PHP5 (4/5)"; 
echo -e "";
fi 

if [ "$VERSION" == 4 ]; then 
sudo cp /etc/httpd/httpd.php4.conf /etc/httpd/httpd.conf;
echo "config updated to php4 - restarting Apache graceful.."; 
sudo apachectl graceful; 

elif [ "$VERSION" == 5 ]; then 
sudo cp /etc/httpd/httpd.php5.conf /etc/httpd/httpd.conf; 
echo "config updated to php5 - restarting Apache graceful.."; 
sudo apachectl graceful; 
fi


Das Skript habe ich hier auch schonmal geposted, aber in diesem Zuge nochmals...

Einfach das Skript speichern, und dann wie folgt ausführen:

CODE:
./changephp 4

Dann wird die PHP4 Config kopiert und der Apache neugestartet.
Das Gleiche geht auch in die andere Richtung.

Posted by Peter Rehm

11/06/2006 at 08:04:10 PM

Defined tags for this entry: , , ,