Brewfileをシェルスクリプト化したら少し幸せになった

loading... ぶ、Brewfileの方がカッコいいじゃないですか..(震え声) まあ実際そのとおりで、if文とか使えないので不便です。 さらに、すでにインストール済みのパッケージに新バージョンが出ている と、brew bundleの当該installでエラーになるのも不便です。 今までbrew update => brew outdated => brew upgrade => brew bundleな どと頭悪い感じに使っていたので、シェルスクリプト化して賢くしました。 下記シェルスクリプトを実行すると、更新対象のパッケージがあれば upgradeするかプロンプトで問い合わせ(Ctrl-cで中断可)、なければいつも のinstallフェーズに進みます。 作ってみたら、メソッドとデータを分けるという意味でもtapやinstallは Brewfileとして切り出すべきか…と余計もやもやしましたw 関連記事: 私もBoxen止めてBrewfile+brew-caskにした [2014-01-25-1]

2014-03-19 (Wed) · masutaka

phpenvでちょっと古めのphp-5.3.28をインストールしたメモ

ちょっと5.3系があるとうれしいかも的な状況になったので、OSX Mavericksで php-5.3.28をビルドしてみました。すると、こんなリンクエラーになります。 $ phpenv install 5.3.28 (省略) ----------------- | BUILD ERROR | ----------------- Here are the last 10 lines from the log: ----------------------------------------- _load_all_certs_from_file in openssl.o "_sk_value", referenced from: _zif_openssl_x509_parse in openssl.o _zif_openssl_csr_new in openssl.o _zif_openssl_pkcs7_verify in openssl.o _php_openssl_parse_config in openssl.o _php_openssl_sockop_set_option in xp_ssl.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) make: *** [sapi/fpm/php-fpm] Error 1 ----------------------------------------- The full Log is available at '/tmp/php-build....

2014-02-13 (Thu) · masutaka

Homebrewのnginxをphpenvのphp-fpm付きでセットアップしたメモ

最新のPHPを使えるようになったので[2014-02-09-1] 、nginxもセットアッ プしてみました。 これでようやくOSX MavericksのApache&PHPとオサラバできます。 php-fpmの設定と起動 ~/.phpenv/versions/5.5.9/etc/php-fpm.conf.defaultを以下のように修正し、 同ディレクトリにphp-fpm.confとして保存しました。 userとgroupをコメントアウトしているのは、今回のNgnixはユーザ権限で 動かす適当なものだからです。 listenはnginxとの橋渡しです。今回は同一マシンなのでUNIXドメインソケッ トを使用しました。 自動起動スクリプトを作成しました。 上記自動起動用のファイルを設置しました。 $ ln -sfv <path to org.php.php-fpm.plist> ~/Library/LaunchAgents 自動起動ON&起動しました。 $ launchctl load -w ~/Library/LaunchAgents/org.php.php-fpm.plist nginxのインストールと設定、起動 Apacheを自動起動する設定にしていたので削除しました。 $ sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist Ngnixはbrewコマンドでインストールしました。 (実際はbrew bundle[2014-01-25-1] でインストールしてます。) $ brew install nginx ==> Downloading http://nginx.org/download/nginx-1.4.4.tar.gz Already downloaded: /Library/Caches/Homebrew/nginx-1.4.4.tar.gz ==> ./configure --prefix=/usr/local/Cellar/nginx/1.4.4 --with-http_ssl_module --with-pcre --with-ipv6 --sbin-path=/usr/local/Cellar/nginx/1.4.4/bin/nginx --with-cc-opt=-I/usr ==> make ==> make install ==> Caveats Docroot is: /usr/local/var/www The default port has been set in /usr/local/etc/nginx/nginx....

2014-02-11 (Tue) · masutaka

HomebrewのphpenvでPHPをインストールしたメモ

