2011年7月アーカイブ

Cells - Components For Rails

こういうのが欲しいと思っていた。

カテゴリー:

リモートブランチを追跡するブランチを作成する。

git branch [branch] [remotename]/[branch]
git checkout -b [branch] [remotename]/[branch]
例:origin/serverfix を追跡するローカルブランチsfを作成してチェックアウト。
$ git checkout -b sf origin/serverfix


Git Book - Tracking Branches
Pro Git - Pro Git 3.5 Git のブランチ機能 リモートブランチ

カテゴリー:

RVMで複数のRuby環境がある場合に、Railsアプリケーションのためのcronをどうするか? Rubyのパスはフルパス指定すればいいが、gemがRVMのgemを見に行かないのが問題。RVM環境でcronを実行する必要がある。

[1] crontabでrvmのrubyを使う - 橋本詳解

[2] RVM and cron in production

[3] rvm+railsなアプリケーションをcronで動かす - sanojimaru.com

[1]の方法にしてみた。
以下のような感じ。

cron用スクリプト /home/pistolfly/app_dir/cron/delete_sessions.sh
source /home/pistolfly/.rvm/scripts/rvm
rvm use 1.8.7 > /dev/null

cd /home/pistolfly/app_dir
ruby script/runner -e production "ActiveRecord::SessionStore::Session.delete_all(['sessions.updated_at < ?', 1.day.ago])"
cronの設定
$ crontab -e
*/10 * * * * sh /home/pistolfly/app_dir/cron/delete_sessions.sh

カテゴリー:

カテゴリー:

Mac OSX Lion で RVMでインストールしたRuby 1.8.7 で、

$ gem install rails

などとやると、

ruby-1.8.7-p352/lib/ruby/1.8/timeout.rb:60: [BUG] Segmentation fault

というエラーになってしまう。

その解決方法。

.bash_profileなどに、

export CC=gcc-4.2

とやっておいてから、RVMでRuby をインストールする。

ただし、後述するように、Xcode 4.2.1にはgccが含まれていない。別途gccを入れる必要がある。

私は、.bash_profileへの追加はせずに、RVMでのRubyインストール時に、
$ CC=/usr/bin/gcc-4.2 rvm install 1.8.7

とした。

Xcode 4.2.1 にはgcc-4.2が入っていないので、gcc-4.2を別途インストールする必要がある。
rvm requirements に記載があった。

まず、kennethreitz/osx-gcc-installer - GitHub でgccをインストール。
その後、必要があれば、Xcode 4.2.1をインストールすればよい。


※ 1.9.2では、上記の問題は発生しなかった。

※ Snow Leopard では、RVMでのRubyインストール時に、

$ rvm pkg install readline
$ rvm install 1.9.2 --with-readline-dir=$rvm_path/usr

とやらないと、irbで日本語が入力できなかったが、Lionではreadlineの互換ライブラリlibeditが改善され、ふつうにインストールすれば大丈夫になった。

RVM, Ruby 1.8.7 and OSX Lion « frymanet.com

カテゴリー:

gitosisを使っていたが、gitosisではブランチごとにパーミッションを設定できない。
gitoliteではブランチごとにパーミッションを設定できるらしいので、インストール、設定してみた。

sitaramc/gitolite - GitHub

インストール

http://sitaramc.github.com/gitolite/install.html の、root methodで行った。

設定

http://sitaramc.github.com/gitolite/admin.html ユーザ、レポジトリの追加方法、パーミッションの設定など。

感想

gitoliteはよい!

gitosisではできないブランチごとのパーミッション設定が可能だし、設定ファイルもgitosisよりきれいで分かりやすい。(特にレポジトリが多くなった場合。)

また、ドキュメントも充実していて分かりやすいので、インストールや設定が楽だった。

その他


  • /etc/ssh/sshd_config にAllowUsersを設定している場合は、gitoliteユーザを追加すること。
  • gitoliteで管理しているレポジトリを Redmineのレポジトリブラウザで使用する場合、パーミッションに注意。

    gitoliteのデフォルトでは、push時にファイルのパーミッションが600になるので、Redmineの実行ユーザがgitoliteユーザと異なると、

    redmine fatal: Failed to resolve HEAD as a valid ref.
    

    というエラーになる。

    push時に作成されるファイルのパーミッションを変更するには、 gitoliteユーザの.gitolite.rcを以下のように編集する。

    #$REPO_UMASK = 0077; # gets you 'rwx------'
    #$REPO_UMASK = 0027; # gets you 'rwxr-x---'
    $REPO_UMASK = 0022; # gets you 'rwxr-xr-x'
    

    Redmine - redmine read git repo without having to reset - Redmine


カテゴリー:

カテゴリー:

64ビットシステムのAccess2011で、あるMDBを開いたら、以下のエラー。

このプロジェクトのコードは、64 ビット システムで使用するために更新する必要があります。Declare ステートメントの確認および更新を行い、次に Declare ステートメントに PtrSafe 属性を設定してください。

Declare Function ...

Declare PtrSafe Function ...
に修正すればOK。

なにやらかにやらメモ - Windows 7 - @ウィキモバイル

カテゴリー:

Pictnotes » macportsでhelp2manが原因で、エラーになる場合

$ sudo port uninstall autoconf
$ sudo port uninstall help2man
$ sudo port uninstall p5-locale-gettext
$ sudo port install p5-locale-gettext
$ sudo port install help2man
$ sudo port install autoconf

カテゴリー:

カテゴリー: