No já snad nevěřím svým očím! On vyvíjí na Macu! – tahle spontánní reakce mě přiměla sepsat své osobní zkušenosti s vývojem webových stránek pod nakousnutým jablkem. Tento článek by zároveň měl sloužit jako odrazový můstek pro nové vývojáře webových stránek, kteří hodlají používat Mac. Nakonec je určen také těm, kteří rádi experimentují a poznávají nové světy.
Nudný úvod
Ten klidně můžete rovnou přeskočit na další kapitolu, pokud vás nezajímá historie operačního systému od firmy Apple.
Moderní éru desktopových operačních systémů odstartoval Mac OS X (Macintosh Operating System 10) v roce 2001 – jeho hlavním přínosem bylo UNIX jádro a nové grafické rozhraní. Od roku 2012 se z označení vytratilo z označení Mac. Operační systém je nyní označován pouze jako OS X. Jednotlivé verze jsou rozlišeny prostřednictvím kódového jména. Poslední stabilní verze nese označení OS X Mavericks (verze OS X 10.9). Během října 2014 se můžete těšit na další aktualizaci (OS X Yosemite).
Co budeme instalovat?
Za slovním spojením “moderní webové aplikace” se může skrývat téměř cokoliv. Budu tedy vycházet ze své vlastní konfigurace:
- jako webový server použijeme NGINX
- nainstalujeme si PHP-FPM
- Mongodb, Memcached a Redis
- a samozřejmě také MySQL
- zprovozníme nodejs a balíčkovací systém npm.
- nakonec aktualizujeme některé systémové knihovny (git, bash)
Balíčkovací systém
OS X nemá balíčkovací systém! (Uživatelé Linuxu se teď zhluboka nadechnou a přestanou panikařit.) Existují tři balíčkovací systémy, které nepochází z dílny Apple:
Začínal jsem s MacPorts a postupně zcela přešel na Homebrew. Pro který hovoří několik pozitiv:
- více spoléhá na systém a používá systémové knihovny. Nese to s sebou větší závislost na systému, ale vyšší rychlost při kompilaci/instalaci balíčku.
- je “pouhou” Ruby obálkou nad systémovými příkazy (make, configure, make install).
- instaluje balíčky do
/usr/local
nepřepisuje tak systémové soubory, vytváří pouze symlinky. - programy se instalují pod aktuálně přihlášeným uživatelem.
- instalační předpisy jsou kratší a lépe pochopitelné.
Takže si Homebrew nainstalujeme. Spusťte si aplikaci Terminál (⌘+Space
– Terminal) a spusťte následující příkaz (bez sudo):
ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
Následujte instrukce na obrazovce:
==> This script will install:
/usr/local/bin/brew
/usr/local/Library/...
/usr/local/share/man/man1/brew.1
Press RETURN to continue or any other key to abort
==> /usr/bin/sudo /bin/mkdir /usr/local
WARNING: Improper use of the sudo command could lead to data loss
or the deletion of important system files. Please double-check your
typing when using sudo. Type "man sudo" for more information.
To proceed, enter your password, or type Ctrl-C to abort.
Password:
==> /usr/bin/sudo /bin/chmod g+rwx /usr/local
==> /usr/bin/sudo /usr/bin/chgrp admin /usr/local
==> /usr/bin/sudo /bin/mkdir /Library/Caches/Homebrew
==> /usr/bin/sudo /bin/chmod g+rwx /Library/Caches/Homebrew
==> Installing the Command Line Tools (expect a GUI popup):
==> /usr/bin/sudo /usr/bin/xcode-select --install
Nezapomeňte nainstalovat XCode Command Line Toolls (je tam hlavně kompilátor jazyka C).
xcode-select: note: install requested for command line developer tools
Press any key when the installation has completed.
==> Downloading and installing Homebrew..
==> Installation successful!
==> Next steps
Run `brew doctor` before you install anything
Run `brew help` to get started
Hotovo! Na závěr ověřte funkčnost pomocí příkazu brew doctor
, měl by vypsat Your system is ready to brew
.
Textový editor
Během celého instalačního procesu budete potřebovat upravit řadu konfiguračních souborů, proto si nejprve nainstalujte kvalitní textový editor. Doporučuji zvolit Sublime. Pomocí následujícího příkazu si po dokončení instalce vytvořte symlink subl
, bude se vám hodit později:
sudo ln -s /Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl /bin/subl
Začneme instalací NGINX
V terminálu spusťte příkaz brew install nginx
a vyčkejte na dokončení. Pokud budete chtít spouštět NGINX automaticky po startu systému, vytvořte si následující symlink:
ln -sfv /usr/local/opt/nginx/*.plist ~/Library/LaunchAgents
Server spustíte pomocí příkazu nginx
a funkčnost ověříte zadáním příkazu open http://localhost:8080
Více informací o konfiguraci NGINX naleznete zde: https://github.com/OzzyCzech/dotfiles/blob/master/readme.md#configuration
Instalace PHP-FPM
Před instalací PHP musíte nejprve naklonovat instalační předpisy:
brew tap homebrew/dupes
brew tap homebrew/versions
brew tap homebrew/homebrew-php
Poté stačí spustit příkaz:
brew install --without-apache --with-fpm --with-mysql php55
Můžete vyrazit na kafe (máte cca 20 minut čas). Dále jistě budete potřebovat řadu PHP knihoven, ty vyhledáte pomocí příkazu brew search php55
. Namátkou jsem vybral několik nejdůležitějších:
brew install php55-http
brew install php55-mongo
brew install php55-apcu
brew install php55-opcache
brew install php55-redis
brew install php55-xhprof
brew install php55-xdebug
# atd...
Po dokončení instalace přidejte do souboru ~/.bash_profile
následující řádek:
export PATH="/usr/local/bin:/usr/local/sbin:$PATH"
OS X totiž obsahuje starší verzi PHP, kterou nechceme používat. Restartujte terminál (⌘+Q
) a pomocí příkazu php -v && php-fpm -v
ověřte, že vše funguje, jak má.
PHP 5.5.15 (cli) (built: Aug 6 2014 13:46:45)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
Závěrem vytvořte symlink ln -sfv /usr/local/opt/php55/*.plist ~/Library/LaunchAgents
, který PHP-FPM nastartuje po spuštění systému.
Více o konfiguraci PHP-FPM naleznete zde: https://github.com/OzzyCzech/dotfiles/blob/master/readme.md#configuration-and-phpini
Mongo, Redis, Memcached, Mysql
Ty můžete klidně nainstalovat najednou:
brew install mongodb redis mysql memcached
A pokud budete chtít vše spouštět po startu systému, vytvořte si symlinky:
ln -sfv /usr/local/opt/mongodb/*.plist ~/Library/LaunchAgents # mongodb
ln -sfv /usr/local/opt/memcached/*.plist ~/Library/LaunchAgents # memcached
ln -sfv /usr/local/opt/redis/*.plist ~/Library/LaunchAgents # redis
ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents # mysql
Případně si můžete jednotlivé služby spustit hned:
mongod --config /usr/local/etc/mongod.conf # mongodb
redis-server /usr/local/etc/redis.conf # redis
/usr/local/opt/memcached/bin/memcached # memcached
mysql.server start # mysql
Bude se vám hodit příkaz sudo lsof -i -P | grep -i "listen"
, pomocí kterého vypíšete všechny aplikace poslouchající na nějakém portu.
Nodejs a npm
Opět stačí spustit jednoduše spustit brew install nodejs
balíčkovací systém npm bude nainstalován automaticky. Funkčnost ověříte pomocí příkazu node --version
.
Git a bash
Instalace OS X obsahuje starší verzi git, můžete ji bez obtíží používat. Přesto doporučuji provést aktualizaci. Novější verzi nainstalujte pomocí příkazu brew install git
.
Po dokončení instalace budete muset nový git prolinkovat do systému brew unlink git && brew link git
. Restartujte terminál (⌘+Q
) a spusťte příkaz git --version
– měli byste používat novější verzi.
Novější bash opět nainstalujete pomocí příkazu brew install bash
. Poté je potřeba nastavit terminál, aby tento novější bash začal používat.
V okně Terminalu stiskněte ⌘+,
(nebo přes menu Terminal > Preferences…) a v záložce Startup > Shell Open With nastavte cestu /usr/local/bin/bash
a opět restartujte Terminal.
Jak vše udržet funkční
Čas od času spusťte brew update && brew outdated
a zastaralé aktualizujte pomocí brew upgrade [name]
– ušetříte si tím spoustu nervů při aktualizaci velkého počtu balíčků najednou.
Homebrew uchovává všechny starší verze balíčků, má tendenci nekontrolovaně růst (brew info
). Úklid provedete pomocí příkazu brew cleanup
– tento příkaz odstraní všechny nepoužívané soubory a starší verze.
Závěrem ty osobní zkušenosti
Jsou tomu tři roky, co jsem opustil Ubuntu a ještě déle předtím Windows. Za tři roky jsem si zvykl na jiné rozložení klávesnice. Zvykl jsem si na ⌘+R
místo F5
pro obnovení stránky v prohlížeči. A hlavně jsem si zvykl na to, že když něco funguje, tak to šetří spoustu drahocenného času.
- Nové verze systému obvykle přežijete bezbolestně. Je lepší mít zadní vrátka v podobě zálohy na Time Machine.
- Aktualizace systému (jedna až dvě ročně) se obvykle provedou bez vaší asistence v noci.
- Více monitorů nebo projektor neznamená problém.
- Notifikace, AirDrop, Spotlight, iMessage prostě fungují.
Abych jen nechválil. OS X není case sensitive (přestože se tak tváří). Pokud si disk naformátujete tak, aby skutečně case sensitive byl – nebude vám fungovat řada programů. Je tedy lepší dávat pozor při pojmenovávání souborů a nechat to tak, jak to je (Mac OS Extended (Journaled)).
OS X neumí nativně zapisovat na NTFS disky. Dříve nebo později na takový disk narazíte. Jedinou cestou je používat exFat nebo specializovaný software.
Každá záloha může selhat. Verzujte si své uživatelské nastavení a instalované balíčky: https://github.com/OzzyCzech/dotfiles
Přehled komentářů