Vagrant使ってたから、OSXでPHP使う必要なかっただけだから..(震え声) そういうわけでphpenvでPHP環境を作ってみました。まずは基礎知識。 phpenv Rubyのrbenv、Perlのplenvに相当。複数バージョンのPHPをHOMEにインストー ルし、切り替えて使うツール。というよりシステムを汚さないために使う感じ。 pecl, pear Rubyのgem、Perlのcpanmに相当。peclはCで書かれ、pearはPHPで書かれて いる。PHPはCで書かれたライブラリ(要は*.so)を動的にロードできないた め、このように分かれているそう。 composer Rubyのbundler、Perlのcartonに相当。アプリごとにライブラリを切り替え ることが出来る。 Homebrewのphpenvをインストール 普通にbrewコマンドでインストールします。 (実際はbrew bundle[2014-01-25-1] でインストールしてます。) $ brew install phpenv ==> Downloading https://github.com/CHH/phpenv/archive/01a2c1e25096f8ff10f2f781428a5d470e1ecaba.tar.gz Already downloaded: /Library/Caches/Homebrew/phpenv-01a2c1e.tar.gz ==> /usr/local/Cellar/phpenv/01a2c1e/bin/phpenv-install.sh ==> Caveats To finish installing phpenv: * Add ~/.phpenv/bin to your $PATH * Add "eval $(phpenv init -)" at the end of your ~/.bashrc * Restart your shell ==> Summary � /usr/local/Cellar/phpenv/01a2c1e: 6 files, 24K, built in 7 seconds 上の説明のとおり、~/.zshenvに以下を追加。...

2014-02-09 (Sun) · masutaka

HomebrewのPostgreSQLをきれいにインストールした

Heroku用にインストールしていたPostgreSQL.app をHomebrewのものに変更 しました。 PostgreSQL.app をアンインストール [Mac] PostgreSQL.app をアンインストール at technote を参考に。 /Library/PostgreSQL/9.3/uninstall-postgresql.appを実行 /Library/PostgreSQLを削除 OSXのシステム環境設定→ユーザとグループからpostgresユーザを削除 ~/.zshenvからsource /Library/PostgreSQL/9.3/pg_env.shを削除 環境変数とか残っているので、OSXを再起動するのが無難です。 HomebrewのPostgreSQLをインストール まずは普通にbrewコマンドでインストール。 (実際はbrew bundle[2014-01-25-1] でインストールしてます。) $ brew install postgres ==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/postgresql-9.3.2.mavericks.bottle.tar.gz Already downloaded: /Library/Caches/Homebrew/postgresql-9.3.2.mavericks.bottle.tar.gz ==> Pouring postgresql-9.3.2.mavericks.bottle.tar.gz ==> Caveats If builds of PostgreSQL 9 are failing and you have version 8.x installed, you may need to remove the previous version first. See: https://github.com/Homebrew/homebrew/issues/issue/2510 To migrate existing data from a previous major version (pre-9....

2014-02-01 (Sat) · masutaka

改めてHomebrewをクリーンインストールしたメモ

BoxenからHomebrewに戻ってきたので[2014-01-25-1] 、改めてまっさらな状 態からインストール。[2011-07-26-1] 以来だね。/usr/localは空っぽにしといた。 http://brew.sh より。 $ ruby -e “$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)" インストールが終わると、brew doctorしろと言われた。doctorから促され るがままにXQuartz-2.7.5.dmgをインストール。 brewのzsh補完ファイルのリンク先をBoxenからHomebrewに変更。 $ ln -sf /usr/local/Library/Contributions/brew_zsh_completion.zsh ~/.zsh/functions/_brew ※ ~/.zshrcでFPATH=$HOME/.zsh/functions:$FPATHを追加してある。 [2014-01-25-1] のBrewfile使って、brew bundleで各パッケージをインストール。 Rubyはrbenvから2.0.0-p353とruby-2.1.0をインストール。 # ruby-buildはHomebrew管理にはしない $ git clone git@github.com:sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build # 2.1.0のインストール $ RUBY_CONFIGURE_OPTS="--with-readline-dir=`brew --prefix readline` --with-openssl-dir=`brew --prefix openssl`" rbenv install 2.1.0 $ rbenv global 2.1.0 && rbenv rehash && rehash $ cat ~/projects/home/Gemfile.txt | xargs gem install $ rbenv rehash && rehash # 2.0.0-p353のインストール $ RUBY_CONFIGURE_OPTS="--with-readline-dir=`brew --prefix readline` --with-openssl-dir=`brew --prefix openssl`" rbenv install 2....

2014-01-25 (Sat) · masutaka

私もBoxen止めてBrewfile+brew-caskにした

Boxenと比べなくても、導入が簡単なので何かとオススメです。 要点 Brewfileを使えば、インストールするパッケージを管理できる BrewfileはHomebrewで最初から使える brew-caskもインストールすれば、Chromeとかもインストールできる Boxenの問題点 [2013-11-23-1] に導入したBoxenは以下の問題がありました。 ○インストールした一部のツールが壊れていることがある。再インストー ルで直ることもあるし、直らないこともある(詳細は[2013-11-23-1] の追記 参照)。 % wget zsh: illegal hardware instruction wget ○PuppetfileでRubyレシピ等のバージョンが固定されているため、最新の バージョンを気軽に試しづらい。というか、レシピのバージョンを上げて も問題がないか試したり考えたりするのが面倒くさい。 ○パッケージをインストールしたり構成を変えるときに、エネルギーがい る。なんだか腰が重い。 というわけでBoxenはズビっと削除しました。 $ git clone git@github.com :masutaka/my-boxen.git $ cd my-boxen $ ./script/nuke –all –force 導入方法 Homebrewではbrew bundleコマンドが最初から使えます。このコマンドは カレントディレクトリのBrewfileに書かれたコマンドを実行します。 brew bundle path/to/Brewfileのようにファイルを指定することも出来ます。 Brewfileは例えばこんな感じ update install ack こちらと同じ意味になります。 $ brew update $ brew install ack また、brew-caskというコマンドをインストールすることで、Chromeや Skypeなどのアプリも入れられます。 brew-caskはデフォルトのFormulaには含まれていないので、brew tapでリ ポジトリを追加する必要があります。/usr/local/Library/Taps以下にクロー ンされ、/usr/local/Library/Formula以下にシンボリックリンクが張られ ます。 以上を考慮したBrewfileがこちらになります。 tap phinze/homebrew-cask install brew-cask cask install google-chrome...

2014-01-25 (Sat) · masutaka

plenv + cpanm + cartonでPerlの環境を構築した(OSX版)

[2013-07-17-1] のOSX(Mountain Lion)版です。こっちはめっちゃ簡単。 brewでplenvとperl-buildをインストール % brew install plenv % brew install perl-build あとはUbuntuと同じようにperl+cpanm+cartonをインストール % plenv install 5.18.0 -Dusethreads % plenv global 5.18.0 && plenv rehash && rehash % plenv install-cpanm % plenv exec cpanm Carton P.S. 入れたは良いけど、OSXでPerl使わないなーと思ってたら、chalow(このブ ログを生成するツール)で使ってた。てか、HTML::Templateがなくて chalowを実行出来なくなっていた…。早速インストール☆ % plenv exec cpanm HTML::Template

2013-07-17 (Wed) · masutaka

migemo の Formula を作った

migemo の Formula を作りました。本来であれば、pull request 送るもの だと思いますが、日本語に特化したツールのリクエストを送って良いか判 断が付かなかったので、とりあえず gist に上げました。 /usr/local/Library/Formula 以下に上記 Formula をコピーしたら、 “brew install migemo” するだけでインストールできます。 あとは以下を設定するだけです。 # ~/.zshenv export RUBYLIB=/usr/local/lib/ruby ;; ~/.emacs (require 'migemo) 追記(2011-11-26): pull request を送りました。 気長に待ちます。 追記(2011-11-28): 却下されました。migemo の Formula が depends_on ’emacs’ なことと、 ruby-(bsearch|romkan) が gems に存在するためとのこと。

2011-10-10 (Mon) · masutaka

Macports から Homebrew への移行と、Homebrew の使い方まとめ

Macports [2011-01-27-1] は便利と言えば便利なのですが、パッケージに 依存関係があると、既に /usr/bin とかにインストール済みのコマンドで も構わずインストールしてしまいます。 同じコマンドが複数存在することになり気持ち悪いですし、何よりインス トールに時間がかかるので、評判のよい Homebrew に移行することにしま した。 Homebrew のインストール方法は Installation - GitHub をご覧下さい。 Homebrew は /usr/local 以下にインストールされます。そのため、root 権限がなくても staff group に所属してさえいれば、各種 Formula(=パッ ケージ) をインストールできます。 私がよく使いそうなコマンドはこんな感じです。詳細は “man brew” してね。 Homebrew 自身のアップデート |% brew update インストール済みの Formula で最新でないものを確認。 |% brew outdated インストール済みの Formula の一括アップデート |% brew upgrade Formula を検索する |% brew search Formula の情報を得る |% brew info Formula をインストールする |% brew install Formula をアンインストールする |% brew remove インストールしてある Formula をすべて表示...

2011-07-26 (Tue) · masutaka