手记

libfuse的配置以及使用

fuse简介

fuse文件系统是什么,其实我也不是很清楚,网上说了一大堆云云,我对它的理解就是实现用户端文件应用发送指令给系统内核进行资源(文件)调用,通过fuse与内核之间进行通信。以上是我对fuse的粗浅认识。当然更详细的读者可以去查阅相关的文档,上面有十分详细的介绍。

libfuse的配置

今天我要讲的是,libfuse的配置与使用。关于这一点,我需要说明的是,目前网上存在的一些博客,其实不是很多,并且大多都是很早以前的一些文章,基于fuse-2.X开发的fuse文件系统,要么是找不到资源包(当然fuze的可以找到,相关的一些找不到,例如fuse-tutorial),要么是配置出现问题,总之我配置的大半天,都不行,可能也是因为我自己太菜了。。。最后还是选择基于GitHub上的英文文档,硬着头皮去配置(因为我之前没怎么接触过Linux)。

具体实施
资源准备,其实也没什么需要准备的,其实就是Linux系统,无论你使用Linux16.04还是Linux18都无所谓,因为都可以配置成功。

   sudo apt intall python3-pip

为什么安装pip3是有原因的,因为后面牵涉到要安装meson,通过

sudo apt install meson

安装的版本太低,不能满足后续操作,所以在此强烈建议安装pip3。安装完成pip3以后,我们就可以很开心的安装meson了,执行以下命令:

pip3 install meson #注意是在libfuse文件夹内部执行终端
  • step 3
    这一步是一些配置工作,按照github上的命令执行即可,注意这一点可能会出现mesonconf被取代的提示,按照提示执行:
meson configure
meson configure -D disable-mtab=true
  • step 4
    执行ninja命令,以及生成编译文件,命令如下:
ninja
sudo python3 -m pytest test/
sudo ninja install

注意在这一块有人可能会遇到没有安装pytest的问题,不要着急,如果遇到此类问题,建议通过以下命令解决:

pip3 intsall pytest --user #务必添加--user获取权限
  • step 5
    验证安装是否成功,可以查看build/example文件夹下是否生成了可执行文件,如果有,则表示成功,我们可以在build/example目录下,运行终端,以hello这个可执行文件为例:
mkdir home/lxh(客户机名称)/test
./hello home/lxh/test

我们发现test文件夹下生成了helo文件,则表示成功。

libfuse的使用

我们避免不了去使用libfuse,去实现我们自己的程序,那就需要将我们自己的程序放置到libfuse/example文件夹下,但是单纯的放进去,编译是不会产生对应的可执行文件的,我们需要在meson.build文件中进行备案,打开meson.build文件夹,我们可以将文件名添加到文件名称的数组中,然后重新进行编译(即重新执行安装过程),就可以在build/example文件夹下生成相应的可执行文件,然后执行即可。

5人推荐
随时随地看视频
慕课网APP