# Linux

> Install and update freemkv on Linux, find your settings and output, and troubleshoot optical-drive access.

Source: https://freemkv.org/docs/platforms-linux/

freemkv provides a native GTK4 desktop app and a command-line interface on Linux. Both use the same ripping engine. Choose a package from the **[Download page](https://freemkv.org/download/)**.

![The freemkv desktop app on Ubuntu with GNOME — the start screen with Open disc and Open file or ISO buttons above an empty log pane (Ubuntu 26.04 · GNOME (Wayland))](https://freemkv.org/freemkv-gui-ubuntu.png)

## Requirements

- The desktop packages are **x86_64** only and need GTK 4.10 and libadwaita 1.4 or newer: the `.deb` targets Ubuntu 24.04 and Linux Mint 22, the AppImage Ubuntu 24.04+ or Fedora 40+, and the Flatpak brings its own GNOME runtime.
- The standalone CLI is a static binary for **x86_64** or **ARM64** with no GTK dependency.
- An optical drive. See [OEM (stock) drives](https://freemkv.org/docs/drives-oem/) and [Unlocked drives](https://freemkv.org/docs/drives-unlocked/) for drive support.

## Install

### Desktop app

The desktop packages include both the desktop app and the CLI. Snap Store and Flathub listings are not currently available; the downloads below work independently of those submissions.

#### Native .deb package

For **x86_64 Ubuntu 24.04 and Linux Mint 22**, download `freemkv-amd64.deb`, then install it from your download directory:

```bash
sudo apt install ./freemkv-amd64.deb
freemkv --version
```

APT installs the required desktop libraries. This package uses normal host drive permissions and has no application sandbox. Compatibility with other Debian-based distributions has not been validated.

#### Direct Flatpak bundle

The **x86_64** Flatpak is available directly from GitHub Releases. Install Flatpak using your distribution's package manager, then add Flathub for the GNOME runtime:

```bash
flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
```

Download `freemkv-x86_64.flatpak`, then run:

```bash
flatpak install --user ./freemkv-x86_64.flatpak
flatpak run org.freemkv.FreeMKV
```

The bundle can access devices and your Videos and Downloads folders. Host device permissions still apply.

#### Portable AppImage

For **x86_64 Ubuntu 24.04+ or Fedora 40+**, download `freemkv-x86_64-linux.AppImage`:

```bash
chmod +x freemkv-x86_64-linux.AppImage
./freemkv-x86_64-linux.AppImage
```

Keep the file wherever you prefer. The AppImage bundles GTK4 and libadwaita.

### Command line

Download the standalone binary matching your CPU. For x86_64:

```bash
chmod +x freemkv-x86_64-linux
./freemkv-x86_64-linux --version
```

For ARM64, use `freemkv-aarch64-linux` instead. These static binaries have no desktop interface. With the `.deb` installed, `freemkv` is already on your `PATH`; for the Flatpak, use:

```bash
flatpak run --command=freemkv org.freemkv.FreeMKV --version
```

Running `freemkv gui` from a desktop package opens the desktop interface. See the [CLI reference](https://freemkv.org/docs/cli/) for ripping commands and options.

### Verify the download

The AppImage and the standalone binaries on [GitHub Releases](https://github.com/freemkv/freemkv/releases) each have a matching `.sha256` file; the `.deb` and Flatpak bundle do not. Compare the hash of your download with the line for the same file name:

```bash
sha256sum freemkv-x86_64-linux.AppImage
cat freemkv-x86_64-linux.AppImage.sha256
```

## First launch

To start the desktop app:

1. For the `.deb` or Flatpak, open **freemkv** from your application menu. For the AppImage, run the downloaded file after making it executable.
2. Open a disc, image or folder and select the titles and tracks.
3. Choose an output location and press **Rip**.

If your system cannot mount an AppImage, try:

```bash
./freemkv-x86_64-linux.AppImage --appimage-extract-and-run
```

## Update or remove

| Installation | Update | Remove |
|---|---|---|
| `.deb` | Download the new package and repeat `sudo apt install ./freemkv-amd64.deb` | `sudo apt remove freemkv` |
| Flatpak bundle | Download the new bundle and repeat `flatpak install --user ./freemkv-x86_64.flatpak` | `flatpak uninstall --user org.freemkv.FreeMKV` |
| AppImage or standalone CLI | Close freemkv and replace the downloaded file | Delete the downloaded file |

There is no freemkv APT repository yet. Direct Flatpak bundles also require manual app updates; `flatpak update` updates installed runtimes but does not fetch new freemkv bundles from GitHub. Settings and ripped movies are separate from program files, so updating or removing freemkv leaves them in place.

## File locations

| What | Location |
|---|---|
| Desktop settings | `$XDG_DATA_HOME/freemkv/gui-settings.json`, normally `~/.local/share/freemkv/gui-settings.json`; for the Flatpak, `~/.var/app/org.freemkv.FreeMKV/data/freemkv/gui-settings.json` |
| Desktop diagnostic log | `log.txt` in the same folder, written only when the app's log level is **Verbose** or debug messages are on |
| Finished movies | The output location you choose before ripping; the desktop app suggests your XDG Videos folder |
| AACS keys | See [Decryption Keys](https://freemkv.org/docs/decryption-keys/) |
| CLI diagnostic log | Off by default; `--log-level 3` writes `log.txt` in the current folder |

To capture a CLI log at a specific path:

```bash
freemkv info disc:// --log-level 3 --log-file "$HOME/freemkv-log.txt"
```

Use the path to your downloaded binary, or the Flatpak CLI command above, if you did not install the `.deb`.

## Drive access

Both interfaces use **SCSI generic** devices at `/dev/sg*`. Installing a package does not grant host device permissions. If access is denied, check the device owner, group and session ACLs. On systems where the drive belongs to `cdrom`, membership in that group may be required; sign out and back in after changing groups.

Close other software using the disc and check the drive connection before retrying.

## autorip

For automatic ripping through a browser, use autorip's Linux binary or Docker image. See [autorip Service](https://freemkv.org/docs/autorip/) for setup, data locations and a Compose example.

The Docker configuration needs access to the optical devices. The supplied example uses `privileged: true` and a `/dev:/dev` bind mount; keep its persistent configuration and output mounts when updating the container.

## Troubleshooting

- **Permission denied when opening the program:** make the standalone binary or AppImage executable with `chmod +x`.
- **AppImage cannot mount:** try the extraction command under [First launch](#first-launch).
- **No drive is available:** check the connection, close other disc software and review [Drive access](#drive-access). For Docker, also check the device configuration.
- **A movie is missing:** check the output location selected for that rip.

## See also

- [Decryption Keys](https://freemkv.org/docs/decryption-keys/) for key setup
- [Troubleshooting](https://freemkv.org/docs/troubleshooting/) for logs and shared fixes
- [CLI reference](https://freemkv.org/docs/cli/) for ripping commands and options
- [autorip Service](https://freemkv.org/docs/autorip/) for automatic ripping
