タグ別アーカイブ: brew

gistを便利に使うためのコマンドラインツール「gist」


githubのgistって便利ですよねー。ソースコード単位で変更管理が出来る。
サンプルなどを載せるのには最適ですね。
ただ、毎回ブラウザでアクセスして、テキストエリアに貼り付けてって面倒臭いですねー。それを解消するためのツールが「gist」

    【インストール方法】
    自分はMacでbrewを使っているので
    % brew install gist

以下のようにやるとちゃちゃっとgistにアップできます。gistのmanページに記載されていますー!!

    % gist < file.txt
    % echo secret | gist --private
    % echo "puts :hi" | gist -t rb
    % gist script.py
    % gist -
    この場合、ユーザの設定もしていないのであれば Anonymous としてアップされる

githubのアカウントの設定方法とアカウント情報をgitconfigに直で書くのではなく、includeを使って別ファイルを用いた処理について書きます!!
ちょっとハマった部分もありメモ代わりに


gistコマンドにgithubのアカウント設定

事前にgithubのアカウントは所持していることが前提となります。githubのアカウントを設定することで設定したアカウントでgistに投稿することができます。
単純に $HOME/.gitconfig に以下の内容を入れればOK

    % vi ~/.gitconfig
    [github]
    user     = USERNAME
    password = PASSWORD

ただ私の場合、設定ファイルはdotfilesとしてgithubで管理しています。gitconfigもgithub上に上げているので生パスワードを.gitconfigに書くのには抵抗が。。。

そこで、 Include ですよねーー。ユーザ名とパスワードは別ファイルにしてincludeさせる。別ファイルはgitignoreに設定してリポジトリへの更新対象外にする。ということです。
設定方法はこれまた単純に、.gitconfigに[Include]ディレクティブを追加するだけです。

    【gitconfigでインクルードする設定】
    % vi ~/.gitconfig
    [include]
    path = ~/dotfiles/.gitconfig.local

更に.gitconifg.localに [github]ディレクティブを設定します。

    【インクルードするファイルの設定】
    % vi ~/.gitconfig.local
    [github]
    user     = USERNAME
    password = PASSWORD

gistにアップして試してみる

いざ、やってみましょう。ちゃんとアカウントに紐付いてアップできるかなー

    % echo "Hello World" | gist -o

あれーー??Anonymousになってる。。。???

Includeの設定が効いてないのか??
ということで調べてみよう。。。


gistコマンドのコードを見てみる

gistはRubyのスクリプトで書かれているので何となく分かるだろうということで調査してみる!!!
brewでインストールしたので、「/usr/local/bin/gist」というファイルが実行ファイルになる。

    % vi /usr/local/bin/gist
    …略
    def config(key)
      env_key = ENV[key.upcase.gsub(/\./, '_')]
      return env_key if env_key and not env_key.strip.empty?
      str_to_bool `git config --global #{key}`.strip
    end
    …略

なるほどなー「git config –global」で情報を取得しているんだなーというところで確認してみる。

    % git config --global -l
    include.path=~/dotfiles/.gitconfig.local
    user.name=yusabana
    user.email=EMAIL
    color.ui=auto
    alias.st=status
    …略
    % git config -l
    include.path=~/dotfiles/.gitconfig.local
    github.user=********
    github.password=*******
    user.name=yusabana
    user.email=EMAIL
    color.ui=auto
    alias.st=status
    …略

上記2つの出力を見比べてみると「–global」の場合、「github.user」, 「github.password」の2つの設定includeのファイルの中身が展開されていない?!!!!これが原因じゃないか??
更に調べてみると、「–includes」 というオプションがあるではないか

    % git config --global --includes -l
    include.path=~/dotfiles/.gitconfig.local
    github.user=********
    github.password=*******
    user.name=yusabana
    user.email=EMAIL
    color.ui=auto
    alias.st=status
    …略

ちゃんとgithub.user, github.passwordが展開されていますねー
ということで、gistの実行ファイルを書き換えてみました。

    % vi /usr/local/bin/gist
    …略
    def config(key)
      env_key = ENV[key.upcase.gsub(/\./, '_')]
      return env_key if env_key and not env_key.strip.empty?
      str_to_bool `git config --global --includes #{key}`.strip
    end
    …略

これで修正は完了!!


もう一度gistを使って試してみる

今度こそ、、ちゃんとアカウントに紐付いてアップできるかなー

    % echo "Hello World" | gist -o

良し!!!いけました!!!

何とかコード修正も普通にgitコマンドを使っているところだったから問題なくいけましたねー!!
ちょっとgistコマンドのgithubのpull request 見ると同様の事を上げている方がいたので、自分もコメント入れておきました。

https://github.com/defunkt/gist/pull/113

ただ、これ見ると5ヶ月以上も更新してくれていないので、更新されるのを待つのもあれなので、スクリプトを修正しておこう。
また、これらを調べているうちに、「gisty」ってコマンドもあることを知った。これのほうが変更管理も出来るようで便利そう。gistコマンドは初回アップロードのみしか出来ないので。。。

今度はgistyを使ってみます!:)

Ruby環境構築(Mac rbenv編)


これまではrubyのバージョン管理といえばrvmだったと思います。自分も以前はrvmでいれていました。

そのあとrubyを全然使っていなかったからきにしていなかったけど、

この度、Lokka というブログ用のCMSツールを入れようということでちょっと話題のrbenvでRubyを管理してみようと思いました。ちょっとそのログです。

【參考】

http://blog.twiwt.org/e/66a1d0
http://qiita.com/items/9dd797f42e7bea674705(開発版などをインストールするなど、とても参考になるリンク)

これも参考になる(readline, opensslなどのリンクはない)
http://pplog.org/?p=2155

Mountain lion 用の参考サイト
http://qiita.com/items/a60886152a4c99ce1017

 

  • インストールは以下のコマンドで一発
% brew install rbenv
% brew install ruby-build

  • シェルの初期化ファイルに(.zshrc, .bashrcなど)以下を記載する

    自分は.zshenvに記述しました。

% eval "$(rbenv init -)"

  • readline(irbでの日本語化)を入れてインストールするといいみたい。ちょっとこの辺わからない。。
% brew install readline openssl
% brew link readline
% brew link openssl

  • ここでインストール

% CONFIGURE_OPTS="--with-readline-dir=/usr/local" rbenv install 1.9.2-p290

おぉってなんかGCC関連でエラーが。。。Xcodeも入れているのにGCCもパス通っているのに。。なぜ?

ここをみるとGCCが変わったとのことです。

しかし、Xcodeのコマンドラインエディションを入れていればインストールできている人が多くいますが、k自分の場合はXcodeもいれ、Xcodeコマンドラインエディションを入れてもダメでした。

以下のリンクからGCCのインストーラをダウンロードしてインストールする。

https://github.com/kennethreitz/osx-gcc-installer/downloads

これでインストールできたーー1.9.2と1.9.3を入れてみよう


% CONFIGURE_OPTS="--with-readline-dir=/usr/local" rbenv install 1.9.2-p290
% CONFIGURE_OPTS="--with-readline-dir=/usr/local" rbenv install 1.9.3-p125
% rbenv rehash

インストール後はrbenv rehash というコマンドを打つのが必須みたい。railsのようなコマンドを含むgemを入れた場合も同様。

rbenv rehash は ~/.rbenv/shims というディレクトリに ruby 自体や gem でインストールした実行ファイルを起動するための実行ファイルを作ってくれる。

% gem install rbenv-rehash
% <strong><span style="color: #ff6600;">各バージョンでインストール</span></strong>しておくとrbenv rehash を打たなくてもいいみたい。

 

不要になったrubyを削除するには普通にファイルを消す


% rm -rf ~/.rbenv/versions/1.9.3-p125

 

その他のコマンドは以下を參考に。

http://blog.twiwt.org/e/66a1d0

rbenvでインストールした 1.9.2-p290を使用する
% rbenv global 1.9.2-p290

システムのRubyに戻す
% rbenv global system

[mac] homebrewでMySQLをインストール


 
 
homebrewでmysqlをインストールする際に注意する点などを書いてみます。
普通に以下のコマンドでインストールできます。
インストール後になんやら出てきますが、初期設定方法が書かれている(長いので省略します)。

% brew install mysql
・・・出力省略・・・

これはいつでも、以下のコマンドを実行することで確認できる
% brew info mysql

次の手順で進めていく(以下の内容は % brew info mysql で出力される内容に全て書いてある)

  1. 初期化コマンドの実行
  2. mysqlサーバの起動 これでmysqlは使用可能になる
  3. 自動起動の設定
1.初期化コマンドの実行(出力結果で重要な箇所は赤色 ユーザの作成とデーモンとして動かす設定)
% unset TMPDIR 
% mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp
Installing MySQL system tables...
OK
Filling help tables...
OK

To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:

/usr/local/Cellar/mysql/5.5.20/bin/mysqladmin -u root password 'new-password' /usr/local/Cellar/mysql/5.5.20/bin/mysqladmin -u root -h taka-mac.local password 'new-password'

Alternatively you can run:
/usr/local/Cellar/mysql/5.5.20/bin/mysql_secure_installation

which will also give you the option of removing the test
databases and anonymous user created by default.  This is
strongly recommended for production servers.

See the manual for more instructions.

You can start the MySQL daemon with:
cd /usr/local/Cellar/mysql/5.5.20 ; /usr/local/Cellar/mysql/5.5.20/bin/mysqld_safe &

You can test the MySQL daemon with mysql-test-run.pl
cd /usr/local/Cellar/mysql/5.5.20/mysql-test ; perl mysql-test-run.pl

Please report any problems with the /usr/local/Cellar/mysql/5.5.20/scripts/mysqlbug script!

 
 

2.mysqlサーバの起動
% mysql.server start

 
 

3.自動起動の設定
新規インストール時
% mkdir -p ~/Library/LaunchAgents 
% cp /usr/local/Cellar/mysql/5.5.20/homebrew.mxcl.mysql.plist ~/Library/LaunchAgents/ 
% launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

アップグレード時
% launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist 
% cp /usr/local/Cellar/mysql/5.5.20/homebrew.mxcl.mysql.plist ~/Library/LaunchAgents/ 
% launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

 
 
あとは普通に以下のように接続しユーザやDBの作成を行う。

% mysql -uroot