leveldb无法在wsl1中使用

发布时间 2023-05-06 17:54:28作者: zhaogaojian

1、WSL1 不支持 FUSE 文件系统,因此无法在 WSL1 中直接使用 LevelDB。LevelDB 使用 FUSE 来提供基于文件的存储,因此在 WSL1 中无法正常运行。

但是,您仍然可以在 WSL1 上使用 Leveldb 的 API,只需将数据存储在本地文件系统中即可。这意味着您需要使用本地 Windows 文件系统或其他支持 WSL1 的文件系统(如 NTFS 或 ext4fs)来存储 LevelDB 的数据库。

如果您需要在 WSL1 中使用类似于 LevelDB 的键值存储库,建议考虑使用 SQLite 或 RocksDB 等理解适用于本地文件系统的存储引擎。
2、FUSE(文件系统在用户空间)是一种允许非特权用户创建和挂载文件系统的机制。它将文件系统的实现移到了用户空间,并通过与内核通信来提供文件系统服务。

FUSE 使得开发者能够使用用户态编程语言(如 Python、Ruby、Java 等)来实现文件系统,而无需直接操作内核代码。FUSE 的原理是,在启动时挂载一个虚拟的特殊目录,当然你可以在这个虚拟的目录下再挂载其他自定义文件系统。

在 Linux 系统中,很多功能强大的文件系统都是基于 FUSE 实现的,例如 NTFS-3G、sshfs、encfs 等。对于存储、备份、共享等方面的需求,FUSE 文件系统可以为应用程序提供良好的支持。