Mac-Desktop-Installation

Anleitung für eine Mac-Installation mit allen Einstellungen und Programmen, die man so haben sollte.

Tastenkürzel

Homebrew

Links:

Homebrew installieren:

ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go/install)"

Homebrew und Formeln aktualisieren:

brew update

Homebrew ermöglichen, alternative Cask-Versionen zu finden - z.B. alte Java-Versionen (nur einmal nötig):

brew tap caskroom/versions

Nach Formeln suchen:

brew search <formula-name>

Formel installieren:

brew install <formula-name>

Formel deinstallieren:

brew install <formula-name>

Cask-Formel installieren:

brew cask install <formula-name>

Cask-Formel deinstallieren:

brew cask uninstall <formula-name>

Anzeigen, was veraltet ist:

brew outdated

Alles aktualisieren:

brew upgrade

Veraltete Pakete entfernen (Wichtig: Vorher brew upgrade ausführen, sonst werden alte Pakete komplett gelöscht):

brew update  # optional
brew upgrade
brew cleanup

Oder nur eine bestimmte Formel aktualisieren:

brew upgrade <formula-name>

Alle installierten Formeln anzeigen:

brew list
brew cask list

Nur die obersten installierten Formeln anzeigen:

brew leaves

Weitere Befehle:

brew help

MacPorts

MacPorts ist ein Paketsystem, über das man Open-Source-Software installieren und verwalten kann. MacPorts baut dabei alle Pakete aus dem Source.

Installation:

MacPorts-Paketinfos und veraltete Pakete aktualisieren:

sudo port -v selfupdate && sudo port upgrade outdated

Temporären Kram löschen:

sudo port clean --all installed

Nach einem Paket suchen (Im Beispiel Suche nach wireshark):

port echo wireshark

Oder im Web: http://www.macports.org/ports.php

Paket installieren (Im Beispiel wireshark):

sudo port install wireshark

Programme

Infos

Prüfen, ob es Prozesse gibt, die einen Sleep verhindern:

pmset -g assertions

Umgebungsvariablen setzen

~/.bash_profile öffnen und Umgebungsvariablen eintragen:

export JAVA_HOME=/Library/Java/Home/
export PATH=$PATH:/some/path/bin

Globaler Kram

Keine geschützten Leerzeichen

Wenn man z.B. in einem Editor Alt+Leertaste drückt, dann kommt dabei kein normales Leerzeichen raus, sondern ein geschütztes (also ein nicht umbrechendes). Das kann beim Editieren von Code sehr nervig sein - vor allem wenn man Dinge wie if (a || b) schreiben will und nach dem Tippen der Pipe (Alt+7) nicht schnell genug von der Leertaste runter kommt.

So bekommt man auch beim Drücken von Alt+Leertaste ein ganz normales Leerzeichen:

Datei ~/Library/KeyBindings/DefaultKeyBinding.dict öffnen (ggf. anlegen) und folgendes eintragen:

{
"~ " = ("insertText:", " ");
}

Danach neu einloggen.

zsh

zsh installieren:

brew install zsh

oh-my-zsh installieren:

sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

Plugins:

Terminal

Blöde rote, nervige Notification bei Terminal abschalten (kommt jedes mal, wenn sich in einem Terminal-Fenster ohne Fokus was ändert):

defaults write com.apple.dock no-bouncing -bool TRUE

Für jedes Terminal-Fenster eine eigene Bash-History behalten: In die .bash_profile (bzw. .bashrc) folgendes eintragen:

MYTTY=`tty`
HISTFILE=$HOME/.bash_history_`basename $MYTTY`

Versteckte Dateien im Finder anzeigen

defaults write com.apple.finder AppleShowAllFiles TRUE
killall Finder

SSH aktivieren

Launchd konfigurieren

Launchd ist unter Mac OS der Scheduler, mit dem man zu bestimmten Zeiten oder bei bestimmten Ereignissen Programme ausführen kann.

Konfigurationsbeschreibung siehe:

Gesichtserkennung ausschalten

Siehe auch: reddit-Beitrag

Gesichtserkennung ausschalten:

sudo launchctl remove com.apple.photoanalysisd

Gesichtserkennung wieder einschalten:

