Subcribe via RSS

gem install memcached ではまったメモ

2012/1/20 | Posted in linux, ruby

Error:

$gem install memcached
...
rlibmemcached_wrap.c: In function ‘_wrap_MemcachedSt_sasl_callbacks_set’:
rlibmemcached_wrap.c:6669: error: ‘sasl_callback_t’ undeclared (first use in this function)
rlibmemcached_wrap.c:6669: error: (Each undeclared identifier is reported only once
rlibmemcached_wrap.c:6669: error: for each function it appears in.)
rlibmemcached_wrap.c:6669: error: ‘arg2’ undeclared (first use in this function)
rlibmemcached_wrap.c:6669: error: expected expression before ‘)’ token
rlibmemcached_wrap.c:6687: error: expected expression before ‘)’ token
rlibmemcached_wrap.c:6688: error: ‘struct memcached_st’ has no member named ‘sasl_callbacks’
rlibmemcached_wrap.c:6688: error: expected ‘)’ before ‘const’
rlibmemcached_wrap.c:6688: error: expected ‘;’ before ‘arg2’
rlibmemcached_wrap.c: In function ‘_wrap_MemcachedSt_sasl_callbacks_get’:
rlibmemcached_wrap.c:6700: error: ‘sasl_callback_t’ undeclared (first use in this function)
rlibmemcached_wrap.c:6700: error: ‘result’ undeclared (first use in this function)
rlibmemcached_wrap.c:6711: error: expected expression before ‘)’ token
rlibmemcached_wrap.c:6711: error: ‘struct memcached_st’ has no member named ‘sasl_callbacks’
rlibmemcached_wrap.c: In function ‘_wrap_memcached_set_sasl_callbacks’:
rlibmemcached_wrap.c:12021: error: ‘sasl_callback_t’ undeclared (first use in this function)
rlibmemcached_wrap.c:12021: error: ‘arg2’ undeclared (first use in this function)
rlibmemcached_wrap.c:12021: error: expected expression before ‘)’ token
rlibmemcached_wrap.c:12039: error: expected expression before ‘)’ token
rlibmemcached_wrap.c:12040: error: expected ‘)’ before ‘const’
rlibmemcached_wrap.c:12040: error: expected ‘)’ before ‘arg2’
rlibmemcached_wrap.c: In function ‘_wrap_memcached_get_sasl_callbacks’:
rlibmemcached_wrap.c:12122: error: ‘sasl_callback_t’ undeclared (first use in this function)
rlibmemcached_wrap.c:12122: error: ‘result’ undeclared (first use in this function)
rlibmemcached_wrap.c:12133: error: expected expression before ‘)’ token
rlibmemcached_wrap.c: In function ‘Init_rlibmemcached’:
rlibmemcached_wrap.c:13285: error: ‘SASL_OK’ undeclared (first use in this function)
make: *** [rlibmemcached_wrap.o] Error 1

$ gem clean memcached

centos
$ yum install cyrus-sasl2 cyrus-sasl-devel

ubuntu, debian
$ apt-get install libsasl2-2 libsasl2-dev




Tags: ,

rubyで短縮URLの展開

2011/6/14 | Posted in programming, ruby

