checkinstall --fstrans=no -R
2013-11-07
checkinstallでrubyのrpm作成
checkinstallコマンドだけで失敗するときは次のオプションをくっつけてみるとうまくいった
2012-07-25
IAM roles for EC2 instancesを使ってみた
EC2インスタンスのIAMロールとは?
AWS ConsoleのIAMのところからCreate Roleをクリック roleの名前を入力してContinue 適当なPolicyをSelect(後から編集もできるのでてきとーに) Policyの名前を決めて、Policy Documentを確認したらContinue 内容を確認して問題なければCreate Role はい、出来上がりましたヾ(*・ω・)シ
あとは、作成したroleを割り当ててインスタンスの起動
通常通りインスタンス起動のウィザードを辿っていくとInstance DetailsのところでIAM Roleの選択肢がでてくるので先ほど作成したroleを選択
起動を待っている間に、s3バケットのURLを一覧表示するようなサンプルプログラムの作成
通常版
実行結果はどちらも同じように
aws-sdkを利用しない場合はcurlを使って
- 今までIPアドレスで利用範囲を絞っていたところを、このEC2インスタンスから!みたいな制約で利用できるようにする機能
- aws-sdkを使えばcredentials周りのコードを簡略化できる
- roleは、EC2インスタンス起動時に選択することができる
- roleは1つしか割り当てられない
- 既存のインスタンスにはroleを割り当てることはできない
- 既にroleが割り当てられているインスタンスからroleを外すことはできない
- roleのPermissionsの変更は即時反映される
AWS ConsoleのIAMのところからCreate Roleをクリック roleの名前を入力してContinue 適当なPolicyをSelect(後から編集もできるのでてきとーに) Policyの名前を決めて、Policy Documentを確認したらContinue 内容を確認して問題なければCreate Role はい、出来上がりましたヾ(*・ω・)シ
あとは、作成したroleを割り当ててインスタンスの起動
通常通りインスタンス起動のウィザードを辿っていくとInstance DetailsのところでIAM Roleの選択肢がでてくるので先ほど作成したroleを選択
起動を待っている間に、s3バケットのURLを一覧表示するようなサンプルプログラムの作成
通常版
#! /usr/bin/ruby require 'rubygems' require 'aws-sdk' my_access_key_id = 'xxxxxxxxxxxxxxxxxxxx' my_secret_key = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' AWS.config({ :access_key_id => my_access_key_id, :secret_access_key => my_secret_key }) sts = AWS::STS.new() session = sts.new_session() #puts "Session expires at: #{session.expires_at.to_s}" #s3 = AWS::S3.new(session.credentials) for bucket in s3.buckets puts bucket.url endてな具合で見慣れたCredentials周りのコードを書く訳ですがIAM roles for EC2 instances版だとここを省くことができます
#! /usr/bin/ruby require 'rubygems' require 'aws-sdk' s3 = AWS::S3.new() for bucket in s3.buckets puts bucket.url endと、こんな単純に。
実行結果はどちらも同じように
./list_s3_urls.rb http://bucket1.s3.amazonaws.com/ http://bucket2.s3.amazonaws.com/ http://bucket3.s3.amazonaws.com/みたいな感じで表示してくれます
aws-sdkを利用しない場合はcurlを使って
curl http://169.254.169.254/latest/meta-data/iam/security-credentials/role1 { "Code" : "Success", "LastUpdated" : "2012-07-25T04:43:21Z", "Type" : "AWS-HMAC", "AccessKeyId" : "xxxxxxxxxx", "SecretAccessKey" : "xxxxxxxxxx", "Token" : "xxx", "Expiration" : "2012-07-25T11:15:42Z" }みたいに最後の/の後にEC2インスタンスに割り当てられたroleの名前を入れてあげれば、一時的に利用できるAccessKeyIdとSecretAccessKeyを含むレスポンスが得られるのでこれを利用すれば良いみたいです。
2012-07-18
rightresource 0.4.5でログインエラー
RightScale APIをrubyから使うためのラッパーモジュールrightresource 0.4.5なのですが、比較的最近作成したRightScaleアカウントに対してだとエラーが起こるようです。
一方で、RightScale側では比較的新しいアカウントではBasic認証は非推奨になってしまいログイン時に発行されるcookieを用いて各種APIにアクセスする必要がある模様です。
なので、cookie認証でアクセスするよう以下のファイルの29,30行目の間に3行追加してあげれば行けましたよヾ(*・ω・)シ
CentOSの場合
/usr/local/lib/ruby/gems/1.9.1/gems/rightresource-0.4.5/lib/right_resource/connection.rb
Windows7の場合
C:\Ruby\lib\ruby\gems\1.9.1\gems\rightresource-0.4.5\lib\right_resource\connection.rb
RestClient::Forbidden: 403 Forbidden: Basic auth is deprecated for calls other than login. Please 'login' to get a session and pass the session back for further actions.中身をのぞいてみると、rightresourceではBasic認証でAPIにアクセスしているようです。
一方で、RightScale側では比較的新しいアカウントではBasic認証は非推奨になってしまいログイン時に発行されるcookieを用いて各種APIにアクセスする必要がある模様です。
なので、cookie認証でアクセスするよう以下のファイルの29,30行目の間に3行追加してあげれば行けましたよヾ(*・ω・)シ
CentOSの場合
/usr/local/lib/ruby/gems/1.9.1/gems/rightresource-0.4.5/lib/right_resource/connection.rb
Windows7の場合
C:\Ruby\lib\ruby\gems\1.9.1\gems\rightresource-0.4.5\lib\right_resource\connection.rb
@response = @api_object["login"].__send__("get".to_sym, {:x_api_version=>"1.0", :api_version=>"1.0"}) req_opts = {:cookies => @response.cookies, :open_timeout => @open_timeout, :timeout => @timeout} @api_object = RestClient::Resource.new("#{@api}#{@account}", req_opts)
2012-05-02
Rails3.2のエラーメッセージを日本語にする
デフォルト状態だと
これを、日本語表記に変更したい場合、作成したアプリケーションのconfig/application.rbの中で設定を行います。
そうすると
validate :name, :length => {:within => 0..3}などとバリデーションを設定していると
Name is too long (maximum is 3 characters)と表示されます。
これを、日本語表記に変更したい場合、作成したアプリケーションのconfig/application.rbの中で設定を行います。
# config.i18n.default_locale = :deを以下に変更する
config.i18n.default_locale = :jaそして、日本語表示用のデータである https://github.com/svenfuchs/rails-i18n/blob/master/rails/locale/ja.yml をconfig/locales/ja.ymlとして保存します。 エラーメッセージが日本語に変わりましたヾ(*・∀・)ノ"
Nameは3文字以内で入力してください。さらに、属性名であるNameも日本語名に変更したい場合は config/locales/ja.ymlの中で属性名の日本語名を定義してあげます
ja: attributes: name: "名前"てな具合に。
そうすると
名前 は3文字以内で入力してください。に変わりました(’’
2012-05-01
Windows7でRuby1.9.3+Rails3.2.6+MySQL5.5な環境構築
いろいろと新しいバージョンが出てきたので開発環境を入れなおしてみたのでメモがてら。
MySQLから
Windows (x86, 32-bit), MSI Installer:mysql-5.5.25a-win32.msi
をダウンロードしてインストール
※64bit版ではrails3標準のmysql2アダプタが対応していないので必ず32bit版!
と思ったけど、あとで入れるMySQL Connector/Cが32bit版なら本体は64bit版でも良いみたい(´・ω・`)
rubyinstaller.orgから
RubyInstallers:rubyinstaller-1.9.3-p194.exe
Development Kit:DevKit-tdm-32-4.5.2-20111229-1559-sfx.exe
をダウンロード
rubyinstaller-1.9.3-p194.exeを実行してrubyをインストール
※「Add Ruby executables to your PATH」にチェックを忘れずに
DevKit-tdm-32-4.5.2-20111229-1559-sfx.exeを実行して適当なディレクトリへ解凍
cmd.exeなどで解凍したディレクトリへ移動
RubyGemsから
rubygems-1.8.24.zip
をダウンロードして適当なディレクトリへ解凍
cmd.exeなどで解凍したディレクトリへ移動
このgem作った時は必要なDLLファイルは次のダウンロードにあったよ!
lib\libmysql.dllをC:\Ruby\binとかに入れてね!
ってことだけど、URLは無効なようなので
http://dev.mysql.com/downloads/connector/c/6.0.html
へ行って
mysql-connector-c-noinstall-6.0.2-win32.zip
をダウンロードしましょう
あとは展開して、Rubyをインストールしたディレクトリのbin配下へコピーすればOK
そして、早速アプリケーションの作成
config/database.yml
にmysqlのユーザーとパスワードをセット
あとは、関連モジュールのインストールとscaffoldで雛型の作成、DBの作成、サーバーの起動
あとは
http://localhost:3000/tasks
にアクセスすればアプリケーションにアクセスできますよヾ(*・∀・)ノ"
MySQLから
Windows (x86, 32-bit), MSI Installer:mysql-5.5.25a-win32.msi
をダウンロードしてインストール
と思ったけど、あとで入れるMySQL Connector/Cが32bit版なら本体は64bit版でも良いみたい(´・ω・`)
rubyinstaller.orgから
RubyInstallers:rubyinstaller-1.9.3-p194.exe
Development Kit:DevKit-tdm-32-4.5.2-20111229-1559-sfx.exe
をダウンロード
rubyinstaller-1.9.3-p194.exeを実行してrubyをインストール
※「Add Ruby executables to your PATH」にチェックを忘れずに
DevKit-tdm-32-4.5.2-20111229-1559-sfx.exeを実行して適当なディレクトリへ解凍
cmd.exeなどで解凍したディレクトリへ移動
ruby dk.rb init ruby dk.rb installでインストール
RubyGemsから
rubygems-1.8.24.zip
をダウンロードして適当なディレクトリへ解凍
cmd.exeなどで解凍したディレクトリへ移動
ruby setup.rbでインストール
gem install railsで、Rails3.2.6をインストール
gem install mysql2で、mysql2アダプタをインストール
You've installed the binary version of mysql2. It was built using MySQL Connector/C version 6.0.2. It's recommended to use the exact same version to avoid potential issues. At the time of building this gem, the necessary DLL files where available in the following download: http://dev.mysql.com/get/Downloads/Connector-C/mysql-connector-c-noinstall-6.0.2-win32.zip/from/pick And put lib\libmysql.dll file in your Ruby bin directory, for example C:\Ruby\binとメッセージが出るので、素直に従う
このgem作った時は必要なDLLファイルは次のダウンロードにあったよ!
lib\libmysql.dllをC:\Ruby\binとかに入れてね!
ってことだけど、URLは無効なようなので
http://dev.mysql.com/downloads/connector/c/6.0.html
へ行って
mysql-connector-c-noinstall-6.0.2-win32.zip
をダウンロードしましょう
あとは展開して、Rubyをインストールしたディレクトリのbin配下へコピーすればOK
そして、早速アプリケーションの作成
rails new app1 -d mysql
config/database.yml
にmysqlのユーザーとパスワードをセット
あとは、関連モジュールのインストールとscaffoldで雛型の作成、DBの作成、サーバーの起動
bundle install rails g scaffold task name:string memo:string rake db:create rake db:migrate rails s
あとは
http://localhost:3000/tasks
にアクセスすればアプリケーションにアクセスできますよヾ(*・∀・)ノ"
2011-06-08
Windows7でRuby1.9.2+Rails3+MySQL5.5な環境を構築
※最近インストールした情報をまとめたこちらもどうぞ!
MySQLから
Windows (x86, 32-bit), MSI Installer:mysql-5.5.13-win32.msi
をダウンロードしてインストール
※64bit版ではrails3標準のmysql2アダプタが対応していないので必ず32bit版!
と思ったけど、あとで入れるMySQL Connector/Cが32bit版なら本体は64bit版でも良いみたい(´・ω・`)
rubyinstaller.orgから
RubyInstallers:rubyinstaller-1.9.2-p180.exe
Development Kit:DevKit-tdm-32-4.5.1-20101214-1400-sfx.exe
をダウンロード
rubyinstaller-1.9.2-p180.exeを実行してrubyをインストール
※「Add Ruby executables to your PATH(PATHにbinディレクトリを追加)」にチェックを忘れずに
DevKit-tdm-32-4.5.1-20101214-1400-sfx.exeを実行して適当なディレクトリへ解凍
cmd.exeなどで解凍したディレクトリへ移動
RubyGemsから
rubygems-1.8.5.zip
をダウンロードして適当なディレクトリへ解凍
cmd.exeなどで解凍したディレクトリへ移動
※0.2.7以降だとエラーになるので0.2.6を使う
このgem作った時は必要なDLLファイルは次のダウンロードにあったよ!
lib\libmysql.dllをC:\Ruby\binとかに入れてね!
ってことだけど、URLは無効なようなので
http://dev.mysql.com/downloads/connector/c/6.0.html
へ行って
mysql-connector-c-noinstall-6.0.2-win32.zip
をダウンロードしましょう
あとは展開して、Rubyをインストールしたディレクトリのbin配下へコピーすればOK
そして、早速アプリケーションの作成
config/database.yml
にmysqlのユーザーとパスワードをセット
※ユーザー名:root パスワード空欄の状態でrakeを実行するとルートのパスワードが変更されてmysqlに接続できなくなったので注意!!
あとは、関連モジュールのインストールとscaffoldで雛型の作成、DBの作成、サーバーの起動
あとは
http://localhost:3000/tasks
にアクセスすればアプリケーションにアクセスできますよヾ(*・∀・)ノ"
チラシの裏:試行錯誤してる途中で出会ったエラーあれこれ(´・ω・‘)
MySQLから
Windows (x86, 32-bit), MSI Installer:mysql-5.5.13-win32.msi
をダウンロードしてインストール
と思ったけど、あとで入れるMySQL Connector/Cが32bit版なら本体は64bit版でも良いみたい(´・ω・`)
rubyinstaller.orgから
RubyInstallers:rubyinstaller-1.9.2-p180.exe
Development Kit:DevKit-tdm-32-4.5.1-20101214-1400-sfx.exe
をダウンロード
rubyinstaller-1.9.2-p180.exeを実行してrubyをインストール
※「Add Ruby executables to your PATH(PATHにbinディレクトリを追加)」にチェックを忘れずに
DevKit-tdm-32-4.5.1-20101214-1400-sfx.exeを実行して適当なディレクトリへ解凍
cmd.exeなどで解凍したディレクトリへ移動
ruby dk.rb init ruby dk.rb installでインストール
RubyGemsから
rubygems-1.8.5.zip
をダウンロードして適当なディレクトリへ解凍
cmd.exeなどで解凍したディレクトリへ移動
ruby setup.rbでインストール
gem install railsで、Rails3.0.8をインストール
gem install mysql2 -v 0.2.6で、mysql2アダプタをインストール
※0.2.7以降だとエラーになるので0.2.6を使う
You've installed the binary version of mysql2. It was built using MySQL Connector/C version 6.0.2. It's recommended to use the exact same version to avoid potential issues. At the time of building this gem, the necessary DLL files where available in the following download: http://dev.mysql.com/get/Downloads/Connector-C/mysql-connector-c-noinstall-6.0.2-win32.zip/from/pick And put lib\libmysql.dll file in your Ruby bin directory, for example C:\Ruby\binとメッセージが出るので、素直に従う
このgem作った時は必要なDLLファイルは次のダウンロードにあったよ!
lib\libmysql.dllをC:\Ruby\binとかに入れてね!
ってことだけど、URLは無効なようなので
http://dev.mysql.com/downloads/connector/c/6.0.html
へ行って
mysql-connector-c-noinstall-6.0.2-win32.zip
をダウンロードしましょう
あとは展開して、Rubyをインストールしたディレクトリのbin配下へコピーすればOK
そして、早速アプリケーションの作成
rails new app1 -d mysql作成したディレクトリの中のGemfileを編集する
gem 'mysql2', '~> 0.2.6'を削除して、次を追加
gem 'mysql2', '0.2.6' gem 'rake' , ' 0.8.7'
config/database.yml
にmysqlのユーザーとパスワードをセット
※ユーザー名:root パスワード空欄の状態でrakeを実行するとルートのパスワードが変更されてmysqlに接続できなくなったので注意!!
あとは、関連モジュールのインストールとscaffoldで雛型の作成、DBの作成、サーバーの起動
bundle install rails g scaffold task name:string memo:string rake db:create rake db:migrate rails s
あとは
http://localhost:3000/tasks
にアクセスすればアプリケーションにアクセスできますよヾ(*・∀・)ノ"
チラシの裏:試行錯誤してる途中で出会ったエラーあれこれ(´・ω・‘)
Please install the mysql2 adapter: `gem install activerecord-mysql2-adapter` (no such file to load -- active_record/connection_adapters/mysql2_adapter) collect2: ld returned 1 exit status make: *** [mysql2.so] Error 1 uninitialized constant Rake::DSL
登録:
投稿 (Atom)