Slide 1

Slide 1 text

A STORM HOMEBREWIN'

Slide 2

Slide 2 text

WHO AM I

Slide 3

Slide 3 text

WHO AM I ➤ Maxime Fabre

Slide 4

Slide 4 text

WHO AM I ➤ Maxime Fabre ➤ I'm Français oui oui Monsieur

Slide 5

Slide 5 text

WHO AM I ➤ Maxime Fabre ➤ I'm Français oui oui Monsieur ➤ Closer to my 30s than I'd like

Slide 6

Slide 6 text

WHO AM I ➤ Maxime Fabre ➤ I'm Français oui oui Monsieur ➤ Closer to my 30s than I'd like ➤ Occasionally do photos, music, and stuff

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

I EM WEB DEVLUPR

Slide 9

Slide 9 text

$ brew install

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

nobody loves me anymore :(

Slide 13

Slide 13 text

/usr/local/bin/php /usr/bin/php MACPORTS HOMEBREW

Slide 14

Slide 14 text

$ brew install money-in-my-account

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

BUT WAIT THERE'S... MORE?

Slide 17

Slide 17 text

BUT WAIT THERE'S... MORE? ➤ brew services management

Slide 18

Slide 18 text

BUT WAIT THERE'S... MORE? ➤ brew services management ➤ brew version locking and switching

Slide 19

Slide 19 text

BUT WAIT THERE'S... MORE? ➤ brew services management ➤ brew version locking and switching ➤ brew applications management

Slide 20

Slide 20 text

BUT WAIT THERE'S... MORE? ➤ brew services management ➤ brew version locking and switching ➤ brew applications management ➤ brew synchronize dependencies

Slide 21

Slide 21 text

BUT WAIT THERE'S... MORE? ➤ brew services management ➤ brew version locking and switching ➤ brew applications management ➤ brew synchronize dependencies ➤ brew tips

Slide 22

Slide 22 text

BUT WAIT THERE'S... MORE? ➤ brew services management ➤ brew version locking and switching ➤ brew applications management ➤ brew synchronize dependencies ➤ brew tips ➤ brew coffee

Slide 23

Slide 23 text

BUT WAIT THERE'S... MORE? ➤ brew services management ➤ brew version locking and switching ➤ brew applications management ➤ brew synchronize dependencies ➤ brew tips ➤ brew coffee ➤ brewce campbell

Slide 24

Slide 24 text

BUT WAIT THERE'S... MORE? ➤ brew services management ➤ brew version locking and switching ➤ brew applications management ➤ brew synchronize dependencies ➤ brew tips ➤ brew coffee ➤ brewce campbell ➤ brew you PC?

Slide 25

Slide 25 text

BREW SERVICES

Slide 26

Slide 26 text

$ sudo services elasticsearch restart SERVICES ELSEWHERE

Slide 27

Slide 27 text

MEANWHILE ON OSX $ launchctl

Slide 28

Slide 28 text

MEANWHILE ON OSX $ launchctl $ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.php56.plist

Slide 29

Slide 29 text

$ brew tap homebrew/services GETTING BREW SERVICES

Slide 30

Slide 30 text

$ brew services list Name Status User Plist mysql started anahkiasen ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist nginx started root /Library/LaunchDaemons/homebrew.mxcl.nginx.plist php70 stopped LISTING AVAILABLE SERVICES

Slide 31

Slide 31 text

$ brew start mysql $ brew restart --all $ brew stop php70 && brew start php56 MANAGING SERVICES

Slide 32

Slide 32 text

$ sudo brew start mysql SETTING UP GLOBAL SERVICES

Slide 33

Slide 33 text

LOCAL SERVICES RUN ON LOGIN GLOBAL SERVICES RUN ON BOOT

Slide 34

Slide 34 text

alias services="brew services"

Slide 35

Slide 35 text

services ls services s mysql services r nginx alias services="brew services"

Slide 36

Slide 36 text

BREW VERSIONS

Slide 37

Slide 37 text

$ brew tap homebrew/versions GETTING BREW VERSIONS

Slide 38

Slide 38 text

$ brew install php56 php70 INSTALLING MULTIPLE MAJORS

Slide 39

Slide 39 text

$ brew install php56 php70 INSTALLING MULTIPLE MAJORS

Slide 40

Slide 40 text

$ brew search ruby ruby homebrew/versions/ruby182 homebrew/versions/ruby192 homebrew/versions/ruby193 homebrew/versions/ruby20 VIEWING AVAILABLE MAJORS

Slide 41

Slide 41 text

$ brew tap homebrew/versions $ brew install ruby192 INSTALLING A MAJOR $ brew install homebrew/versions/ruby192

Slide 42

Slide 42 text

$ brew unlink ruby $ brew link ruby192 SWITCHING BETWEEN MAJORS

Slide 43

Slide 43 text

No content

Slide 44

Slide 44 text

No content

Slide 45

Slide 45 text

No content

Slide 46

Slide 46 text

$ brew install php56

Slide 47

Slide 47 text

LOCKING MINORS $ brew pin php56 $ brew unpin php56

Slide 48

Slide 48 text

LOCKING MINORS $ brew pin php56 $ brew unpin php56 $ brew tap-pin homebrew/php $ brew tap-unpin homebrew/php

Slide 49

Slide 49 text

LOCKING MINORS $ brew pin php56 $ brew unpin php56 $ brew tap-pin homebrew/php $ brew tap-unpin homebrew/php

Slide 50

Slide 50 text

$ php --version PHP 5.6.66 (buggy) (built: Feb 31 2051 10:18:58)

Slide 51

Slide 51 text

$ brew info php56 PHP Version 5.6 /usr/local/Cellar/php56/5.6.18 (330 files, 50M) * Built from source with: --with-thread-safety --without-apache --with-phpdbg /usr/local/Cellar/php56/5.6.17 (327 files, 49M) Built from source with: --with-thread-safety --without-apache --with-phpdbg REVERTING UPDATE

Slide 52

Slide 52 text

$ brew switch php56 5.6.17 REVERTING UPDATE

Slide 53

Slide 53 text

BREW APPS

Slide 54

Slide 54 text

No content

Slide 55

Slide 55 text

$ brew install chrome iterm atom

Slide 56

Slide 56 text

No content

Slide 57

Slide 57 text

$ brew tap caskroom/cask

Slide 58

Slide 58 text

$ brew cask install google-chrome INSTALLING APPLICATIONS

Slide 59

Slide 59 text

$ brew cask install google-chrome INSTALLING APPLICATIONS $ brew tap caskroom/versions $ brew cask install google-chrome-dev phpstorm-eap

Slide 60

Slide 60 text

$ brew tap caskroom/fonts $ brew cask install font-inconsolata ALSO MANAGES FONTS

Slide 61

Slide 61 text

BREW BUNDLE

Slide 62

Slide 62 text

No content

Slide 63

Slide 63 text

)

