さくらVPSでXML::Feedのインストールエラー

さくらVPS(CentOS 5.6)上でcpanmでXML::Feedをインストールしようとしたところエラーになった。

Configuring XML-LibXML-1.79 ... N/A
! Configure failed for XML-LibXML-1.79. See /home/xxxx/.cpanm/build.log for details.

XML::RSSとかは入るのだけどFeed、Atom等が入らない。
CentOSのlibxml2-develを入れたところ無事入りました。

$ sudo yum -y install libxml2-devel


ググる前に試してしまったけど、同じような方がいました。

さくらVPS(CentOS 5.5)で Plagger のインストール時に失敗したモジュール - ワタブログ

perlbrewとcpanmのインストール - MacOS Xでの環境構築

久々のブログエントリです。ここのとこずっとperlばかりさわっていて、やっぱりガリガリ書けるのはいいなぁと感じています。Perl Hackerな方々のコードをみたりして手を動かして日々精進あるのみです。
まだまだPerlカジュアルな感じですがアプトプットしていこうかと思います。


今回はMacOS Xにおける開発環境の構築です。perlMacOSに標準でインストールされていますが、rubyのrvmのようにいろんなバージョンを簡単に切り替えて使えるperlbrewというのがあります。


perlbrewのインストール

perlbrewを以下のコマンドでインストールします。ユーザ権限のままで行います。

$ curl -LO http://xrl.us/perlbrew
$ chmod +x perlbrew
$ ./perlbrew install

インストール先は、~/perl5/perlbrew/bin/perlbrew になります。
次に、perlbrewへのパスを通します。.bashrcに次の行を追加して

source ~/perl5/perlbrew/etc/bashrc


再読込みします。

$ source ~/.bashrc

次のコマンドで初期化を行います。

$ perlbrew init


perlのインストール

perlbrew listコマンドでインストールされているバージョンを確認できます。*が付いているものが現在使用されているバージョンです。

$ perlbrew list
* perl-5.10.1
  /opt/local/bin/perl (5.8.9)

perl availableコマンドでインストールできるバージョンを確認できます。

$ perlbrew available
  perl-5.15.0
  perl-5.14.1
  perl-5.12.4
i perl-5.10.1
  perl-5.8.9
  perl-5.6.2
  perl5.005_04
  perl5.004_05
  perl5.003_07

iが付いているのは、既にインストールされていることを示しています。では、perl-5.12.4を入れてみましょう。

$ perlbrew install perl-5.12.4

perlbrew switchコマンドで利用するバージョンを切り替えます。

$ perlbrew switch perl-5.12.4
$ perlbrew list
  perl-5.10.1
* perl-5.12.4
  /opt/local/bin/perl (5.8.9)

$ perl -v
This is perl 5, version 12, subversion 4 (v5.12.4) built for darwin-2level
・・・

インストールできました!



cpanmのインストール

perlが強力なところは、数多くのライブラリを簡単に扱えるCPANモジュールの存在があります。
ここではCPANモジュールを利用するcpanmをインストールします。perlbrewから

$ perlbrew install-cpanm

これでOKです。


CPANモジュールのインストール

例えば、ないとしんでしまうという Data:Dumperを入れるには、

$ cpanm Data::Dumper

以上これだけです。

Rails3.0で定数をあつかうsettingslogicを使ってみた

githubでコードを見ていたところ、定数を扱う設定ファイルのようなものがあったので使ってみた。まだまだrails知らないこと多いな。

binarylogic/settingslogic · GitHub


環境

MacOSX 10.6.7
Ruby 1.9.2
Rails 3.0.5


設定方法

Gemfileに以下を追加します。

gem 'settingslogic'

インストール。

$ bundle install


app/models/settings.rbを作成

class Settings < Settingslogic
  source "#{Rails.root}/config/application.yml"
  namespace Rails.env # これを記述すると動作環境により設定ファイルを読み込んでくれます
end


config/application.ymlを作成してここに設定情報を書きます。開発環境と本番環境で違うものもなど便利ですね。

development:
  google_api_key: "APIKEY_DEVELOPMENT"

test:
  google_api_key: "APIKEY_DEVELOPMENT"

production:
  google_api_key: "APIKEY_PRODUCTION"


使い方

設定ファイルの参照の仕方は簡単です。

Settings.設定項目名

試してみると、

$ rails console
Loading production environment (Rails 3.0.5)
ruby-1.9.2-p180 :001 > Settings.google_api_key
 => "APIKEY_DEVELOPMENT" 

$ rails console production
Loading production environment (Rails 3.0.5)
ruby-1.9.2-p180 :001 > Settings.google_api_key
 => "APIKEY_PRODUCTION" 

環境により読み込みでくれてますね。

Rails3.0でのメール送信(ActionMailer)にてエンコードをiso-2022-jpにするには

Rails3でメール送信を試したところ、エンコードUTF-8になっているため受信側で文字化けする可能性があります。

Rails2では、actionmailer_jaという素敵なプラグインがありましたが、Rails3にいれてみたところサーバ起動時にエラーが発生してしまいました。


グーグル先生に聞いて見つけた以下の方法を試したところ、無事iso-2022-jpになりました。
感謝!!

[rails] Rails3.0 beta3のmailでiso-2022-jp - よしだメモ


環境:Rais 3.0.5

MacのPostfix設定をしてみる

Macの開発環境でも、アプリからGmail宛てにメール送信したいと思ったところ、すんなり送信されなかったのでいろいろ調べたメモ。


環境

MaxOSX10.6.7, Postfix
SMTPサーバ:自分のプロバイダであるso-netを使用


