Category Archives: gentoo

[memo] postfix + dovecotでSMTP AUTH & IMAPなメールサーバを立ち上げる


2006/10/29追記: イマイチ不正確なので[修正版][memo] postfix + dovecotでSMTP AUTH & IMAPなメールサーバを立ち上げるで書き直しました。そちらをみてください。

[memo] サーバのCPU動作周波数を動的に変える


[memo] サーバのCPU動作周波数を下げるの続き。

やってみないとわからんので、cpufreq_ondemandを試してみる。

modprobe cpufreq_ondemand
echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

cd /sys/devices/system/cpu/cpu0/cpufreq/ondemand/
ls
ignore_nice_load  sampling_down_factor  sampling_rate  sampling_rate_max  sampling_rate_min  up_threshold

cat ignore_nice_load
0

cat sampling_down_factor
1

cat sampling_rate
1040000

cat sampling_rate_max
520000000

cat sampling_rate_min
520000

cat up_threshold
80

詳細はKernel メモ ondemand参照。とりあえずignore_nice_loadは1に設定しておいた。急がないけど負荷になりそうな作業なんかはniceすること。

実際にemerge –syncとかして/proc/cpuinfoを見てたら、普段1GHzで動作しているのが2GHz→1.8GHzとなって1GHzに戻った。上手く動いているっぽい。試しにnice revdep-rebuildとかすると1GHzから変わらないことも確認。とりあえずこのまま運用してみる。

[memo] TortoiseSVNからsvn+sshを使う


普通にsshで繋がるようになったらsvn+sshを使いたくなる。サーバー側はemerge subversionするぐらいで設定は特にない。svnadmin create /var/svn/hoge とか svn import ~/moge file:///var/svn/hogeとかしておくだけ。svnserveを立ち上げる必要はない。svn+sshで接続するときは、sshで認証した後svnserve -tを勝手にしてくれ、接続を切るとsvnserveプロセスもなくなってくれる。よってルータで3690番のポートを開けておくとかいう作業は必要ない。22番だけ開いていればいい。

クライアント側は、Poderosaで作った鍵(例えばファイル名をid_rsaとする)しかない場合はPuTTY用の鍵を作る。puttygenを起動して、秘密鍵を読み込んでパスフレーズを入力すれば変換される。変換された秘密鍵をid_rsa.ppkとして保存。とりあえずPuTTYを起動して接続-データで自動ログインのユーザ名と、接続-SSH-認証で認証のためのプライベートキーファイルでさっきの.ppkファイルを設定。接続してみてパスフレーズ入力してログイン出来ればOK。

次にputty.exeと同じフォルダにあるpageant.exeを起動する。タスクトレイに常駐するので右クリックして鍵の追加を選んで、.ppkを選択する。パスフレーズを入力すれば作業終わり。以降、PuTTYでもTortoiseSVNでもパスフレーズは入力しないでもいい。ただ、これはWindowsにログインしなおすと消えてしまうので、ログイン毎に鍵の追加→パスフレーズの入力を行う必要がある。ランチャーに登録するかスタートアップに入れておく。

後はTortoiseSVNの設定で、ネットワークにあるSSHクライアントにTortoisePlink.exeを設定。これでTortoiseSVNからリボジトリブラウザを開いて、URL欄に svn+ssh://ユーザ名@ホスト名/var/svn/hoge と入力してエラーが出なければ終了。

[memo] USEフラグをいい感じに管理する


俺のようにしょっちゅうemergeしたい人はUSEフラグの管理が大変だ。知らないうちに勝手にgtk2フラグが有効になっててXがインストールされたりして大変ウザイ。そんなわけでGentoo使いの先輩に教えて貰ったeixとeuseを使ってみる。

sudo emerge eix
sudo eix-sync

