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,
.debor 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.
Requirements
Section titled “Requirements”- The app packages are for x86_64 and ARM64 (aarch64) and need GTK 4.10 and libadwaita 1.4 or newer: the
.debtargets 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.
Install
Section titled “Install”APT repository (recommended)
Section titled “APT repository (recommended)”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.
sudo install -d -m 0755 /etc/apt/keyringscurl -fsSL https://freemkv.org/apt/freemkv.gpg | sudo tee /etc/apt/keyrings/freemkv.gpg >/dev/nullecho "deb [signed-by=/etc/apt/keyrings/freemkv.gpg] https://freemkv.org/apt stable main" | sudo tee /etc/apt/sources.list.d/freemkv.listsudo apt update && sudo apt install freemkv # or freemkv-clifreemkvis 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-cliis 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.
RPM repository (Fedora, RHEL, openSUSE)
Section titled “RPM repository (Fedora, RHEL, openSUSE)”On Fedora, RHEL-compatible distributions and openSUSE, add the freemkv repository once; updates then arrive with your normal system updates.
# Fedora, RHEL, AlmaLinux, Rockysudo curl -fsSL -o /etc/yum.repos.d/freemkv.repo https://freemkv.org/rpm/freemkv.reposudo dnf install freemkv # or freemkv-cli
# openSUSEsudo zypper addrepo https://freemkv.org/rpm/freemkv.reposudo zypper install freemkv # or freemkv-clifreemkv(desktop app plus the CLI) needs GTK 4.10+ and libadwaita 1.4+: Fedora 40+ or openSUSE Tumbleweed.freemkv-cliis 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.
Arch Linux (pacman repository)
Section titled “Arch Linux (pacman repository)”Trust the freemkv key once, add the repository to /etc/pacman.conf, then install:
curl -fsSL https://freemkv.org/arch/freemkv.asc | sudo pacman-key --add -sudo pacman-key --lsign-key 3C77286840178C3512276AC49030E403F8320C5Dprintf '\n[freemkv]\nServer = https://freemkv.org/arch/$arch\n' | sudo tee -a /etc/pacman.confsudo pacman -Syu freemkv # or freemkv-clipacman -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.
Snap Store
Section titled “Snap Store”freemkv is on the Snap Store (x86_64), strictly confined:
sudo snap install freemkvsudo snap connect freemkv:optical-drivesudo snap connect freemkv:optical-writeThe 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.
Native .deb package
Section titled “Native .deb package”For x86_64 Ubuntu 24.04 and Linux Mint 22, download freemkv-amd64.deb, then install it from your download directory:
sudo apt install ./freemkv-amd64.debfreemkv --versionOpen 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.
Flatpak from FlatPark
Section titled “Flatpak from FlatPark”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:
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepoflatpak remote-add --if-not-exists flatpark https://dl.flatpark.org/flatpark.flatpakrepoflatpak install flatpark org.freemkv.FreeMKVflatpak run org.freemkv.FreeMKVArguments 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.
Direct Flatpak bundle
Section titled “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:
flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepoDownload freemkv-x86_64-linux.flatpak, then run:
flatpak install --user ./freemkv-x86_64-linux.flatpakflatpak run org.freemkv.FreeMKVThe app also appears in your application menu. To use its CLI:
flatpak run --command=freemkv org.freemkv.FreeMKV --versionThe bundle can access devices and your Videos and Downloads folders. Host device permissions still apply.
Portable AppImage
Section titled “Portable AppImage”For x86_64 Ubuntu 24.04+ or Fedora 40+, download freemkv-x86_64-linux.AppImage:
chmod +x freemkv-x86_64-linux.AppImage./freemkv-x86_64-linux.AppImageKeep the file wherever you prefer. The AppImage bundles GTK4 and libadwaita.
Command line only
Section titled “Command line only”On x86_64 Ubuntu or Linux Mint, install the freemkv-cli package:
sudo apt install ./freemkv-cli-amd64.debfreemkv --versionThe 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:
chmod +x freemkv-cli-x86_64-linux./freemkv-cli-x86_64-linux --versionFor 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.
Verify the download
Section titled “Verify the download”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:
sha256sum freemkv-x86_64-linux.AppImagecat freemkv-x86_64-linux.AppImage.sha256First launch
Section titled “First launch”To start the desktop app:
- For the
.debor Flatpak, open freemkv from your application menu. For the AppImage, run the downloaded file after making it executable. - Open a disc, image or folder and select the titles and tracks.
- Choose an output location and press Rip.
If your system cannot mount an AppImage, try:
./freemkv-x86_64-linux.AppImage --appimage-extract-and-runUpdate or remove
Section titled “Update or remove”| 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.
File locations
Section titled “File locations”| 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:
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.
Drive access
Section titled “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.
freemkv-library
Section titled “freemkv-library”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.
Troubleshooting
Section titled “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.
- 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.
See also
Section titled “See also”- Decryption Keys for key setup
- Troubleshooting for logs and shared fixes
- CLI reference for ripping commands and options
- freemkv-library for automatic ripping