sidebar_label | sidebar_position | slug |
---|---|---|
Installation & Upgrade |
1 |
/installation |
JuiceFS has good cross-platform capability and supports running on all kinds of operating systems of almost all major architectures, including and not limited to Linux, macOS, Windows, BSD, etc.
The JuiceFS client has only one binary file, you can download the pre-compiled version to unzip it and use it directly, or you can compile it manually with the source code.
You can download the latest version of the client at GitHub. Pre-compiled versions for different CPU architectures and operating systems are available in the download list of each client version. Please find the version suit your application the best, e.g.,
File Name | Description |
---|---|
juicefs-x.x.x-darwin-amd64.tar.gz |
For macOS systems with Intel chips |
juicefs-x.x.x-linux-amd64.tar.gz |
For Linux distributions on x86 architecture |
juicefs-x.x.x-linux-arm64.tar.gz |
For Linux distributions on ARM architecture |
juicefs-x.x.x-windows-amd64.tar.gz |
For Windows on x86 architecture |
juicefs-hadoop-x.x.x-amd64.jar |
Hadoop Java SDK on x86 architecture (supports both Linux, macOS and Windows systems) |
:::tip
For macOS on M1 series chips, you can use the darwin-amd64
version of the client dependent on Rosetta 2, or you can refer to Manually Compiling to compile the native version.
:::
For Linux systems with x86 architecture, download the file with the file name linux-amd64
and execute the following command in the terminal.
-
Get the latest version number
JFS_LATEST_TAG=$(curl -s https://api.github.com/repos/juicedata/juicefs/releases/latest | grep 'tag_name' | cut -d '"' -f 4 | tr -d 'v')
-
Download the client to the current directory
wget "https://github.com/juicedata/juicefs/releases/download/v${JFS_LATEST_TAG}/juicefs-${JFS_LATEST_TAG}-linux-amd64.tar.gz"
-
Unzip the installation package
tar -zxf "juicefs-${JFS_LATEST_TAG}-linux-amd64.tar.gz"
-
Install the client
sudo install juicefs /usr/local/bin
After completing the above 4 steps, execute the juicefs
command in the terminal. A help message will be returned if the client installation is successful.
:::info
If the terminal prompts command not found
, it is probably because /usr/local/bin
is not in your system's PATH
environment variable. You can check which executable paths are set by running echo $PATH
, then select an appropriate path based on the return result, adjust and re-execute the installation command following the above step 4.
:::
There are two ways to use JuiceFS on Windows systems.
The Windows client of JuiceFS is also a standalone binary. Once downloaded and unpacked, you can run it right away.
-
Installing Dependencies
Since Windows does not natively support the FUSE interface, you need to download and install WinFsp first in order to implement FUSE support.
:::tip WinFsp is an open source Windows file system agent that provides a FUSE emulation layer that allows JuiceFS clients to mount file systems on Windows systems for use. :::
-
Install the client
Take Windows 10 system as an example, download the file with the filename
windows-amd64
, unzip it and getjuicefs.exe
which is the JuiceFS client binary.To make it easier to use, it is recommended to create a folder named
juicefs
in the root directory of theC:\
disk, and extractjuicefs.exe
to that folder. Then addC:\juicefs
to the environment variables of your system, and restart the system to let the settings take effect. Lastly, you can runjuicefs
commands directly using theCommand Prompt
orPowerShell
terminal that comes with your system.
WSL is short for Windows Subsystem for Linux, which is supported from Windows 10 version 2004 onwards or Windows 11. It allows you to run most of the command-line tools, utilities, and applications of GNU/Linux natively on a Windows system without incurring the overhead of a traditional virtual machine or dual-boot setup.
For details, see "Using JuiceFS on WSL"
Since macOS does not support the FUSE interface by default, you need to install macFUSE first to implement the support for FUSE.
:::tip macFUSE is an open source file system enhancement tool that allows macOS to mount third-party file systems, enabling JuiceFS clients to mount file systems on macOS systems. :::
If you have the Homebrew package manager installed on your system, you can install the JuiceFS client by executing the following command.
brew tap juicedata/homebrew-tap
brew install juicefs
You can also download the binary with the filename of darwin-amd64
, unzip it and install the program to any executable path on your system using the install
command, e.g.
sudo install juicefs /usr/local/bin
In cases one wants to use JuiceFS in a Docker container, a Dockerfile
for building a JuiceFS client image is provided below, which can be used as a base to build a JuiceFS client image alone or packaged together with other applications.
FROM ubuntu:20.04
RUN apt update && apt install -y curl fuse && \
apt-get autoremove && \
apt-get clean && \
rm -rf \
/tmp/* \
/var/lib/apt/lists/* \
/var/tmp/*
RUN set -x && \
mkdir /juicefs && \
cd /juicefs && \
JFS_LATEST_TAG=$(curl -s https://api.github.com/repos/juicedata/juicefs/releases/latest | grep 'tag_name' | cut -d '"' -f 4 | tr -d 'v') && \
curl -s -L "https://github.com/juicedata/juicefs/releases/download/v${JFS_LATEST_TAG}/juicefs-${JFS_LATEST_TAG}-linux-amd64.tar.gz" \
| tar -zx && \
install juicefs /usr/bin && \
cd .. && \
rm -rf /juicefs
CMD [ "juicefs" ]
If there is no pre-compiled client versions that are suitable for your operating system, such as FreeBSD or macOS on the M1 chip, then you can manually compile the JuiceFS client.
One of the advantages of manually compiling client is that you have priority access to various new features in JuiceFS development, but it requires some basic knowledge of software compilation.
:::tip
For users in China, in order to speed up the acquisition of Go modules, it is recommended to set the GOPROXY
environment variable to the domestic mirror server by executing go env -w GOPROXY=https://goproxy.cn,direct
. For details, please refer to: Goproxy China.
:::
Compiling clients for Linux, macOS, BSD and other Unix-like systems requires the following dependencies:
- Go 1.17+
- GCC 5.4+
-
Clone source code
git clone https://github.com/juicedata/juicefs.git
-
Enter the source code directory
cd juicefs
-
Switching the branch
The source code uses the
main
branch by default, and you can switch to any official release, for example to the latest releasev1.0.0-beta2
(release on March 2022).git checkout v1.0.0-beta2
:::caution The development branch often involves large changes, so please do not use the clients compiled in the "development branch" for the production environment. :::
-
Compiling
make
The compiled
juicefs
binary is located in the current directory.
Compiling the JuiceFS client on Windows requires Go 1.17+ and GCC 5.4+.
Since GCC does not have a native Windows client, the version provided by a third party, either MinGW-w64 or Cygwin is needed. Here is an example of using MinGW-w64.
Download MinGW-w64 and add its bin
directory to the system environment variables.
-
Clone and enter the project directory
git clone https://github.com/juicedata/juicefs.git && cd juicefs
-
Copy WinFsp headers
mkdir "C:\WinFsp\inc\fuse"
copy .\hack\winfsp_headers\* C:\WinFsp\inc\fuse\
dir "C:\WinFsp\inc\fuse"
set CGO_CFLAGS=-IC:/WinFsp/inc/fuse
go env -w CGO_CFLAGS=-IC:/WinFsp/inc/fuse
-
Compile client
go build -ldflags="-s -w" -o juicefs.exe ./cmd
Compiling a specific version of the client for Windows is essentially the same as Unix-like Client and can be done directly on a Linux system. However, in addition to go
and gcc
, you also need to install:
The latest version can be installed from software repositories on many Linux distributions. Take an example of Ubuntu 20.04+: mingw-w64
can be installed as follows.
sudo apt install mingw-w64
Compile the Windows client:
make juicefs.exe
The compiled client is a binary file named juicefs.exe
, located in the current directory.
-
Clone and enter the project directory
git clone https://github.com/juicedata/juicefs.git && cd juicefs
-
Install dependencies
brew install FiloSottile/musl-cross/musl-cross
-
Compile client
make juicefs.linux
The JuiceFS client only has one binary file, so to upgrade the new version, you only need to replace the old one with the new one.
- Use pre-compiled client: You can refer to the installation method of the corresponding system in this document, download the latest client, and overwrite the old one.
- Manually compile client: You can pull the latest source code and recompile it to overwrite the old version of the client.
:::caution For the file system that has been mounted using the old version of JuiceFS client, you need to unmount file system, and then re-mount it with the new version of JuiceFS client. :::
The JuiceFS client has only one binary file, so it can be easily deleted once you find the location of the program. For example, to uninstall the client that is installed on the Linux system as described above, you only need to execute the following command:
sudo rm /usr/local/bin/juicefs
You can also check where the program is located by using which
command.
which juicefs
The path returned by the command is the location where the JuiceFS client is installed on your system. The uninstallation of the JuiceFS client on other operating systems follows the same way.