柘植です。こんにちは。
On Tue, Feb 08, 2005 at 09:35:05AM +0900,
osk wrote:
> 今考えてるのは、<任意>の中に展開されたファイルを全てハードディスク上に保
> 存しておけば、.cmg も必要なく、<任意>のなかの AppRun から起動できるんじ
> ゃないか、ということで、帰宅してから試してみようと思っています。
そうですね。私はcramfsを使うことを無条件に前提しちゃってたのです
が、osk さんがおっしゃってるのは、cramfs を使ってなかった
第1世代の klik( http://klik.berlios.de/ ) と同じ方法に戻す、とい
うことですね。
サイズをおよそ半分まで圧縮できるcramfsを使うかどうかは、利用状況
に合わせてユーザの選択に任せてくれてもいいような気がしますね。
ところで、.cmgファイルをループバックマウントしてみるとこんなこと
になります。
root@ttyp1[~]# mount -o ro,loop,exec Desktop/hydrogen.cmg tmp
root@ttyp1[~]# mount | grep hydrogen
/ramdisk/home/knoppix/Desktop/hydrogen.cmg on /ramdisk/home/knoppix/tmp type
cramfs (ro,loop=/dev/loop0)
root@ttyp1[~]# ls -ld tmp
drwxr-xr-x 1 knoppix 232 160 2005-02-08 16:37 tmp
root@ttyp1[~]# ls -la tmp/
合計 34
lrwxrwxrwx 1 knoppix 232 2 2005-02-08 16:39 .DirIcon -> ./
-rw-r--r-- 1 knoppix 232 44 2005-02-08 16:39 .directory
-rw-r--r-- 1 knoppix 232 312 2005-02-08 16:39 AppInfo.xml
lrwxrwxrwx 1 knoppix 232 9 2005-02-08 16:39 AppRun -> ./wrapper
-rw-r--r-- 1 knoppix 232 27137 2005-02-08 16:39 klik.log
drwxr-xr-x 1 knoppix 232 36 2005-02-08 16:39 opt
drwxr-xr-x 1 knoppix 232 68 2005-02-08 16:39 usr
-rwxrwxrwx 1 knoppix 232 3776 2005-02-08 16:39 wrapper
本来knoppix(gid=1000)であるはずのファイル、ディレクトリの
gid がKnoppixには存在しない`232'になっています。
http://www.linux.or.jp/JF/JFdocs/kernel-docs-2.4/filesystems/cramfs.txt.html
によると cramfs が持っている「潜在的なセキュリティ問題」みたい
ですから、「展開されたファイルを全てハードディスク上に保存」す
るのなら、ループバックマウントを使うのではなく cramfsck で展開
したほうがよさそうです。こんなふうに。
# cramfsck -vx /path/to/appdir hoge.cmg
でも、klikで.cmgファイルを生成する前段階で作られる
/tmp/klik/<アプリケーション名> ディレクトリを、まるごと
別デバイスに保存しておけば展開の必要すらないので、それが
一番いい方法かな、と思います。
--
Tsuge Akihide
|