DebianにFUSE・FuseFSを入れるまで

自分の手元のDebianFUSERubyバインドであるFuseFSを使いたくなったため、ココにメモ。んなに難しくなかった。
この記事ではrootが、FuseFSのサンプルを動かせるようになるまでをつらつら書いております。

環境

とりあえず環境を示しておく。最近Debianを使い出したので新しいDebian。(日本語ガッ!

# uname -a
Linux debian 2.6.18-5-686 #1 SMP Wed Oct 3 00:12:50 UTC 2007 i686 GNU/Linux
# whoami
root
# pwd
/root

自分が行なった手順

動きさえすればいいという方はココを飛ばして、下のまとめへ
aptitudeという便利なものがあるのでそれでFuseFSを入れれば終わりじゃないか?と推測・実行

# aptitude install libfusefs-ruby
・・・・・・・
・・(イロイロ)
・・・・・・・

んで付いてくるサンプルでも動かしてテストしてみましょう。

# cd /usr/share/doc/libfusefs-ruby1.8/exsamples
# ls 
# ruby hello.rb mnt
demo.rb  dictfs.rb  hello.rb  openurifs.rb  railsfs.rb  sqlfs.rb  yamlfs.rb
#

それぞれのファイルで、1つのサンプルになっております。それぞれどんなサンプルかは以前記事で書いたので参照していただけると喜びます(僕が
当然このままでは上手く行きません。(でないとこんな記事にしません)

# mkdir mnt     # マウント先のディレクトリを用意
# ls mnt
(何も無い)
# ruby hello.rb mnt
fuse: failed to exec fusermount: No such file or directory
/usr/lib/ruby/1.8/fusefs.rb:13:in `for_fd': no implicit conversion from nil to integer (TypeError)
        from /usr/lib/ruby/1.8/fusefs.rb:13:in `run'
        from hello.rb:20

FUSEを使ったプログラムをマウントするためにはfusermountってのが必要なんですね。これは"fuse-utils"ってパッケージの中に入ってます。

# aptitude install fuse-utils
# ruby hello.rb mnt
fusermount: failed to open /dev/fuse: No such file or directory
/usr/lib/ruby/1.8/fusefs.rb:13:in `for_fd': no implicit conversion from nil to integer (TypeError)
        from /usr/lib/ruby/1.8/fusefs.rb:13:in `run'
        from hello.rb:20

まだ出ます。これは、、、、実はよく理屈が分かっていませんが、fuseがモジュールとして読み込まれていない。との事なので。。。

#  modprobe fuse
# ruby hello.rb mnt
(プロンプトが返ってこない)
(ctrl+cでプロセスを中断)
# ruby hello.rb mnt &
# ls mnt
hello.txt       # 何も無いはずのmntの中にテキストファイルががが!
# cat mnt/hello.txt
Hello, World!
#

といった感じ。
アンマウントする時は。。。

# fg
(プロンプトが返ってこない)
(ctrl+cでプロセスを中断)
#

でかまわない。

まとめると

インストールからサンプルの起動の流れを書くと。。。

# aptitude install libfusefs-ruby fuse-utils
# modprobe fuse
# cd /usr/share/doc/libfusefs-ruby1.8/exsamples/
# mkdir mnt
# ruby hello.rb mnt & 

だろか。

問題・不満