Project: /_project.yaml
Book: /_book.yaml

# Installing Bazel

This page describes the various platforms supported by Bazel and links
to the packages for more details.

[Bazelisk](/install/bazelisk) is the recommended way to install Bazel on [Ubuntu Linux](/install/ubuntu), [macOS](/install/os-x), and [Windows](/install/windows).

## Community-supported packages {:#community-supported-packages}

Bazel community members maintain these packages. The Bazel team doesn't
officially support them. Contact the package maintainers for support.

*   [Arch Linux](https://www.archlinux.org/packages/community/x86_64/bazel/){: .external}
*   [Fedora 25, 26, 27, 28, and CentOS 7](/install/redhat)
*   [CentOS 6](https://github.com/sub-mod/bazel-builds){: .external}
*   [FreeBSD](https://www.freshports.org/devel/bazel){: .external}
*   [Gentoo](https://packages.gentoo.org/packages/dev-util/bazel){: .external}
*   [Linuxbrew](https://github.com/Linuxbrew/homebrew-core/blob/master/Formula/bazel.rb){: .external}
*   [Nixpkgs](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/tools/build-managers/bazel){: .external}
*   [openSUSE](/install/suse)
*   [Parabola](https://www.parabola.nu/packages/?q=bazel){: .external}
*   [Scoop](https://github.com/scoopinstaller/scoop-main/blob/master/bucket/bazel.json){: .external}
*   [Raspberry Pi](https://github.com/koenvervloesem/bazel-on-arm/blob/master/README.md){: .external}

## Community-supported architectures {:#community-supported-architectures}

*   [ppc64el](https://oplab9.parqtec.unicamp.br/pub/ppc64el/bazel){: .external}

For other platforms, you can try to [compile from source](/install/compile-source).
