* libblkid
* libkeyutils
* liblz4
- * libscrypt
* libsodium
* liburcu
* libuuid
* zlib1g
* valgrind
-On debian, you can install these with
+Debian (Bullseye or later) and Ubuntu (20.04 or later): you can install these with
apt install -y pkg-config libaio-dev libblkid-dev libkeyutils-dev \
- liblz4-dev libscrypt-dev libsodium-dev liburcu-dev libzstd-dev \
- uuid-dev zlib1g-dev valgrind
+ liblz4-dev libsodium-dev liburcu-dev libzstd-dev \
+ uuid-dev zlib1g-dev valgrind libudev-dev git build-essential \
+ python3 python3-docutils
+
+Fedora: install the "Development tools" group along with:
+ dnf install -y libaio-devel libsodium-devel \
+ libblkid-devel libzstd-devel zlib-devel userspace-rcu-devel \
+ lz4-devel libuuid-devel valgrind-devel keyutils-libs-devel \
+ findutils
+
+Arch: install bcachefs-tools-git from the AUR.
+Or to build from source, install build dependencies with
+ pacman -S base-devel libaio keyutils libsodium liburcu zstd valgrind
Then, just make && make install
an early stage and may corrupt your filesystem, so it should only be used for
testing. To enable, you'll also need to add:
-* libfuse3
+* libfuse3 >= 3.7
-On debian:
+On Debian/Ubuntu (Bullseye/20.04 or later needed for libfuse >= 3.7):
apt install -y libfuse3-dev
-Then, make using the BCACHEFS_FUSE environment variable:
+On Fedora (32 or later needed for lbifuse >= 3.7):
+ dnf install -y fuse3-devel
+
+Arch:
+ pacman -S fuse3
+
+Then, make using the BCACHEFS_FUSE environment variable (make clean first if
+previously built without fuse support):
-BCACHEFS_FUSE=1 make &&
+BCACHEFS_FUSE=1 make && make install
-- Tests --
Then, you can run the tests via:
make check
+ # or if pytest has a different name
+ make check PYTEST=pytest
Optionally, you may wish to run tests in parallel using python3-pytest-xdist: