error while loading shared libraries: /lib/libc.so.6: file too short Kernel panic: Attempted to kill init!

 

VM wareにインストールしたCentOSを起動させたら、以下のメッセージが表示されて起動しませんでした。
 

error while loading shared libraries: /lib/libc.so.6: file too short
Kernel panic: Attempted to kill init!

 

解決方法が下記サイトに書いてありました。
 

chroot: error while loading shared libraries: /lib/libc.so.6: file too short
 

かなり面倒な症状らしいので諦めて、バックアップ取っていたものを使います。
 

以上です。
 

[Rails] コントローラの中で View の画像URLを取得する方法

 

Ruby on Railsにて、コントローラの中で View のントローラの中で、ビューの image_path などを取得したいときは view_context を使えばできるみたいです。
 

■ コントローラの例
 

1
2
3
4
5
6
7
8
#-*- encoding: utf-8 -*-
 
class BookController < ApplicationController
  def show
    view_context.image_path('book.jpg')
      # => "http://localhost:3000/images/book.jpg"
  end
end

 

■ application.rb
 

1
2
3
4
5
6
module MyApp
  class Application < Rails::Application
    config.action_controller.asset_host = "http://localhost:3000"
    ...(略)...
  end
end

 

以上です。
 

【参考】

Rails のコントローラの中で View の画像URLを取得する方法 – それはBlog はてなブックマーク - Rails のコントローラの中で View の画像URLを取得する方法 - それはBlog
 

[Rails] redirect_to でリダイレクトできない原因はURLに半角スペースが入っていたせい

 

Railsのメソッド redirect_to で、Facebook認証後のリダイレクト処理をさせていたのですが、ちゃんと動かなくて困っていました。
 

リダイレクトできなかった原因はなんと、URLに半角スペースが入っていたせいでした…
 

1
2
redirect_to @facebook_cookies.url_for_oauth_code(:permissions => "publish_stream, read_stream")
#redirect_to 'https://graph.facebook.com/oauth/authorize?client_id=125635350871368&redirect_uri=http://localhost:3000/&scope=publish_stream, read_stream'

 

“publish_stream, read_stream” の部分の半角スペースが入っていたせいでリダイレクトできていなかったみたいです。
 

文字列で渡すところをうっかり配列で渡すような書き方にしてしまっていました…
 

正しくは以下のように、スペースを入れないで scope に渡すパーミッションを指定します。
 

1
2
redirect_to @facebook_cookies.url_for_oauth_code(:permissions => "publish_stream,read_stream")
#redirect_to 'https://graph.facebook.com/oauth/authorize?client_id=125635350871368&redirect_uri=http://localhost:3000/&scope=publish_stream,read_stream'

 

ちなみに、Facebook API を使うためのライブラリは koalaを使っています。
 

arsduo/koala – GitHub はてなブックマーク - arsduo/koala - GitHub
 

以上です。
 

[Ruby] Rails 用 Facebook API ライブラリ一覧

 

Ruby on Railsにて、Facebook APIを利用するためのライブラリを調べたのでメモ。
 

koala – GitHub はてなブックマーク - arsduo/koala - GitHub

rest-graph – GitHub はてなブックマーク - cardinalblue/rest-graph - GitHub

mini_fb – GitHub はてなブックマーク - appoxy/mini_fb - GitHub

fbgraph – GitHub はてなブックマーク - nsanta/fbgraph - GitHub

fb_graph – GitHub はてなブックマーク - nov/fb_graph - GitHub

mogli – GitHub はてなブックマーク - mmangino/mogli - GitHub

facebooker2 – GitHub はてなブックマーク - mmangino/facebooker2 - GitHub
 

以上です。(随時更新予定)
 

【参考】

Herokuで作るFacebookアプリ:第5回 Facebook APIを学ぼう|gihyo.jp … 技術評論社 はてなブックマーク - Herokuで作るFacebookアプリ:第5回 Facebook APIを学ぼう|gihyo.jp … 技術評論社
 

[Mac] Homebrew で PostgreSQL をインストールする手順

Mac に Homebrew で postgresql をインストールしたので手順をメモしておきます。

postgresql のインストール

まず brew コマンドで postgresql をインストールします。

Homebrew をインストールしていない方は、以下を参考にして下さい。

・参考:[Mac] Homebrew をインストール

brew install postgresql

PostgreSQL DB の初期化

initdb /usr/local/var/postgres -E utf8 --no-locale

自動起動の設定

ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

環境変数 PGDATA の設定

環境変数 PGDATA を設定すると pg_ctl での起動停止時に -D の引数を渡さなくてよくなります。

export PGDATA=/usr/local/var/postgres

起動コマンド

pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
 
# 環境変数PGDATAの設定をしていれば以下の様に省略できます
pg_ctl -l /usr/local/var/postgres/server.log start

終了コマンド

pg_ctl stop -s -m fast
 
# 環境変数PGDATAの設定をしていれば以下の様に省略できます
pg_ctl -D /usr/local/var/postgres stop -s -m fast

postgres ユーザの作成

brew でインストールした場合 postgres ユーザは作成されないようです。

$USER がスーパーユーザとして作成されます。スーパーユーザーをそのまま使うのはよくないので、新しくユーザを作成します。

$ createuser -P username
# usernameの部分は新規作成するユーザの名前
# パスワードとスーパーユーザにするかどうかを入力する

ユーザがちゃんと作成されたかの確認は下記のコマンドでできます。

psql -q -c'select * from pg_user' postgres

Ruby で postgresql を使うために gem で pg をインストールしておきます。

env ARCHFLAGS="-arch x86_64" gem install pg

 
ちなみに、brew info postgresql コマンドを実行すると以下のように詳細が読めます。

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/mxcl/homebrew/issues/issue/2510
 
To build plpython against a specific Python, set PYTHON prior to brewing:
  PYTHON=/usr/local/bin/python  brew install postgresql
See:
  http://www.postgresql.org/docs/9.0/static/install-procedure.html
 
 
If this is your first install, create a database with:
  initdb /usr/local/var/postgres
 
If this is your first install, automatically load on login with:
  mkdir -p ~/Library/LaunchAgents
  cp /usr/local/Cellar/postgresql/9.0.4/org.postgresql.postgres.plist ~/Library/LaunchAgents/
  launchctl load -w ~/Library/LaunchAgents/org.postgresql.postgres.plist
 
If this is an upgrade and you already have the org.postgresql.postgres.plist loaded:
  launchctl unload -w ~/Library/LaunchAgents/org.postgresql.postgres.plist
  cp /usr/local/Cellar/postgresql/9.0.4/org.postgresql.postgres.plist ~/Library/LaunchAgents/
  launchctl load -w ~/Library/LaunchAgents/org.postgresql.postgres.plist
 
Or start manually with:
  pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
 
And stop with:
  pg_ctl -D /usr/local/var/postgres stop -s -m fast
 
 
Some machines may require provisioning of shared memory:
  http://www.postgresql.org/docs/current/static/kernel-resources.html#SYSVIPC
 
If you want to install the postgres gem, including ARCHFLAGS is recommended:
    env ARCHFLAGS="-arch x86_64" gem install pg
 
To install gems without sudo, see the Homebrew wiki.

以上です。

参考情報