AMIのruby環境はあまりパッケージがインストールされていないので、mechanizeのインストールにつまずくことがある。
なので、ここに一連の手順を残しておく。
rubyバージョン ruby 2.0.0p481
1.yum install ruby-devel
2.yum install gcc-c++.noarch
3.yum install libxslt-devel.x86_64
4.yum install patch.x86_64
以下のような nokogoriやmechanizeをインストールするときに
以下のようなメッセージが出で失敗する事があるので
必ずインストールする。
patch.logを見ると、パッチコマンドが見つからないという趣旨のエラーが出力されている。
Running 'patch' for libxml2 2.9.2... ERROR, review '/home/ec2-user/.gem/ruby /2.0/gems/nokogiri-1.6.4.1/ext/nokogiri/tmp/x86_64-redhat-linux-gnu/ports /libxml2/2.9.2/patch.log' to see what happened.
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers. Check the mkmf.log file for more details. You may
need configuration options.
5.gem install nokogiri
6.gem install mechanize
以上
2014年11月26日水曜日
2013年11月27日水曜日
EC2インスタンスにRuby1.9.3をインストールする。
Amazon EC2のRHEL6の無料インスタンスにRuby1.9.3をyumでインストールしたかったが、初期設定のレポジトリには1.8.x1しかなかったため、パッケージをビルドしてインストールすることを試みた。
1.まずビルドに必要なパッケージをインストールする。
対象は以下のとおり。
zlib-devel
openssl-devel
readline-devel
tk-devel
libyaml-devel
libffi-devel
rpm-build
注意
libyaml-develをインストールしたときに、以下のようなエラーが発生するかもしれな
い。
Error: Multilib version problems found. This often means that the root
cause is something else and multilib version checking is just
pointing out that there is a problem.
要は複数のバージョンがあるので問題ありということ。
元々インストールされていたのはlibyaml.i686、必要なのはlibyaml-devel.x86_64
なので元々あったほうをアンインストールし、libyaml-devel.x86_64をインストール
した。
sudo yum remove libyaml.i686
sudo yum install libyaml-devel.x86_64
2.home直下にrpmbuildディレクトリを作成する。
3.rpmbuildディレクトリの下に以下5つのディレクトリを作成する。
BUILD RPMS SOURCES SPECS SRPMS
4.SOURCESディレクトリに移動する。
cd ~/rpmbuild/SOURCES
5.ruby1.9.3のアーカイブをダウンロードする。
wget http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p448.tar.gz
6.SPECSディレクトリに移動する。
cd ~/rpmbuild/SPECS
7.specファイルをダウンロードする。
wget https://raw.github.com/imeyer/ruby-1.9.3-rpm/master/ruby19.spec
8.ビルドを実行する。
rpmbuild -bb ruby19.spec
9. rpmファイルが作成されていることを確認する。
~/rpmbuild/RPMS/x86_64/ruby-1.9.3p448-1.el6.x86_64.rpm
10.~/rpmbuild/RPMS/x86_64ディレクトリに移動する。
cd ~/rpmbuild/RPMS/x86_64
11.パッケージをインストールする。
sudo rpm -ivh ruby-1.9.3p448-1.el6.x86_64.rpm
12.インストールできたか確認する。
ruby -v
OK。1.9.3が入った!
ruby 1.9.3p448 (2013-06-27 revision 41675) [x86_64-linux]
1.まずビルドに必要なパッケージをインストールする。
対象は以下のとおり。
zlib-devel
openssl-devel
readline-devel
tk-devel
libyaml-devel
libffi-devel
rpm-build
注意
libyaml-develをインストールしたときに、以下のようなエラーが発生するかもしれな
い。
Error: Multilib version problems found. This often means that the root
cause is something else and multilib version checking is just
pointing out that there is a problem.
要は複数のバージョンがあるので問題ありということ。
元々インストールされていたのはlibyaml.i686、必要なのはlibyaml-devel.x86_64
なので元々あったほうをアンインストールし、libyaml-devel.x86_64をインストール
した。
sudo yum remove libyaml.i686
sudo yum install libyaml-devel.x86_64
2.home直下にrpmbuildディレクトリを作成する。
3.rpmbuildディレクトリの下に以下5つのディレクトリを作成する。
BUILD RPMS SOURCES SPECS SRPMS
4.SOURCESディレクトリに移動する。
cd ~/rpmbuild/SOURCES
5.ruby1.9.3のアーカイブをダウンロードする。
wget http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p448.tar.gz
6.SPECSディレクトリに移動する。
cd ~/rpmbuild/SPECS
7.specファイルをダウンロードする。
wget https://raw.github.com/imeyer/ruby-1.9.3-rpm/master/ruby19.spec
8.ビルドを実行する。
rpmbuild -bb ruby19.spec
9. rpmファイルが作成されていることを確認する。
~/rpmbuild/RPMS/x86_64/ruby-1.9.3p448-1.el6.x86_64.rpm
10.~/rpmbuild/RPMS/x86_64ディレクトリに移動する。
cd ~/rpmbuild/RPMS/x86_64
11.パッケージをインストールする。
sudo rpm -ivh ruby-1.9.3p448-1.el6.x86_64.rpm
12.インストールできたか確認する。
ruby -v
OK。1.9.3が入った!
ruby 1.9.3p448 (2013-06-27 revision 41675) [x86_64-linux]
2013年11月20日水曜日
AWSでWindowsのFTPサーバ(パッシブモード)を構築する
仕事でWindowsサーバをFTPサーバとする必要があったため、AWS上で構築してみた。
その作業のまとめ。
前提として
・WindowsサーバのEC2インスタンスを作成しておくこと。
・そのインスタンスにFTPサービスをインストールしておくこと。
・RDPで接続できること。
が必要。
今回は動作確認のため同一VPC内に2つのWindowsサーバインスタンスを作成した。
FTPクライアントとFTPサービスのような位置づけ。
FTPプロトコルの利用範囲だが、
「インターネットからのFTPは許さない。指定VPC内のみ許可する」
ものとする。
1.まずマネジメントコンソールからVPCを選択する。
2.Security Groupsを選択する。
3.右ペインから用意したインスタンスが使うVPCを選択する。
4.下のペインで以下のように設定する。
Create a new Rule -> Custom TCP Rule
Port range -> 21
Source -> VPCのGroup ID。 (ここではsg-4ce9e12e)
ポイントはSourceにVPCのGroup IDを入れる事である。これでVPC内でしかFTPが
使えないようになる。VPCの名前はDetailsタブのGroupIDに書かれている。
5.Apply Rule Changesをクリックする。これをクリックしないと設定が反映されない。
6.手順4同様に今度はFTPの制御用ポートを設定する。WindowsサーバのWindowsファイアウォールのポリシーを見てみると1024-65535が制御用ポートとして設定されているのでVPCでも同じ設定をする。
Create a new Rule -> Custom TCP Rule
Port range -> 1024-65535
Source -> VPCのGroup ID
7.これでFTPサーバに接続できればOK。
ex)ftp://サーバIPアドレス/hoge
*hogeディレクトリはあらかじめサーバ側に作成しておくと望ましい。
その作業のまとめ。
前提として
・WindowsサーバのEC2インスタンスを作成しておくこと。
・そのインスタンスにFTPサービスをインストールしておくこと。
・RDPで接続できること。
が必要。
今回は動作確認のため同一VPC内に2つのWindowsサーバインスタンスを作成した。
FTPクライアントとFTPサービスのような位置づけ。
FTPプロトコルの利用範囲だが、
「インターネットからのFTPは許さない。指定VPC内のみ許可する」
ものとする。
1.まずマネジメントコンソールからVPCを選択する。
2.Security Groupsを選択する。
3.右ペインから用意したインスタンスが使うVPCを選択する。
4.下のペインで以下のように設定する。
Create a new Rule -> Custom TCP Rule
Port range -> 21
Source -> VPCのGroup ID。 (ここではsg-4ce9e12e)
ポイントはSourceにVPCのGroup IDを入れる事である。これでVPC内でしかFTPが
使えないようになる。VPCの名前はDetailsタブのGroupIDに書かれている。
5.Apply Rule Changesをクリックする。これをクリックしないと設定が反映されない。
6.手順4同様に今度はFTPの制御用ポートを設定する。WindowsサーバのWindowsファイアウォールのポリシーを見てみると1024-65535が制御用ポートとして設定されているのでVPCでも同じ設定をする。
Create a new Rule -> Custom TCP Rule
Port range -> 1024-65535
Source -> VPCのGroup ID
ex)ftp://サーバIPアドレス/hoge
*hogeディレクトリはあらかじめサーバ側に作成しておくと望ましい。
登録:
投稿 (Atom)