euseはgentoolkitに入っている。eixはemerge –searchと似たようなモンだがこっちのほうが速いし使いやすい。んで、本題のeuseだが、使い方自体は–helpすりゃわかるんだが。フラグの説明見たり、どれが使われてるか見れたり、フラグを有効にしたり無効にしたりできる。つーか詳細はman euseで(w euse使うとmake.confのUSEフラグの部分が整形されて見やすくなるのも嬉しい。まぁ説明見るだけなら /usr/portage/profiles/use.desc
見ればいいんだが。

同じくgentoolkitに含まれているequeryも激しく便利。こいつで

equery depends mysql

とかやってやればmysqlフラグに依存しているパッケージを調べることが出来るし、dependsをdepgraphに変えてやると依存関係をツリーで見れる。超便利。

[memo] サーバのCPU動作周波数を下げる


CPUに関する情報は/sys/devices/system/cpu/cpu0/cpufreq/で次のファイルをcatする。まぁファイル名のまんまだが。

  • affected_cpus : 影響する他のCPU。俺の場合はデュアルコアなので当然0と1
  • cpuinfo_cur_freq : 現在の動作周波数
  • cpuinfo_max_freq : 最大周波数。AMD64X2 3800+の場合は2000000
  • cpuinfo_min_freq : 最低周波数。AMD64X2 3800+の場合は1000000
  • scaling_available_freqyencies : 設定可能な周波数。AMD64X2 3800+の場合は2000000/1800000/1000000しかない。intelだともっと多いらしい
  • scaling_available_governors : 設定可能な動作モード。Gentooのデフォルトではperformanceのみ
  • scaling_cur_freq : 現在の動作周波数
  • scaling_driver : 周波数コントロールのための仕組みの名前
  • scaling_governor : 動作モード。scaling_available_governorsのどれか
  • scaling_max_freq : cpuinfo_max_freqと何が違うのかわからん
  • scaling_min_freq : cpuinfo_min_freqと何が違うのかわからん

普段は高周波数で動いてくれなくていいというか、その方が電気代が安くなって地球に優しいためいい感じ。そんなわけで以下の手順を踏んで周波数を下げてみた。

(今の周波数を確認)

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq

(どんなdriverがあるか探す)

find /lib/modules/2.6.17-gentoo-r7/ -name '*.ko'|grep cpu

(明らかにそれっぽい奴を見つけたので読み込む)

sudo modprobe cpufreq_powersave

(動作モードが増えたことを確認)

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors

(動作モードを上で確認したやつに変更)

su - ; echo "powersave" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
exit

(周波数が下がったことを確認)

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq

これだと確かに周波数は下がるが下がりっぱなしだ。Gentooだと最新を追っかけたい人はコンパイルをしょっちゅうするので、そういうときにいちいち戻すのが面倒だ。そこでcpufreq_ondeamndというdriverを使うと、なんかいい感じに自動化できそうな予感がする。が、もうちょっと調べて、しっかり設定しないと下がりっぱなしとか上がりっぱなしになりそうな予感がするのでとりあえずスルー。

[memo] Gentooインストールメモ


特に書くことないほどあっさり終了。LiveCDを焼いてそいつでブートし、デスクトップ画面が出てきたら”Gentoo Linux installer”をダブルクリックして指示に従っていくだけ。つかパソコンふぉあ障害者ず Gentoo Linux 2006.0(インストール-LiveCD-)を参考に。変えたところはIPアドレスとかその辺のネットワーク設定周りと、ステージを3からにしたのと、CFLAGで-O3にしたぐらい。インストールが終わったら上部のメニューからrebootしてCD抜いて終わり。

pingして外に繋がることを確認したら

emerge --sync

してから、必要なものをガンガン入れるんだが、その前に

/etc/init.d/hdparm start

してDMAを有効にしておく。んでいい加減sshで繋いで作業したいので

nano -w /etc/ssh/sshd_config

で適切にsshを設定。

PermitRootLogin no
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication no

とかそんな感じに。

クライアントで鍵セットを作って、USBメモリでサーバに公開鍵を置く。マウントするのは

mkdir /mnt/usbmemory
mount -t vfat /dev/sdb1 /mnt/usbmemory

で、/mnt/usbmemoryが見えるようになる。後は公開鍵を置いてパーミッション変えればOK。

mkdir ~/.ssh
cat /mnt/usbmemory/id_rsa >> ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

クライアントからsshで繋いでrootになって、ひたすらemerge -av パッケージ名。入れたパッケージは以下の通り。

  • 管理系:gentoolkit/htop/traceroute/tcpdump
  • デーモン系:apache2/proftpd/mysql/subversion/trac/samba
  • ユーティリティ系:sudo/screen/ftp/zsh/w3m/svk/lv/nkf
  • 言語:python/ruby/jdk/groovy

keywordでmaskされてるとか怒られるやつは

ACCEPT_KEYWORDS="~amd64" emerge -av パッケージ名

で入る。色々入れたり消したりしてるうちに依存関係がおかしくなったりしたときは、revdep-rebuildする。特定のライブラリに依存するもの、とかの指定もできる。

あとはapacheやらsambaやらの設定だな。