rubyで「bit.ly/******」などの短縮URLを展開したいときは、hugeurlが使えます。

インストール

gem install hugeurl

使い方

require 'rubygems'
require 'hugeurl'
puts URI.parse("http://bit.ly/iZhgER").to_huge

これで展開されたURLが取得できます。簡単で便利です。


追記
短時間にたくさん使うと、エラーが出ることがあります。
そういうときは

RubyでURL短縮展開のコードがきもいです… | cod.note

も使えます。


参考にしたサイト







Tags:

Rubyでtwitter, facebook, instagramなどの認証

2011/6/4 | Posted in ruby, twitter

最近のソーシャルなサービスをアプリケーションと連携するには、Oauthで認証する必要があります。
これを自分で全部やるのは結構大変なので、ライブラリを使います。

RubyでOauthを使う場合、Omniauthというライブラリが便利です。
更新がこまめにされていて、対応できるサービスもtwitterをはじめgithubやlinkedinなどたくさんあり、instagramなどの新しいサービスにも対応できます。

使い方を紹介するのがちょっと大変なので、参考になりそうなサイトのリンクを貼っておきます。




Tags: , ,

Ubuntu11.04でrails

2011/5/28 | Posted in programming, ruby, ubuntu

今までrubyは使ってたけどrailsは使ったことなかったので、少し勉強を始めました。

ubuntuのaptでgemを入れると、最新のものが使えなかったりしていろいろハマるので、別にいれた方がよさそうです。

また、railsのバージョンも2.xと3.xでいろいろ違うみたいなので、今回は両方の環境を入れてrvmで切り替えられるようにします。

参考にしたのは

です。

関連するパッケージなどをインストール。
$ sudo apt-get install gcc build-essential
$ sudo apt-get install bison byacc gperf zlib1g-dev libssl-dev
$ sudo apt-get install libreadline5 libreadline5-dev libncurses5 libncurses5-dev sqlite3 libsqlite3-dev curl

rvm(Ruby Version Manager)を入れる。
URLが変わっているかもしれないので、その時はRVM: Ruby Version Manager – Installing RVMを確認。
$ bash < <(curl -s https://rvm.beginrescueend.com/releases/rvm-install-head )

次に、.bashrcなどに以下を追加してログインしなおす。
# This loads RVM into a shell session.
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"


ここから、rvmを使ってrubyなどをインストールしていきます。
rubyは1.8xや1.9xを入れます。

$ rvm install 1.8.7
$ rvm install 1.9.1
$ rvm default use 1.8.7
切り替えは
$ rvm use 1.9.1

railsは2.3xや3.0xを入れてみます。
railsの切り替えのために、rails2とrails3というgemsetを作ります。
また、rails3をそのまま入れるとエラーが出るので、その前にgemを少し入れます。

$ rvm gemset create rails2
$ rvm gemset create rails3
$ rvm gemset use rails2
$ gem install rails -v 2.3.11
$ rvm gemset use rail3
$ gem install hoe
$ gem install rdoc-data
$ gem install rails -v 3.0.7

切り替えは、
$ rvm gemset use rail2
$ rvm gemset use rail3
$ rvm gemset use global

最初からglobalっていうgemsetがあるから、共通するgemはこれに入れるべきっぽい。

まあ、とりあえずrubyとrailsが入って、異なるバージョンが切り替えられるようになりました。




Tags: , ,

rubyからtwitter APIを利用してbotを作る

2009/9/10 | Posted in ruby, twitter

rubyからtwitter APIをたたくbotを作ります。

今回は、

「受け取ったダイレクトメッセージを、そのままpostするbot」

を作ります。

以前はtwitter4Rというgemを使っていたけど、それが正しく動かなくなったので、

Ruby Twitter Gem by John Nunemaker

を使います。

ドキュメントは

rdoc.info :: twitter

に詳しいです。

で、ソースコード。

require 'rubygems'
require 'twitter'

#twitter conf
username = ''
password = ''
httpauth = Twitter::HTTPAuth.new(username, password)
client = Twitter::Base.new(httpauth)

client.direct_messages.each{ |msg|
  post_msg = msg.text.strip
  client.update(post_msg)
  client.direct_message_destroy(msg.id)
}

これをcronで毎分動かしてやります.
以上です。今のところ正しく動いています。

— 2010/07/10 追記 —
この記事は古いですが、今ならOauthの認証を使うべきです。

この記事なんかが参考になります。




Tags: ,
  • 書いてる人:

    Junichiro Takagi
    高木潤一郎

    http://tjun.jp
    mail@tjun.jp

    未踏でクリエータやってました。メーカーでエンジニアやってます。
    このブログは、会社とは関係なく個人の意見を書いています。

    RSS:


  • friendfeed: