[AVFS] README documentation for using avfs with fuse

Peter <[email protected]> Sat, 26 Nov 2005 06:00:06 -0500
Newsgroups gmane.comp.file-systems.avfs.user
Message-ID <[email protected]>
I have written the following README to assist users
in getting avfs working with fuse. In the cvs tree there
is a fuse directory which contains code for creating a
daemon that can interface with fuse. You can obtain the
CVS code by following the directions at:
http://sourceforge.net/cvs/?group_id=21636. 
For gentoo uers, there is also an ebuild for this 
available at: http://bugs.gentoo.org/show_bug.cgi?id=23112
This documentation is also in the CVS tree. HTH.

November 2005

This version of AVFS includes support for fuse (Filesystems
in userspace). The other versions of AVFS, preload, library,
and coda, do NOT have to be installed since they are not supported
by applications and are unsupported in kernels >2.6.x or 
glibc > 2.1. Any user wishing to install the library may do so 
but will have to write his/her own program interface to it.

Fuse support consists of a single daemon file and startup 
script. In order to compile fuse support, the avfs library must 
be compiled. However, it does NOT have to be installed. The 
following steps should be followed prior to building the fuse 
daemon.

SETUP:
------
Change to the cvs download directory. You do NOT need to be root.
You DO need to have write permissions to the download directory.

user avfsdldir> ./autogen.sh
user avfsdldir> ./configure --enable-library
user avfsdldir> make
(no need to run make install)

If there are no errors, then make fuse:

user avfsdldir> cd fuse
user avfsdldir/fuse> ./compile.sh
(compile.sh is the self-contained program to make the fuse daemon)

IF THERE ARE ERRORS perhaps review the compile steps above and 
determine what the errors are and correct. Perhaps a library 
is missing?

When this is done, only two files are needed. To complete the
setup, you may copy the two files to any directory -- preferably
one in the path. If you wish to copy them to system directories
(such as /usr/bin), you must be root.

INSTALLATION OF FUSE DAEMON AND STARTUP SCRIPT:
-----------------------------------------------
In this example, I copy the two files to the $HOME/bin directory.

user avfsdldir/fuse> cd ..
user avfsdldir> cp fuse/avfsd scripts/mountafvs ~/bin

IMPLEMENTATION:
---------------
AVFS can entirely be implemented by any user. To do so requires
that:

1) fuse support is compiled into the kernel or is a kernel
module and loaded
2) the fuse package is installed (http://fuse.sf.net)
3) the user create a directory called .avfs in his/her home
directory (mkdir ~/.avfs).
4) the user run the program mountavfs

mountavfs loads the avfsd daemon and mounts the virtual
filesystem at ~/.avfs.

Once done, the user will be able to access all kinds of com-
pressed files via the pseudo-fs ~/.avfs.

Testing the installation:
-------------------------
The README docs indicate that testing can be done as
ls /#avfsstat. This will not work. Using this version of
AVFS, try:

ls ~/.avfs/#avfsstat

Anytime the docs say /#avfsstat or filename#, always prepend
~/.avfs/, ex:

ls ~/.avfs/myzipfile.zip#
- or -
cat ~/.avfs/README.gz#

Using with ROX:
---------------
Rox supports AVFS access, however, not with fuse. Trying to
open a compressed file with Ctrl+O will result in an error
since Rox still expects AVFS to use the preload or coda methods.

To get around this, the user can create a run action for any
type of compressed file as follows:

rox $HOME/.avfs/$@#

If you wish to use a Shell command within ROX, press BANG (!)
and type similar to the above except a $PWD needs to be inserted
before the $@ shell variable (don't know why, but with !, ROX 
does not expand $@ to a full pathname/filename).

!rox $HOME/.avfs/$PWD/$@#

Of course, $HOME can be replaced with ~ if desired.

Thanks to Jonatan Liljedahl, rox developer, for the tip and
workaround AND for alerting me that fuse CAN work with AVFS.

Stopping AVFS:
--------------
Make sure no files are being accessed via AVFS. Then:

fusermount -u ~/.avfs

This will unmount the virtual filesystem AND unload the
avfsd daemon. The user can start AVFS anytime later.

***** CAUTION *****
This code is CVS. It may change, it may not work! As with
all developmental code, the user is advised to exercise
proper caution and backup protocols.
***** END CAUTION *****

More information can be obtained from:
http://sourceforge.net/projects/avf
http://sourceforge.net/projects/fuse or
http://fuse.sourceforge.net
http://rox.sourceforge.net

Documentation by
Peter Hyman



-- 
----
Do not reply to this email address. It is a spam trap and not monitored.
If you wish to contact me, please use pete4abw-GMWn+aNOpongUlbfAyk/[email protected] Thx.




-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click