Skip to content

Linux

freemkv comes in two builds for Linux. Install one or the other; both are the freemkv command and use the same ripping engine. Choose a download from the Download page.

  • freemkv (the app): a native GTK4 desktop app plus every CLI command. APT repository, .deb, Flatpak (FlatPark or a direct bundle) or AppImage.
  • freemkv CLI: the command line only, without GTK. APT repository, .deb or static binaries.

With the app, a bare freemkv opens the window. With no display (for example over SSH, where neither DISPLAY nor WAYLAND_DISPLAY is set) it prints usage instead, like the CLI.

  • The app packages are for x86_64 and ARM64 (aarch64) and need GTK 4.10 and libadwaita 1.4 or newer: the .deb targets Ubuntu 24.04, Linux Mint 22 and Debian 13, the AppImage Ubuntu 24.04+ or Fedora 40+. The Flatpak and Snap are x86_64 and bring their own runtime.
  • The CLI comes as a .deb (amd64, arm64, and armhf for 32-bit Raspberry Pi OS) or as a static binary for x86_64, ARM64 or ARMv7 on any distro, with no GTK dependency.
  • An optical drive. See OEM (stock) drives and Unlocked drives for drive support.

On Debian-based distributions, add the freemkv APT repository once and install with apt. Later releases then arrive with your normal sudo apt update && sudo apt upgrade.

Terminal window
sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://freemkv.org/apt/freemkv.gpg | sudo tee /etc/apt/keyrings/freemkv.gpg >/dev/null
echo "deb [signed-by=/etc/apt/keyrings/freemkv.gpg] https://freemkv.org/apt stable main" | sudo tee /etc/apt/sources.list.d/freemkv.list
sudo apt update && sudo apt install freemkv # or freemkv-cli
  • freemkv is the desktop app plus the CLI. It needs GTK 4.10+, so Ubuntu 24.04+, Linux Mint 22+ or Debian 13+; on older releases use the Flatpak or Snap below.
  • freemkv-cli is the command line only and works on any Debian or Ubuntu release.

The two packages replace each other, so install one or the other. The repository is signed (key fingerprint 3C77 2868 4017 8C35 1227 6AC4 9030 E403 F832 0C5D, also at freemkv.asc); the packages themselves download from GitHub Releases.

On Fedora, RHEL-compatible distributions and openSUSE, add the freemkv repository once; updates then arrive with your normal system updates.

Terminal window
# Fedora, RHEL, AlmaLinux, Rocky
sudo curl -fsSL -o /etc/yum.repos.d/freemkv.repo https://freemkv.org/rpm/freemkv.repo
sudo dnf install freemkv # or freemkv-cli
# openSUSE
sudo zypper addrepo https://freemkv.org/rpm/freemkv.repo
sudo zypper install freemkv # or freemkv-cli
  • freemkv (desktop app plus the CLI) needs GTK 4.10+ and libadwaita 1.4+: Fedora 40+ or openSUSE Tumbleweed.
  • freemkv-cli is the command line only and installs on any of them, including RHEL/AlmaLinux/Rocky 9.

The two packages conflict; to switch, use sudo dnf swap freemkv-cli freemkv (or the reverse). Packages and repository metadata are signed with the same key as the APT repository.

Trust the freemkv key once, add the repository to /etc/pacman.conf, then install:

Terminal window
curl -fsSL https://freemkv.org/arch/freemkv.asc | sudo pacman-key --add -
sudo pacman-key --lsign-key 3C77286840178C3512276AC49030E403F8320C5D
printf '\n[freemkv]\nServer = https://freemkv.org/arch/$arch\n' | sudo tee -a /etc/pacman.conf
sudo pacman -Syu freemkv # or freemkv-cli

pacman -Syu then keeps freemkv up to date. freemkv is the desktop app plus the CLI; freemkv-cli the command line only (they conflict; pacman offers to swap).

The app packages include both the desktop app and the CLI.

freemkv is on the Snap Store (x86_64), strictly confined:

Terminal window
sudo snap install freemkv
sudo snap connect freemkv:optical-drive
sudo snap connect freemkv:optical-write