Slide 64

Slide 64 text

$ brew tap homebrew/bundle GETTING BREW BUNDLE

Slide 65

Slide 65 text

$ touch ~/Brewfile CREATING YOUR BUNDLE

Slide 66

Slide 66 text

# List needed taps tap "homebrew/versions" tap "caskroom/cask" tap "homebrew/php" tap "homebrew/nginx" WHAT GOES IN A BREWFILE?

Slide 67

Slide 67 text

# Utilities brew "curl" brew "git" brew "node" # Server brew "nginx" brew "mysql" # PHP brew "php70", args: ['with-thread-safety', 'without-apache'] brew "php70-pthreads" brew "composer" WHAT GOES IN A BREWFILE?

Slide 68

Slide 68 text

# Applications cask "atom" cask "phpstorm-eap" cask "iterm2-beta" cask "vagrant" cask "virtualbox" # Quicklook cask "qlmarkdown" cask "quicklook-csv" cask "quicklook-json" WHAT GOES IN A BREWFILE?

Slide 69

Slide 69 text

$ brew bundle

Slide 70

Slide 70 text

$ brew bundle dump CREATING A BREWFILE FROM INSTALLED DEPENDENCIES $ brew bundle check CHECKING IF EVERYTHING FROM THE BREWFILE IS INSTALLED AND UP TO DATE

