Peter Rehm's Blog

apple,development,life & more

Installing MongoDB Binaries on Mac

Ohne Kommentare

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'

Geschrieben von Peter Rehm

05.11.2012 um 14:49:57

Tags für diesen Artikel: , ,

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

Ohne Kommentare

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.

Geschrieben von Peter Rehm

01.08.2012 um 21:11:24

Tags für diesen Artikel: , ,

MAC OSX; Locate Database aktualisieren

Ohne Kommentare

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


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

Geschrieben von Peter Rehm

01.08.2012 um 07:56:24

Tags für diesen Artikel:

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

Ohne Kommentare

.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 ...

Geschrieben von Peter Rehm

29.07.2012 um 19:26:01

Tags für diesen Artikel: , , ,

PEAR unter OSX Leopard installieren

Mit 1 Kommentar

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.

Geschrieben von Peter Rehm

02.01.2008 um 11:16:31

Abgelegt in PHP

Tags für diesen Artikel: , ,

Backupplan

Ohne Kommentare

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 :-)

Geschrieben von Peter Rehm

07.01.2007 um 21:30:32

Tags für diesen Artikel: , ,

Festplatte klonen mit Carbon Copy Cloner

Mit 2 Kommentaren

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.

Geschrieben von Peter Rehm

07.01.2007 um 21:05:36

Tags für diesen Artikel: , , , ,

Backups unter OSX mit rsync

Mit 6 Kommentaren

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/

Geschrieben von Peter Rehm

07.01.2007 um 14:10:16

Abgelegt in Apple

Tags für diesen Artikel: , , ,

VIM Kommandos in COCOA Anwendungen

Ohne Kommentare

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.

Geschrieben von Peter Rehm

08.12.2006 um 14:46:17

Abgelegt in Apple

Tags für diesen Artikel: , , ,

Nach Neuinstallation Mails von Spotlight neu indizieren lassen

Ohne Kommentare

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!

Geschrieben von Peter Rehm

06.12.2006 um 10:51:48

Abgelegt in Apple

Tags für diesen Artikel: , ,

Tastaturbeleuchtung MacBook Pro

Ohne Kommentare

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

Geschrieben von Peter Rehm

08.11.2006 um 22:33:50

Tags für diesen Artikel: , , ,

Keyboard Layout unter Parallels Desktop anpassen

Mit 9 Kommentaren

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!

Geschrieben von Peter Rehm

07.11.2006 um 21:48:18

Abgelegt in Apple

Tags für diesen Artikel: , , ,

OSX - Iso brennen ohnen GUI

Ohne Kommentare

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.

Geschrieben von Peter Rehm

07.11.2006 um 13:00:10

Tags für diesen Artikel: , , ,

SSH Tunnel & Bug in Apple Mail

Ohne Kommentare

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 :-)

Geschrieben von Peter Rehm

07.11.2006 um 08:33:27

Tags für diesen Artikel: , , ,

PHP4 & PHP5 auf einem MacBook Pro

Ohne Kommentare

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.

Geschrieben von Peter Rehm

06.11.2006 um 20:04:10

Tags für diesen Artikel: , , ,