The two connect lines give the snap access to the optical drive (read, and write for tray and drive commands); they are needed until the Snap Store grants automatic connection. Updates arrive through snap refresh.

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

Terminal window
sudo apt install ./freemkv-amd64.deb
freemkv --version

Open freemkv from your application menu, or run freemkv. 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.

FlatPark packages the official .deb from each GitHub release as an x86_64 Flatpak, so flatpak update picks up new freemkv releases. Add the FlatPark remote once (and Flathub, which supplies the GNOME runtime), then install:

Terminal window
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
flatpak remote-add --if-not-exists flatpark https://dl.flatpark.org/flatpark.flatpakrepo
flatpak install flatpark org.freemkv.FreeMKV
flatpak run org.freemkv.FreeMKV

Arguments after the app ID go to the CLI, for example flatpak run org.freemkv.FreeMKV info disc://. The app can access devices, the network (for key downloads), and your Videos and Downloads folders; to rip elsewhere in your home folder, run flatpak override --user --filesystem=home org.freemkv.FreeMKV. For problems specific to the FlatPark package, open an issue on FlatPark.

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:

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

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

Terminal window
flatpak install --user ./freemkv-x86_64-linux.flatpak
flatpak run org.freemkv.FreeMKV

The app also appears in your application menu. To use its CLI:

Terminal window
flatpak run --command=freemkv org.freemkv.FreeMKV --version

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

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

Terminal window
chmod +x freemkv-x86_64-linux.AppImage
./freemkv-x86_64-linux.AppImage

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

On x86_64 Ubuntu or Linux Mint, install the freemkv-cli package:

Terminal window
sudo apt install ./freemkv-cli-amd64.deb
freemkv --version

The freemkv and freemkv-cli packages both install /usr/bin/freemkv and replace each other, so installing one removes the other.

On any distro, download the static binary matching your CPU. For x86_64:

Terminal window
chmod +x freemkv-cli-x86_64-linux
./freemkv-cli-x86_64-linux --version

For ARM64, use freemkv-cli-aarch64-linux; for 32-bit Raspberry Pi OS (ARMv7), freemkv-cli-armv7-linux. These have no desktop interface; a bare freemkv prints usage. See the CLI reference for ripping commands and options.

Every package and binary on GitHub Releases has a matching .sha256 file. Compare the hash of your download with the line for the same file name:

Terminal window
sha256sum freemkv-x86_64-linux.AppImage
cat freemkv-x86_64-linux.AppImage.sha256

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:

Terminal window
./freemkv-x86_64-linux.AppImage --appimage-extract-and-run
Installation Update Remove
APT repository sudo apt update && sudo apt upgrade sudo apt remove freemkv (or freemkv-cli); to drop the repository too, delete /etc/apt/sources.list.d/freemkv.list and /etc/apt/keyrings/freemkv.gpg
.deb file Download the new package and repeat sudo apt install ./freemkv-amd64.deb (or ./freemkv-cli-amd64.deb) sudo apt remove freemkv (or freemkv-cli)
FlatPark flatpak update flatpak uninstall org.freemkv.FreeMKV
Flatpak bundle Download the new bundle and repeat flatpak install --user ./freemkv-x86_64-linux.flatpak flatpak uninstall --user org.freemkv.FreeMKV
AppImage or standalone CLI Close freemkv and replace the downloaded file Delete the downloaded file

A .deb installed from a downloaded file does not update itself; add the APT repository to get updates through apt upgrade. Direct Flatpak bundles (unlike FlatPark) 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.

What Location
Desktop settings $XDG_DATA_HOME/freemkv/gui-settings.json, normally ~/.local/share/freemkv/gui-settings.json; for either 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
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:

Terminal window
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 a .deb.

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.

For automatic ripping through a browser, use the freemkv-library Docker image. See freemkv-library 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.

  • 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.
  • No drive is available: check the connection, close other disc software and review Drive access. For Docker, also check the device configuration.
  • A movie is missing: check the output location selected for that rip.