# How to Reinstall a MongoDB Version from Scratch Using m

> Easily reinstall MongoDB from scratch using m command. Learn how to remove old versions and perform a fresh install with m reinstall <version> for a clean MongoDB environment.

- Repository: [Aaron Heckmann/m](https://github.com/aheckmann/m)
- Tags: how-to-guide
- Published: 2026-02-23

---

**To reinstall a MongoDB version from scratch using m, run `m reinstall <version>` which removes existing binaries and performs a fresh download and installation.**

The `m` tool is a Bash-based version manager for MongoDB maintained in the [aheckmann/m](https://github.com/aheckmann/m) repository. When you need to reinstall a MongoDB version from scratch using m—whether to fix a corrupted installation or ensure a clean binary state—the `reinstall` command automates the entire workflow.

## How the Reinstall Process Works in m

The reinstall workflow is implemented in the main `bin/m` script and orchestrates two core functions to ensure a complete wipe and fresh setup.

### Step 1: Removing Existing Binaries (`remove_versions`)

First, the script calls `remove_versions` (defined at lines 44-71 in `bin/m`) to delete the existing installation directory.

- **Target directory**: `$HOME/.local/m/versions/<version>` is recursively removed.
- **Active version protection**: If the version you are reinstalling is currently active (symlinked in your `$PATH`), the script detects this and handles it gracefully. When invoked via `reinstall`, the command sets `CONFIRM=0` to bypass interactive prompts and proceed with the removal.

### Step 2: Fresh Installation (`install_mongo`)

Immediately after removal, the script invokes `install_mongo` (lines 901-914 in `bin/m`) to perform a clean installation:

1. **URL resolution**: Determines the correct MongoDB distribution tarball for your platform (Linux x86_64, macOS, ARM64, etc.).
2. **Download and extraction**: Fetches the archive and extracts it into `$HOME/.local/m/versions/<version>`.
3. **Binary activation**: Symlinks the `mongod`, `mongo`, and other utility binaries into `$M_BIN_DIR` (typically `$HOME/.local/bin`).

The `reinstall` command itself is a thin wrapper (lines 1918-1921 in `bin/m`) that simply chains these two operations with confirmation disabled.

## Reinstalling a Specific MongoDB Version

To reinstall a MongoDB version from scratch, pass the version string to the `reinstall` command:

```bash
m reinstall 7.0.14

```

**What happens under the hood:**

- `remove_versions 7.0.14` deletes `$HOME/.local/m/versions/7.0.14` if it exists.
- `install_mongo 7.0.14` downloads the official MongoDB 7.0.14 tarball for your architecture, extracts it, and activates the binaries.

For older versions requiring the generic Linux build without SSL support, append the `--legacy` flag:

```bash
m reinstall 6.0.13 --legacy

```

## Why Reinstall MongoDB with m?

Using `m reinstall` provides specific advantages over manual deletion and reinstallation:

- **Guaranteed clean state**: Completely removes potentially corrupted or partially extracted binaries before installing fresh copies.
- **Official binary verification**: Ensures you receive the exact distribution matching the official MongoDB release for your platform (Linux, macOS, ARM, etc.).
- **Non-interactive automation**: The reinstall command bypasses confirmation prompts, making it ideal for scripts and CI/CD pipelines.
- **Active version handling**: Safely manages the transition when reinstalling the version currently active in your shell.

## Summary

- The `m reinstall <version>` command in [aheckmann/m](https://github.com/aheckmann/m) provides a complete MongoDB version reinstallation workflow.
- It sequentially executes `remove_versions` (lines 44-71 in `bin/m`) to delete existing binaries and `install_mongo` (lines 901-914) to download and activate fresh copies.
- The process handles platform-specific tarball selection automatically and bypasses interactive prompts when invoked via `reinstall`.
- Use the `--legacy` flag when reinstalling older MongoDB versions that require the generic Linux build without SSL.

## Frequently Asked Questions

### What is the m version manager for MongoDB?

`m` is a Bash-based version management tool for MongoDB, maintained in the [aheckmann/m](https://github.com/aheckmann/m) repository. It allows you to install, switch between, and manage multiple MongoDB versions on a single machine by handling downloads, extractions, and symlinking of binaries into your `$PATH`.

### Where does m store MongoDB binaries?

`m` stores downloaded MongoDB versions in `$HOME/.local/m/versions/<version>`. The active version's binaries (such as `mongod` and `mongosh`) are symlinked into `$M_BIN_DIR`, which defaults to `$HOME/.local/bin`. This architecture keeps each version isolated while making the active one accessible system-wide.

### Can I reinstall the currently active MongoDB version?

Yes, you can reinstall the currently active MongoDB version. When you run `m reinstall <version>` on the active version, the `remove_versions` function detects that it is currently symlinked in your `$PATH`. Because the reinstall command sets `CONFIRM=0`, it proceeds with the removal and immediately triggers `install_mongo` to download and activate a fresh copy, effectively replacing the active installation without manual intervention.

### How do I reinstall a MongoDB version without SSL support?

To reinstall a MongoDB version using the generic Linux build without SSL support, append the `--legacy` flag to your reinstall command. For example: `m reinstall 6.0.13 --legacy`. This flag instructs `m` to select the legacy tarball distribution that lacks SSL encryption, which is necessary for certain older MongoDB versions or specific Linux distributions with incompatible OpenSSL libraries.