2010年10月16日土曜日

TokyoCabinet TokyoTyrantをCentOSにインストール

CentoOS5.5にインストールTCとTTをインストール。
もちろんpacoを使用。

まずはTC
yum install bzip2-devel
tar -xvzf tokyocabinet-1.4.46.tar.gz
cd tokyocabinet-1.4.46
make
paco -D make install

んでTT
tar -xvzf tokyotyrant-1.1.41.tar.gz
cd tokyotyrant-1.1.41
./configure --prefix=/usr
make
paco -D make install

インスト終了

テーブルごとインスタンスを立ち上げる必要があるため
ttservctlをテーブル毎にコピーして使用する。

cp /usr/sbin/ttservctl [テーブル用dir]ttservctl
ttservctlのbasedirを[テーブル用dir]に指定。
あとportとbnumを適当にいじって
[テーブル用dir]ttservctlを実行

2010年9月13日月曜日

CentOS5のgitインストール

CentOSにgitをインストールしようとしてもリポジトリにない。
せっかくpacoをインストールしたんで、ソースからインストール


wget http://www.kernel.org/pub/software/scm/git/git-1.7.2.tar.bz2
tar jxvf git-1.7.2.tar.bz2
cd git-1.7.2
./configure --prefix=/usr
make
paco -D make install

以下確認

git --version
paco -ua
paco -a

おけ

2010年9月10日金曜日

mongoidでrails起動

rails3RCをmongoidできどうします。

まずはプロジェクトの作成
rails new [プロジェクト名] -O -J -T

Jquery,mongoid,rspecでいくのでオプション付き。

プロジェクト直下のGemfileに以下を記述

gem 'rails', '3.0.0.rc'
gem "mongoid", "2.0.0.beta.16"
gem 'bson_ext', '1.0.4'


以下コマンドで設定ファイルの作成
rails generate mongoid:config


mongodbの起動
/etc/init.d/mongod start

rails起動
rails s

http://localhost:3000/で起動を確認

モデルの作成
rails g model Hoge

モデルに「include Mongoid::Document」が記載されていればOK

2010年9月6日月曜日

rails3とmongoidのインスト

rails3とmongoidのインストールをやってみる。
先日rails3RC2とmongoidでは依存してるライブラリのバージョン関係
で動かなかったのでrails3正式版がでたけどRC版で。

railsのインストール

gem install rails -v "3.0.0.rc"


bsonのインストール
gem install bson -v "1.0.4"


mongoidのインストール
gem install mongoid --pre


bson_extのインストール
gem install bson_ext



はやくmongoidの正式版がでないかなぁ。

2010年9月2日木曜日

パッケージがないときの管理

CentOSとかだとrubyとかパッケージないときはcheckinstall使ってた。
checkinstallのメニューとかだるいなぁと思ってたら「paco」なるものがあるらしい。
なので使ってみる。
pacoのインストール

wget http://downloads.sourceforge.net/paco/paco-2.0.9.tar.gz
tar xvzf paco-2.0.9.tar.gz
cd paco-2.0.9
./configure --disable-gpaco
make
make install
make logme


rubyのインストール

yum -y install zlib-devel
yum install openssl-devel
wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p302.tar.gz
tar xvzf ruby-1.8.7-p302.tar.gz
cd ruby-1.8.7-p302
./configure --prefix=/usr
make
paco -D make install
確認 ruby -v

rubygemsのインストール
wget http://rubyforge.org/frs/download.php/70696/rubygems-1.3.7.tgz
tar xvzf rubygems-1.3.7.tgz
cd rubygems-1.3.7
paco -D ruby setup.rb
確認 gem -v


MongoDBのインストール
vi /etc/yum.repos.d/10gen-mongodb.repo
以下を張り付け
[10gen]
name=10gen Repository
baseurl=http://downloads.mongodb.org/distros/centos/5.4/os/i386/
gpgcheck=0
yum install mongo-stable mongo-stable-server

2010年7月2日金曜日

Cの文字列

Cの文字列はカンマを入れない限り、一つの文字列として
扱われます。

知らんかったなぁ。まぁCは改行に意味はないからな。
今月も山いくのは無理そうだ。はよ梅雨終われ。

2010年6月24日木曜日

yumやwgetのためのproxy設定

いちいちめんどいので設定ファイルでの方法
まずはyum
vim /etc/yum.conf
以下追加
proxy=[proxy]
proxy_username=[user]
proxy_password=[passwd]

つづいてwget
vim /etc/wgetrc
http_proxy=[proxy]
proxy-user=[user]
proxy-passwd=[passwd]

そんだけ

ubuntuのための追記
apt-get
vi /etc/apt/apt.conf(なければ新規)
以下追加
Acquire{
http::proxy "http://[ユーザ名]:[パスワード]@[プロキシ]:[ポート]"
}

2010年6月18日金曜日

CentOS入れたときにやること

これもいつもどうせやるのでメモ

Beep音の停止

vi /etc/inputrc
set bell-style noneの追加
デフォルトではコメントアウトされているだけなので
コメントをはずす


自動アップデートの停止
chkconfig yum-updatesd off

なんならyum -y remove yum-updatesd

ubuntuもさわる機会があったので追記
Beep音の停止
sudo rmmod pcspkr
sudo vi /etc/modprobe.d/blacklist.conf
blacklist pcspkr追加

ubuntuのviなんか変.....

CentOSのkeymapがらみ

あんまり使うことないけど

キーコードの確認
showkey

キーマップのダンプ
dumpkeys

キーマップファイル
/lib/kbd/keymaps/i386/qwerty/以下

キーマップファイルをgnzipで解凍してごにょごにょして
圧縮することで変更可能。
キーマップのファイルは
/etc/sysconfig/keyboardで変更化

2010年4月15日木曜日

容量調べるときのコマンド

容量調べるときとか

・df ファイルシステムの容量

df [option] [filesystem]
オプション
-k 1KB単位で表示(デフォルトは512K単位)
-i i-nodeの使用量も表示
-h 単位を人に優しい感じに表示

・du ディレクトリの容量を再帰的に調査

du [option][dir]
オプション
-L シンボリックリンクも計算
-a 各ファイルごとに使用量を表示
-d 指定したディレクトリの深さだけ表示
-k 単位をKBで表示(デフォルトは512K単位)
-s サブディレクトリの使用量を表示しない
-c 全てのファイル・ディレクトリの容量の合計

dfは空き容量を計算、duはファイルの使用量ベースに計算を行うので
プロセスがつかんでるファイルや、権限のないファイルの存在のせいで
duとdfで値がづれることがある。

2010年3月15日月曜日

メモリリークの検出

メモリリークの検出方法

・mtrace
glibcに付属している関数。
使用方法
検出したい個所の前後にmtrace(), muntrace()を実行。

#include
...
mtrace();
---- 処理-----
muntrace();

ただし、検出結果の出力先をあらかじめ、環境変数に設定する必要がある。
export MALLOC_TRACE=[出力結果ファイル名]
さらにmtrace()関数はglibc付属だが、出力結果を解析するコマンドはglibc-utilsパッケージ内に存在する。
yum install glibc-utils
yum install glibc-utils
mtrace [実行ファイル名] [出力結果ファイル名]

プログラム中に関数を埋め込まなければならない。
-外部ライブラリも-gでコンパイル必要?
-new, deleteだとCallerがアドレス表示?
めんどそうなんでやめやめ

・valgrind


yum install valgrind
valgrind --leak-check=full [実行ファイル名]

楽チン。いつもお世話になってます。

Conditional jump or move depends on uninitialised value
→ 初期化していない領域を触っているとき