Mac OSX10.8(Mountain Lion)にrbenvでruby-1.9.3&ruby-2.0.0を導入する
OSX 10.8.2のMacBook Airにrbenvを使ってruby環境を構築したときのメモ。
まずはHomebrewでrbenv
とruby-build
をインストールする。
$ brew install rbenv $ brew install ruby-build
XcodeのCommand Line Toolsで入るコンパイラはllvm-gccだかllvm-clangらしく、1.9.3-p385をビルドしようとするとエラーがでる。 別途gccをインストールしてそれを使う必要があるようだ。
$ brew tap homebrew/dupes $ brew install apple-gcc42 $ CC=/usr/local/bin/gcc-4.2 rbenv install 1.9.3-p385
2.0.0はCommand Line Toolsで入るコンパイラでもビルドできるみたい(たぶん)。
$ rbenv install 2.0.0-p0
GitHub+Octopressでブログ構築
GitHub+Octopressでブログを構築したときのメモ。
今回はGithub PagesのUser& Organization Pagesにブログを設置する。
あらかじめアカウント名.github.com
という名前のレポジトリを生成しておく。
サイトのURLはhttp://アカウント名.github.com/
になる。
Ruby 1.9.3
が必要。
$ git clone https://github.com/imathis/octopress.git atijust.github.com $ cd atijust.github.com $ rbenv global 1.9.3-p194 $ gem install bundler $ rbenv rehash $ bundle install $ rake install $ rake setup_github_pages Enter the read/write url for your repository: git@github.com:atijust/atijust.github.com.git $ rake generate $ rake deploy
rake generate
で_deploy
以下にサイトに公開されるファイルが生成されるようだ。
rake deploy
で_deploy
がmasterブランチにpushされ、
http://atijust.github.com/から参照できるようになる。
設定ファイルやポストはsourceブランチで管理するようなので別途pushしておく。
$ git add . $ git commit -m '最初のコミット' $ git push -u origin source
設定は_config.yml
で行う。
url: http://atijust.github.com title: GitHubでブログのテスト subtitle: Octopressでおためしブログ author: atijust simple_search: http://google.com/search description:
ポストを作成するコマンドが用意されている。
$ rake new_post['octopress-install'] $ vi source/_posts/2013-03-03-octopress-install.markdown
画像ファイルはsource/images
に月毎にディレクトリを作成して設置することにした。
rake generate
で_deploy
以下にコピーされるので絶対パスで指定。
書き終わったら生成&デプロイ。
$ rake generate $ rake deploy
ローカルでプレビューもできる。
$ rake preview
CentOS6.2にgollumをセットアップしたときのメモ
ドキュメントはMarkdownで書いてGitで管理しているのですが、Webインターフェースがあると便利だな、ということでgithub/gollum · GitHubをセットアップしてみました。
環境はCentOS6.2です。
まずはRubyのインストール。1.8.7以前でしか動かないので注意。
# yum install ruby # yum install ruby-devel # yum install rubygems
gollumの動作に必要なライブラリをインストール。
# yum -y install libxml2-devel # yum -y install libxslt-devel
gollum本体のインストール。GFMに必要なgemもインストールします。
# gem install gollum # gem install github-markdown
gollumはRedcarpetの1.Xでしか動かないらしい。
# gem uninstall redcarpet # gem install redcarpet --version=1.17.2
これでインストールは完了です。
引数にgitリポジトリを指定して起動。
# gollum /path/to/doc.git
組み込みWebサーバがポート4576で起動します。
そっけない画面ですがプレビューとか検索とか使えて素敵です。
ホストとかポートはオプションで指定する感じ。
# gollum --help Gollum is a multi-format Wiki Engine/API/Frontend. Basic Command Line Usage: gollum [OPTIONS] [PATH] PATH The path to the Gollum repository (default .). Options: --port [PORT] Bind port (default 4567). --host [HOST] Hostname or IP address to listen on (default 0.0.0.0). --version Display current version. --config [CONFIG] Path to additional configuration file --irb Start an irb process with gollum loaded for the current wiki. --page-file-dir [PATH] Specify the sub directory for all page files (default: repository root). --ref [REF] Specify the repository ref to use (default: master).
認証とかないのでローカル以外で使うときは注意が必要かな。
さくらのVPSに新しめのGitをインストール
対象とする環境はCentOS6.2 64bitです。
# rpm -q centos-release centos-release-6-2.el6.centos.7.x86_64
標準のパッケージにもGitはありますが、新しいのが使いたかったのでRPMForgeからインストールしてみました。
まずはRPMForgeのインストール。
http://wiki.centos.org/AdditionalResources/Repositories/RPMForge
CentOSのwikiの通りにインストールします。
# rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt # wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm # rpm -K rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm # rpm -i rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
標準パッケージを置き換えないようにRPMForgeをデフォルトで無効にするよう推奨するサイトもあるみたいですが、最近のRPMForgeでは標準パッケージを置き換えるものはrpmforge-extrasに分離されており、これは最初からデフォルトで無効になっているので、特に気にする必要はないと思います。
どうしても気になる場合は/etc/yum.repos.d/rpmforge.repoを編集して無効にしましょう。
# sed -i -e "s/^enabled = 1$/enabled = 0/g" /etc/yum.repos.d/rpmforge.repo
Gitはrpmforge-extrasに収録されています。CentOS5のころはextrasではなかったのですが、CentOS6から標準パッケージにもGitが収録されるようになってextrasに移動したようです。
オプションでextrasを有効にしてインストールします。
# yum install --enablerepo=rpmforge-extras git
バージョンを確認してみる。
# git --version git version 1.7.10
(1.7.10ってまだRCだったような・・・)
ComposerのクラスローダをAPCで高速化
$loader = require __DIR__.'/vendor/.composer/autoload.php';
spl_autoload_register(function ($class) use ($loader) {
$file = apc_fetch($class);
if ($file === false) {
$file = $loader->findFile($class);
apc_store($class, $file);
}
return $file;
}, true, true);
アプリ全体からすればクラスローダのオーバーヘッドは相対的に小さいであろうから、チューニングの意味があるかどうかは微妙なんだけど、取り敢えずおまじないってことで。今度ちゃんと計測してみよう。
(シンタックスハイライトがまだ実装されてない?はてなェ・・・)
コマンドラインのPHPでAPCを使う
CLIではデフォルトでAPCが無効になっている。
CLIでもAPCを使えるようにするにはphp.iniでapc.enable_cliを1に設定する。
apc.enable_cli = 1
APCのキャッシュはプロセスごとに独立しているのでCLIで使えたところで特に意味はない。スクリプトの実行が終わるたびにキャッシュは破棄されるので性能上の恩恵はない(ハズ)。使い所としてはテストやAPC関数の挙動確認くらい。
一時的に有効にするだけならコマンドラインオプションで設定してもよい。
php -d apc.enable_cli[=1] test.php
PHPの拡張モジュールをphpizeでビルドする方法
PECLではなくてphpizeで拡張モジュールをビルドしたときのメモ。
PHPは/opt/php-5.3.10以下にインストールされているとします。
$ wget http://pecl.php.net/get/memcached-2.0.1.tgz $ tar xf memcached-2.0.1.tgz $ cd memcached-2.0.1 $ /opt/php-5.3.10/bin/phpize $ ./configure --with-php-config=/opt/php-5.3.10/bin/php-config $ make # make install
PHP: phpize で共有 PECL 拡張モジュールをコンパイルする方法 - Manual
基本はマニュアル通りなんだけど、複数バージョンのPHPをインストールしてる場合なんかは、configureオプションの--with-php-configに拡張モジュールをインストールしたいのと同じ場所にあるphp-configを指定してやる必要がある。php-configはPHPの設定情報を返すコマンド。拡張モジュールのインストール先はphp-configを元に決定される。インストールしたいのと同じ場所にあるphpizeを使うだけではダメ。