# Updating DRE | DRE

> dre system update, and how each install method updates.

You're reading the docs for DRE 0.4 (v0.4.4). [This page for 0.5](https://getdre.com/docs/updating/) · [New in 0.5](https://getdre.com/docs/new-in-0.5/)

# Updating DRE

`dre system update` checks GitHub Releases and updates DRE the way it was installed. `dre system update --check` only reports whether a newer release exists, and `dre system update <version>` installs that release (to pin one, or to roll back):

-   **install.sh or the release zip**: `dre` downloads the new release, checks it against the release’s `SHA256SUMS`, and replaces its own binary. A failed update leaves the old one as it was. Plugins aren’t touched; `dre plugin update` updates those.
-   **Homebrew or Scoop**: `dre` changes nothing and prints `brew upgrade dre` or `scoop update dre`.
-   **pip, uv or pipx**: `dre` changes nothing and prints the command to run: `<python> -m pip install -U dre-cli`, `uv tool upgrade dre-cli` or `pipx upgrade dre-cli`. If `dre-cli` is pinned in a project’s or a Databricks job’s dependencies, bump the pin there.
-   **cargo**: `dre` changes nothing and prints the `cargo install` command for the new version.
-   **A build of your own** (`cargo build`, `cargo install --path`): `dre` refuses to overwrite it.

While every release is a pre-release, “newest” includes pre-releases. Once there are stable releases, a stable `dre` updates to the newest stable one. Only `dre system update` checks for new versions; no other command calls the network for it. `GITHUB_TOKEN` is sent when set, which avoids GitHub’s anonymous rate limit on shared IPs and CI runners.

## Rehearse an update against a small report

```bash
dre --version
dre system update --check
```

After applying the update command for your install method, validate and preview the complete [tutorial project](https://github.com/get-dre/dre/blob/v0.4.4/examples/tutorial/). For production work, preview your own report with the same target and variables it normally uses. Keep the old binary or dependency pin available until those checks pass. Read the relevant [migration notes](https://getdre.com/docs/v0.4/migrating-to-0.2/) and [0.4 changes](https://getdre.com/docs/v0.4/new-in-0.4/) before crossing a minor version.

A checksum failure means the archive cannot be verified: download it again from the release; do not disable verification. A permission failure replacing an install means that directory needs the install method’s normal permissions. A source build’s refusal to self-update is intentional; rebuild it with [source instructions](https://getdre.com/docs/v0.4/building-from-source/). See [CLI reference](https://getdre.com/docs/v0.4/cli-reference/#dre-system-update), [plugin updates](https://getdre.com/docs/v0.4/managing-plugins/) and [plugin package](https://getdre.com/docs/v0.4/glossary/#plugin-package).

[Previous  
Templates](https://getdre.com/docs/v0.4/templates/)[Next  
YAML reference](https://getdre.com/docs/v0.4/yaml-reference/)
