diff options
Diffstat (limited to 'docs/installation.md')
-rw-r--r-- | docs/installation.md | 134 |
1 files changed, 109 insertions, 25 deletions
diff --git a/docs/installation.md b/docs/installation.md index ad6e31c8f..6aa51737a 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -1,15 +1,20 @@ Bun ships as a single executable that can be installed a few different ways. -## macOS and Linux +## Installing + +### macOS and Linux {% callout %} -**Linux users** — The `unzip` package is required to install Bun. Kernel version 5.6 or higher is strongly recommended, but the minimum is 5.1. +**Linux users** — The `unzip` package is required to install Bun. Use `sudo apt install unzip` to install `unzip` package. +Kernel version 5.6 or higher is strongly recommended, but the minimum is 5.1. Use `uname -r` to check Kernel version. {% /callout %} {% codetabs %} ```bash#macOS/Linux_(curl) $ curl -fsSL https://bun.sh/install | bash # for macOS, Linux, and WSL +# to install a specific version +$ curl -fsSL https://bun.sh/install | bash -s "bun-v1.0.0" ``` ```bash#NPM @@ -32,7 +37,7 @@ $ proto install bun {% /codetabs %} -## Windows +### Windows Bun provides a _limited, experimental_ native build for Windows. At the moment, only the Bun runtime is supported. @@ -46,6 +51,77 @@ The test runner, package manager, and bundler are still under development. The f - `bun link/unlink` - `bun build` +## Docker + +Bun provides a [Docker image](https://hub.docker.com/r/oven/bun/tags) that supports both Linux x64 and arm64. + +```bash +$ docker pull oven/bun +$ docker run --rm --init --ulimit memlock=-1:-1 oven/bun +``` + +There are also image variants for different operating systems. + +```bash +$ docker pull oven/bun:debian +$ docker pull oven/bun:slim +$ docker pull oven/bun:alpine +$ docker pull oven/bun:distroless +``` + +## Checking installation + +To check that Bun was installed successfully, open a new terminal window and run `bun --version`. + +```sh +$ bun --version +1.x.y +``` + +To see the precise commit of [oven-sh/bun](https://github.com/oven-sh/bun) that you're using, run `bun --revision`. + +```sh +$ bun --revision +1.x.y+b7982ac1318937560f38e0f8eb18f45eaa43480f +``` + +If you've installed Bun but are seeing a `command not found` error, you may have to manually add the installation directory (`~/.bun/bin`) to your `PATH`. + +{% details summary="How to add to your `PATH`" %} +First, determine what shell you're using: + +```sh +$ echo $SHELL +/bin/zsh # or /bin/bash or /bin/fish +``` + +Then add these lines below to bottom of your shell's configuration file. + +{% codetabs %} + +```bash#~/.zshrc +# add to ~/.zshrc +export BUN_INSTALL="$HOME/.bun" +export PATH="$BUN_INSTALL/bin:$PATH" +``` + +```bash#~/.bashrc +# add to ~/.bashrc +export BUN_INSTALL="$HOME/.bun" +export PATH="$BUN_INSTALL/bin:$PATH" +``` + +```sh#~/.config/fish/config.fish +# add to ~/.config/fish/config.fish +export BUN_INSTALL="$HOME/.bun" +export PATH="$BUN_INSTALL/bin:$PATH" +``` + +{% /codetabs %} +Save the file. You'll need to open a new shell/terminal window for the changes to take effect. + +{% /details %} + ## Upgrading Once installed, the binary can upgrade itself. @@ -68,6 +144,10 @@ $ bun upgrade --canary [View canary build](https://github.com/oven-sh/bun/releases/tag/canary) +{% callout %} +**Note** — To switch back to a stable release from canary, run `bun upgrade` again with no flags. +{% /callout %} + <!-- ## Native @@ -113,29 +193,9 @@ $ docker run --rm --init --ulimit memlock=-1:-1 oven/bun:edge this is some output ``` --> -## TypeScript +<!-- ## Completions -To install TypeScript definitions for Bun's built-in APIs in your project, install `bun-types`. - -```sh -$ bun add -d bun-types # dev dependency -``` - -Then include `"bun-types"` in the `compilerOptions.types` in your `tsconfig.json`: - -```json-diff - { - "compilerOptions": { -+ "types": ["bun-types"] - } - } -``` - -Refer to [Ecosystem > TypeScript](/docs/runtime/typescript) for a complete guide to TypeScript support in Bun. - -## Completions - -Shell auto-completion should be configured automatically when Bun is installed. +Shell auto-completion should be configured automatically when Bun is installed! If not, run the following command. It uses `$SHELL` to determine which shell you're using and writes a completion file to the appropriate place on disk. It's automatically re-run on every `bun upgrade`. @@ -148,4 +208,28 @@ To write the completions to a custom location: ```bash $ bun completions > path-to-file # write to file $ bun completions /path/to/directory # write into directory +``` --> + +## Uninstall + +If you need to remove Bun from your system, use the following commands. + +{% codetabs %} + +```bash#macOS/Linux_(curl) +$ rm -rf ~/.bun # for macOS, Linux, and WSL +``` + +```bash#NPM +$ npm uninstall -g bun ``` + +```bash#Homebrew +$ brew uninstall bun +``` + +```bash#Proto +$ proto uninstall bun +``` + +{% /codetabs %} |