設定方法

まずは、Postfixの設定ファイルmain.cfにリレーホストを追加する

$ sudo vi /etc/postfix/main.cf

#以下の記述を追加する
relayhost = [mail.so-net.ne.jp]:587

so-netSMTPサーバ認証方式をtelnetで確認する

$ telnet mail.so-net.ne.jp 587
Trying 202.238.82.20...
Connected to mail.so-net.ne.jp.
Escape character is '^]'.
220 mx62.ms.so-net.ne.jp ESMTP
ehlo localhost # ここで入力する
250-mx62.ms.so-net.ne.jp Hello xxxxxxx [xxx.xxx.xxx.xxx], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE 10240000
250-DSN
250-AUTH LOGIN PLAIN # PLAINを確認
250-STARTTLS
250-DELIVERBY
250 HELP


main.cfに以下を追記する

$ sudo vi /etc/postfix/main.cf
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/authinfo
smtp_sasl_security_options = noanonymous
smtp_sasl_mechanism_filter = PLAIN


#認証ファイルを作成 rootでやった
$ echo [mail.so-net.ne.jp]:587 so-netのメールアドレス:メールのpassword > /etc/postfix/authinfo
$ chmod 640 /etc/postfix/authinfo
$ postmap /etc/postfix/authinfo

#Postfix起動
$ sudo postfix start

#メール送信してみる
echo 'Hi' | mail -s test xxxx@gmail.com

gmailに届きました!



参考サイト

Postfix + インストール + OP25B設定 | ninxit.blog

RubyでTwitterのapiを使ってみる

rubyTwitterbot作成依頼などがあり、apiなどを使ってみたのでメモ。まあこれまた今さらネタですけど。

環境は、MaxOSX 10.6.7 Ruby 1.9.2


1.Twitterのライブラリをインストール

$ gem install twitter


2.Twitterアプリケーション登録申請


botに使いたいTwitterアカウントでログインしてTwitterアプリケーション登録申請にアクセスして以下の項目を入力します。

アプリケーション名: 任意の名称
アプリケーションの説明: 説明を10文字以上
アプリケーションのウェブサイトURL: 自分のTwitterのURLなど
アプリケーションの種類: クライアントアプリケーションを選択
標準のアクセスタイプ: Read & Writeを選択
Twitterでログインする: チェックをつける

登録完了後に表示される、「Consumer key」と「Consumer secret」をメモしておく。



3.TwitterのOAuth登録


gemでライブラリをインストールして実行

$ gem install oauth get-twitter-oauth-token
$ get-twitter-oauth-token

・Consumer keyとConsumer secretを聞かれるのでメモしておいたのをコピペする。
・ブラウザが起動してアプリケーションを許可するか聞かれるので、許可するとPIN番号が表示される。
・ターミナル側で、PIN入力待ちになっているのでブラウザで表示されたPIN番号をコピペする。
・OAuthのtokenとtoken_secretが表示されるのでメモっておく。



4.rubyTwitterにツイートする


メモった4つのkey情報を以下の該当箇所に入れて実行するとツイートされます。

# -*- coding: utf-8 -*-
require "twitter"

Twitter.configure do |cnf|
  cnf.consumer_key = "Consumer key"
  cnf.consumer_secret = "Consumer secret"
  cnf.oauth_token = "OAuth token"
  cnf.oauth_token_secret = "OAuth token secret"
end

Twitter.update("Hello World!!!")

5.Twitter apiをいろいろ試す


タイムラインや自分のつぶやき、検索など

#タイムライン
Twitter.friends_timeline.each do |res|
  p "#{res.from_user}: #{res.text}"
end


#自分のつぶやき最新10件
options = {"count" => 10}
Twitter.user_timeline("t_ramu", options).each do |res|
  p "#{res.from_user}: #{res.text}"
end

#「rails」をキーワードで検索して日本語のもののみ取得する
search = Twitter::Search.new
search.containing("rails").language("ja").result_type("recent").per_page(5).each do |r|
  p "#{r.from_user}:#{r.text}"
end


参考サイト

30分で誰でも作れるTwitter Bot開発・運用手順 – Ruby Twitter bot | はるかなる熊

File: README — Documentation for twitter (4.8.1)

MacOSXにnode.js環境を構築してみた


node.jsは、CentOS5.5で試してたけどMacOSにも入れてみた。Macはhomebrewでインストールすると簡単でした。
MacOSX 10.6.7
node.js 0.4.5

まずは、Homebrewが入っていなければ以下のコマンドでインストール。

$ ruby -e "$(curl -fsSL https://gist.github.com/raw/323731/install_homebrew.rb)"

・・・
Password:
==> /usr/bin/sudo /usr/bin/chgrp staff /usr/local/. /usr/local/lib
==> Downloading and Installing Homebrew...
==> Installation successful!

確認してみる

$ brew -v
0.8

nodeインストール

$ brew install node

npmインストール

$ curl http://npmjs.org/install.sh | sh

nvmインストール

$ npm install nvm
$ source ~/.bashrc
$ nvm install v0.4.5
$ node -v
v0.4.5


サンプルを試す

node.js公式サイトのサンプルを動かしてみる。
example.jsファイルを作成して以下の内容を記述する

var http = require('http')
http.createServer(function (req,res){
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World!!');
}).listen(8124, "127.0.0.1");
console.log('Server running at http://127.0.0.1:8124/');

実行する

$ node example.js
Server running at http://127.0.0.1:8124/


ブラウザでhttp://127.0.0.1:8124/にアクセスすると

表示されました!


◆参考サイト
node.jsとnpmのインストール - 自分の感受性くらい