Slide 71

Slide 71 text

No content

Slide 72

Slide 72 text

No content

Slide 73

Slide 73 text

$ brew install mackup $ mackup backup

Slide 74

Slide 74 text

No content

Slide 75

Slide 75 text

# Get Homebrew $ /usr/bin/ruby -e "$(curl -fsSL ...install)" # Restored dotfiles and Brewfile $ brew install mackup $ mackup restore $ brew tap homebrew/bundle $ brew bundle IF YOUR COMPUTER CRASHES AGAIN

Slide 76

Slide 76 text

BREW TIPS

Slide 77

Slide 77 text

$ brew list autoconf curl gnupg libffi mackup pcre php70-pthreads tesseract automake czmq gobject-introspection libgpg-error makedepend php56 php70-redis tree blackfire-agent fontconfig harfbuzz libksba mcrypt php56-crypto pixman ttfautohint blackfire-php56-zts fontforge htop-osx libpng mhash php56-igbinary pkg-config unar boost freetype hub libsodium mysql php56-intl pngquant unixodbc 1. LISTING ONLY OWN DEPENDENCIES

Slide 78

Slide 78 text

$ brew leaves php56 composer git 1. LISTING ONLY OWN DEPENDENCIES

Slide 79

Slide 79 text

$ brew search vagrant > Nothing 2. SEARCHING RELATED PACKAGES

Slide 80

Slide 80 text

$ brew desc (-s|-n|-d) vagrant otto: Development and deployment system designed as the successor to Vagrant vassh: Vagrant Host-Guest SSH Command Wrapper/Proxy/Forwarder 2. SEARCHING RELATED PACKAGES

Slide 81

Slide 81 text

$ brew install php56 --something --something 3. CHECK POSSIBLE BUILD OPTIONS

Slide 82

Slide 82 text

$ brew options php56 --with-cgi Enable building of the CGI executable (implies --without-fpm) -with-thread-safety Build with thread safety --without-apache Disable building of shared Apache 2.0 Handler module --with-phpdbg Enable building of the phpdbg SAPI executable (PHP 5.4 and above) Include Libxml2 support via Homebrew 3. CHECK POSSIBLE BUILD OPTIONS

Slide 83

Slide 83 text

$ brew install php56-pthreads 4. INSTALLING DEVELOPMENT VERSIONS

Slide 84

Slide 84 text

$ brew reinstall php56-pthreads (--devel|--HEAD) 4. INSTALLING DEVELOPMENT VERSIONS

Slide 85

Slide 85 text

BREW QUESTIONS?

Slide 86

Slide 86 text

$ brew done anahkiasen
 anahkiasen
 anahkiasen
 anahkiasen
 anahkiasen
 anahkiasen
 anahkiasen
 anahkiasen
 anahkiasen facebook.com/
 twitter.com/
 github.com/
 flickr.com/
 last.fm/user/
 steamcommunity.com/id/
 blogs.wefrag.com/
 soundcloud.com/
 trakt.tv/users/

Slide 87

Slide 87 text

5. BREW ELSEWHERE: LINUX

Slide 88

Slide 88 text

$ pact Usage: "pact install " to install given packages "pact remove " to remove given packages "pact update " to update given packages "pact show" to show installed packages "pact find " to find packages matching patterns "pact describe " to describe packages matching patterns "pact packageof " to locate parent packages "pact invalidate" to invalidate pact caches (setup.ini, etc.) Options: --mirror, -m : set mirror --invalidate, -i : invalidates pact caches (setup.ini, etc.) --force, -f : force the execution 5. BREW ELSEWHERE: WINDOWS

Slide 89

Slide 89 text

No content