sudo launchctl load com.apple.photoanalysisd

Plattenplatz freischaufeln

Links:

Folgende Verzeichnisse sind Löschkandidaten:

Java-Version auf Mac wählen

Optional: Java über Homebrew installieren:

brew update
brew cask install java

Installierte Versionen zeigen:

/usr/libexec/java_home -V

In ~/.bash_profile eintragen:

export JAVA_HOME=`/usr/libexec/java_home -v 1.8.0_65`

Apache

Vorinstallierten Apache verwenden

Bei MacOS ist bereits ein Apache installiert. Diesen kann unter "Systemeinstellungen -> Freigaben -> Webfreigabe" aktivieren.

Fehlerbehebung:

PHP aktivieren:

Rewrite aktivieren:

Per Installer

MAMP ist ein Komplettpaket mit Apache, MySQL und PHP.

Download: http://www.mamp.info/de/

Über MacPorts

Außerdem kann man Apache über MacPorts installieren. Damit ist es leichter weitere Module wie z.B. PHP nachzuinstallieren.

Installation:

sudo port install apache2

Starten:

sudo /opt/local/apache2/bin/apachectl -k start

Stoppen

sudo /opt/local/apache2/bin/apachectl -k stop

Fehler unable to find IPv4 address of "my-host-name":

SSL aktivieren

Quelle: https://trac.macports.org/wiki/howto/MAMP

Zertifikat erzeugen:

openssl genrsa -des3 -out server.key 1024
# [enter your passphrase, a simple password we will remove soon]
openssl req -new -key server.key -out server.csr
# [you can accept all the defaults, it does not matter, or customize it to your liking]
openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt
# [will ask for passphrase]
cp server.key server.key.bak
openssl rsa -in server.key.bak -out server.key
# [passphrase needs to be typed]

Zertifikat kopieren:

sudo cp server.crt /opt/local/apache2/conf/
sudo cp server.key /opt/local/apache2/conf/

Folgende Zeilen zu /opt/local/apache2/conf/httpd.conf hinzufügen:

LoadModule ssl_module modules/mod_ssl.so

# Secure (SSL/TLS) connections
Include conf/extra/httpd-ssl.conf

Evtl. /opt/local/apache2/conf/extra/httpd-ssl.conf anpassen

PHP 5 installieren

Quelle: http://2tbsp.com/content/install_apache_2_and_php_5_macports

Installation von PHP (Weitere Installationsschalter siehe Quelle):

sudo port install php5 +apache2 +mysql5

Evtl. curl istallieren:

sudo port install php5-curl

PHP-Apache-Modul aktivieren:

cd /opt/local/apache2/modules
sudo /opt/local/apache2/bin/apxs -a -e -n "php5" libphp5.so

Apache-Konfiguration öffnen:

sudo pico /opt/local/apache2/conf/httpd.conf

DirectoryIndex anpassen, um index.php zulassen:

<IfModule dir_module>
  DirectoryIndex index.html index.php
</IfModule>

PHP-Mime-Type hinzufügen so dass PHP-Modul angesprochen wird:

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

php.ini anlegen:

sudo cp /opt/local/etc/php5/php.ini-production /opt/local/etc/php5/php.ini

Danach Apache neu starten:

sudo /opt/local/apache2/bin/apachectl -k stop
sudo /opt/local/apache2/bin/apachectl -k start

Zum Testen eine Datei mit dem Inhalt <?php phpinfo(); unterhalb vom DocumentsRoot ablegen und im Browser aufrufen.

nginx

Links:

über MacPorts

nginx installieren:

sudo port install nginx
sudo cp /opt/local/etc/nginx/mime.types.default /opt/local/etc/nginx/mime.types
sudo cp /opt/local/etc/nginx/nginx.conf.default /opt/local/etc/nginx/nginx.conf

Die Konfiguration liegt in /opt/local/etc/nginx/nginx.conf

Die Logs liegen per Default unter /opt/local/var/log/nginx/

über Homebrew

nginx installieren:

brew install nginx

Die Konfiguration liegt in /usr/local/etc/nginx/nginx.conf

Die WWW-Daten liegen per Default unter /usr/local/var/www/

nginx starten und stoppen

