Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ dvm rm <name> [--force]

Docs:

- [Install](docs/install.md)
- [Dependencies](docs/dependencies.md)
- [Config](docs/config.md)
- [Create VMs](docs/create.md)
Expand Down
1 change: 1 addition & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# Docs

- [Install](install.md)
- [Dependencies](dependencies.md)
- [Config](config.md)
- [Create VMs](create.md)
Expand Down
82 changes: 82 additions & 0 deletions docs/install.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
# Install

Install DVM by cloning the repository and running `install.sh`. The installer creates a
symlink to `bin/dvm`, so the checkout remains the DVM core.

## Requirements

```bash
brew install lima
```

Make sure the install prefix is on your `PATH`:

```bash
mkdir -p "$HOME/.local/bin"
```

## Stable Install

Use a signed release tag when installing for regular use:

```bash
git clone https://github.com/eshlox/dvm.git "$HOME/.local/share/dvm-core"
cd "$HOME/.local/share/dvm-core"
git fetch --tags --force
git tag -v vX.Y.Z
git checkout --detach vX.Y.Z
./install.sh --init
```

If tag verification fails, do not install that version.

## Development Install

Use `main` only for development or testing:

```bash
git clone https://github.com/eshlox/dvm.git "$HOME/.local/share/dvm-core"
cd "$HOME/.local/share/dvm-core"
./install.sh --init
```

This creates:

```text
~/.local/bin/dvm -> ~/.local/share/dvm-core/bin/dvm
```

## Custom Name Or Prefix

```bash
./install.sh --name dvm-dev --prefix "$HOME/bin" --init
```

## Verify

```bash
dvm help
dvm init
```

## Update DVM

For a signed release:

```bash
cd "$HOME/.local/share/dvm-core"
git fetch --tags --force
git tag -v vX.Y.Z
git checkout --detach vX.Y.Z
./install.sh
```

For a development checkout:

```bash
cd "$HOME/.local/share/dvm-core"
git pull --ff-only
./install.sh
```

DVM intentionally does not support remote install commands like `curl | sh`.