1 |
dpavlin |
15 |
Fuse version 0.06 |
2 |
mszeredi |
4 |
================= |
3 |
|
|
|
4 |
dpavlin |
15 |
Fuse is combination of Linux kernel module and user space library which |
5 |
|
|
enables you to write user-space filesystems. This module enables you to |
6 |
|
|
write filesystems using perl. |
7 |
mszeredi |
4 |
|
8 |
dpavlin |
15 |
Additional file-systems using Fuse module are released on CPAN using Fuse:: |
9 |
|
|
namespace. Currently that includes only Fuse::DBI which allows you to mount |
10 |
|
|
database as file system, but there will be more. |
11 |
mszeredi |
4 |
|
12 |
dpavlin |
15 |
This is a pre-production release. It seems to work quite well. In fact, I |
13 |
|
|
can't find any problems with it whatsoever. If you do, I want to know. |
14 |
|
|
|
15 |
|
|
|
16 |
mszeredi |
4 |
INSTALLATION |
17 |
|
|
|
18 |
|
|
To install this module type the standard commands as root: |
19 |
|
|
|
20 |
|
|
perl Makefile.PL |
21 |
|
|
make |
22 |
|
|
make test |
23 |
|
|
make install |
24 |
|
|
|
25 |
|
|
|
26 |
|
|
DEPENDENCIES |
27 |
|
|
|
28 |
|
|
This module requires the FUSE userspace library and the FUSE kernel module. |
29 |
dpavlin |
12 |
See http://fuse.sourceforge.net/ |
30 |
mszeredi |
4 |
|
31 |
|
|
|
32 |
|
|
COPYRIGHT AND LICENCE |
33 |
|
|
|
34 |
|
|
This is contributed to the FUSE project by Mark Glines <mark@glines.org>, |
35 |
|
|
and is therefore subject to the same license and copyright as FUSE itself. |
36 |
|
|
Please see the AUTHORS and COPYING files from the FUSE distribution for |
37 |
|
|
more information. |
38 |
|
|
|
39 |
|
|
|
40 |
|
|
EXAMPLES |
41 |
|
|
|
42 |
|
|
There are a few example scripts. You can find them in the examples/ |
43 |
|
|
subdirectory. These are: |
44 |
|
|
|
45 |
|
|
* example.pl, a simple "Hello world" type of script |
46 |
|
|
|
47 |
|
|
* loopback.pl, a filesystem loopback-device. like fusexmp from |
48 |
|
|
the main FUSE dist, it simply recurses file operations |
49 |
|
|
into the real filesystem. Unlike fusexmp, it only |
50 |
|
|
re-shares files under the /tmp/test directory. |
51 |
|
|
|
52 |
|
|
* rmount.pl, an NFS-workalike which tunnels through SSH. It requires |
53 |
|
|
an account on some ssh server (obviously), with public-key |
54 |
|
|
authentication enabled. (if you have to type in a password, |
55 |
|
|
you don't have this. man ssh_keygen.). Copy rmount_remote.pl |
56 |
|
|
to your home directory on the remote machine, and create a |
57 |
|
|
subdir somewhere, and then run it like: |
58 |
|
|
./rmount.pl host /remote/dir /local/dir |
59 |
|
|
|
60 |
|
|
* rmount_remote.pl, a ripoff of loopback.pl meant to be used as a backend |
61 |
|
|
for rmount.pl. |
62 |
|
|
|
63 |
|
|
|
64 |
|
|
BUGS |
65 |
|
|
|
66 |
|
|
I've begun to build a formal testing framework. Currently it can mount |
67 |
|
|
and unmount loopback.pl, and all of the base-level functions have test |
68 |
|
|
scripts. These need to be fleshed out as problems are noticed. |
69 |
|
|
|
70 |
|
|
The current test framework seems to work well, but the underlying mount/ |
71 |
|
|
unmount infrastructure is a crock. I am not pleased with that code. |
72 |
|
|
|
73 |
|
|
While most things work, I do still have a TODO list: |
74 |
|
|
* "du -sb" reports a couple orders of magnitude too large a size. |
75 |
|
|
* need to sort out cleaner mount semantics for the test framework |
76 |
|
|
* figure out how to un-linuxcentrify the statfs tests |
77 |
|
|
* test everything on other architectures and OS's |
78 |
|
|
|