nginx starten (nginx startet dann trotzdem im Hintergrund):

sudo nginx

nginx stoppen:

sudo nginx -s stop

nginx neustarten:

sudo nginx -s reload

Weblinks:

Tomcat über MacPorts

Tomcat installieren (tomcat5 funktioniert leider nicht):

sudo port install tomcat6

Tomcat liegt dann unter /opt/local/share/java/tomcat6/.

Tomcat-User in /opt/local/share/java/tomcat6/conf/tomcat-users.xml eintragen:

<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
  <role rolename="tomcat"/>
  <role rolename="manager"/>
  <role rolename="admin"/>
  <user username="tomcat" password="password" roles="tomcat,admin,manager"/>
</tomcat-users>

Tomcat starten:

sudo tomcatctl start

Tomcat stoppen:

sudo tomcatctl stop

Git-Server aufsetzen

Quelle: Blog-Artikel

Jeder Nutzer muss bei sich einen SSH-Key generieren (falls noch nicht geschehen):

ssh-keygen -t rsa

Der Key liegt dann unter ~/.ssh/id_rsa.pub.

Auf dem Server SSH-Server aktivieren unter: Systemeinstellungen / Freigaben / Entfernte Anmeldung

Auf dem Server bei jedem User im Homeverzeichnis den Key hinzufügen:

cd /Users/myuser/
sudo mkdir .ssh
sudo sh -c 'cat /path/to/id_rsa_myuser.pub > .ssh/authorized_keys'
sudo chown -R myuser .ssh

SSH-Config öffnen:

sudo vim /etc/sshd_config

SSH-Config anpassen (entsprechende Zeilen suchen und wie unten anpassen):

# root-Login verbieten
PermitRootLogin no

# RSA-Key-Authentifizierung aktivieren
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile     .ssh/authorized_keys

# Passwort-Authentifizierung verbieten
PasswordAuthentication no
PermitEmptyPasswords no

# Mac-Passwort-Authentifizierung verbieten
UsePAM no

Repos-Verzeichnis anlegen:

sudo mkdir /var/repos
sudo chgrp users /var/repos

Git-Repo anlegen:

mkdir /var/repos/myrepo.git
cd /var/repos/myrepo.git
git init --bare

Auf lokalem Rechner Git-Repo klonen:

git clone myuser@myserver:/var/repos/myrepo.git

Alternative 1: Auf lokalem Rechner Git-Repo bei bestehendem Repo als origin setzen:

git remote add origin myuser@myserver:/var/repos/myrepo.git

Alternative 2: Auf lokalem Rechner Git-Repo auf die neue Origin-URI umbiegen:

git remote set-url origin myuser@myserver:/var/repos/myrepo.git

VirtualBox-Image verkleinern

Quellen: Blog-Artikel, Stackoverflow

In der Windows-VM:

In MacOS Disks auflisten:

VBoxManage list hdds

In MacOS Disks verkleinern (Endung .vdi):

VBoxManage modifymedium disk 'path/to/disk.vdi' --compact

In MacOS Disks verkleinern (Endung .vmdk):

VMware-Image verkleinern

Quelle: Blog-Artikel

In der Windows-VM:

In MacOS Disk verkleinern:

"/Applications/VMware Fusion.app/Contents/MacOS/diskTool" -k 0 path/to/disk-image.vmdk

Sleep-Modus ändern

Details: http://www.camma.ch/2009/04/28/hibernate-ruhezustand-auf-dem-mac/

Die wichtigsten Hibernate-Modi:

Für Desktop-Rechner ist 0 (sleep-only) voreingestellt, für Laptops ist 3 (sleep & hibernate) voreingestellt.

Aktuellen Modus anzeigen:

pmset -g | grep hibernatemode

Modus ändern - im Beispiel auf 0 (sleep only):

sudo pmset -a hibernatemode 0

Problembehebung

Boot-Optionen

Beim Start des Mac kann man direkt nach dem Start-Ton folgende Tasten gedrückt halten für Boot-Optionen:

Details: http://support.apple.com/kb/HT1343

Skype erkennt iSight-Kamera nicht mehr

Folgende Datei löschen: /Library/Preferences/com.skype.skype.plist