さくら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
ググる前に試してしまったけど、同じような方がいました。
perlbrewとcpanmのインストール - MacOS Xでの環境構築
久々のブログエントリです。ここのとこずっとperlばかりさわっていて、やっぱりガリガリ書けるのはいいなぁと感じています。Perl Hackerな方々のコードをみたりして手を動かして日々精進あるのみです。
まだまだPerlカジュアルな感じですがアプトプットしていこうかと思います。
今回はMacOS Xにおける開発環境の構築です。perlはMacOSに標準でインストールされていますが、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-netのSMTPサーバ認証方式を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を使ってみる
rubyでTwitterのbot作成依頼などがあり、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つの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!!!")
タイムラインや自分のつぶやき、検索など
#タイムライン 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/にアクセスすると
表示されました!