If you need to install software distributed only as an RPM package on Debian, Alien provides a practical workaround. RPM (Red Hat Package Manager) is the package format used by Fedora, CentOS, and RHEL, similar to how Windows uses .exe or .msi installers. However, Debian uses DEB packages instead, so RPM files cannot install directly. Alien bridges this gap by converting RPM packages into DEB format, allowing installation on Debian systems. Common use cases include installing vendor-specific tools not packaged for Debian, testing software across distributions, and accessing niche applications only available as RPMs. By the end of this guide, you will have Alien installed on Debian, understand how to convert RPM packages to DEB format, and know the limitations and best practices for this approach.
Before converting an RPM package, always search Debian’s repositories first using
apt search package-name. Native DEB packages receive security updates automatically and integrate properly with your system. Only use Alien when no native package exists.
Install Alien on Debian
First, open a terminal by pressing the Super key and searching for “Terminal” in Activities. Since Debian does not include Alien by default, you need to install it from the official repositories.
Update Debian Before Installation
Before installing new software, update your package lists and upgrade installed packages to prevent conflicts. The sudo command runs these operations with administrator privileges, which system-wide changes require:
sudo apt update && sudo apt upgrade
Install the Alien Package
Alien is available in Debian’s default repositories, so installation is straightforward:
sudo apt install alien -y
During installation, APT automatically pulls in Alien’s dependencies, including the rpm package for reading RPM files and debhelper for building DEB packages.
Verify Alien Installation
Next, confirm the installation by checking Alien’s version:
alien --version
Expected output on Debian 13:
alien version 8.95.8
Note that version numbers vary by Debian release (8.95.6 on Debian 12, 8.95.4 on Debian 11). Regardless of the specific version, any output confirms successful installation.
Convert and Install RPM Packages
Now that Alien is installed, this section covers converting RPM packages to DEB format. The process involves three steps: obtaining the RPM, converting it with Alien, and finally installing the resulting DEB package.
Obtain the RPM Package
Start by downloading the RPM file from the software vendor’s official website or a trusted repository. Make sure to match the architecture to your system—most modern systems use 64-bit (x86_64 or amd64) packages. To verify your architecture, run:
dpkg --print-architecture
amd64
Convert RPM to DEB Format
Once downloaded, navigate to the directory containing your RPM package:
cd ~/Downloads
Then, convert the RPM package to DEB format using Alien. Replace your-package.rpm with the actual filename:
sudo alien -d your-package.rpm
Here, the -d flag explicitly specifies DEB output format (this is the default, but being explicit improves clarity). After conversion, Alien creates a new .deb file in the current directory with a modified version number.
By default, Alien does not include scripts from the original RPM package. If the software requires pre/post-installation scripts to function correctly, add the
-cflag:sudo alien -d -c your-package.rpm. However, be cautious with this option as RPM scripts may contain commands incompatible with Debian.
Install the Converted DEB Package
Finally, install the converted DEB package using APT. This method automatically resolves dependencies from Debian’s repositories. Replace your-package.deb with the generated filename:
sudo apt install ./your-package.deb
The
./prefix is required so APT recognizes the local file. Without it, APT searches the repositories instead of installing your local package.
Resolve Broken Package States
If installation fails or leaves your system in an inconsistent state, run:
sudo apt --fix-broken install
This command attempts to download missing dependencies and complete any interrupted installations. If it cannot resolve the issue, remove the problematic package to restore your system:
sudo apt remove package-name
Verify the Installation
After installation, confirm the package installed correctly by querying dpkg. Replace package-name with the software’s package name:
dpkg -l | grep package-name
Expected output format:
ii package-name 1.0.0 amd64 Package description
In this output, the ii status indicates that dpkg installed the package correctly. At this point, run the software to confirm it functions as expected.
Alien Conversion Limitations
Before relying on Alien for production use, understanding its limitations helps avoid common problems with converted packages:
- No automatic updates — APT does not track converted packages for updates. You must manually download and convert new RPM versions.
- Dependency mismatches — RPM packages may depend on libraries named differently or versioned differently on Debian. Some conversions fail to run despite installing successfully.
- Script incompatibilities — Installation scripts targeting RPM-based systems may reference paths, commands, or services that don’t exist on Debian.
- Architecture issues — Converting packages that target specific architectures or contain hardcoded paths may cause runtime failures.
Given these constraints, for production systems consider alternatives like Flatpak on Debian or Snap packages on Debian for cross-distribution software. You can also check whether the vendor provides native DEB packages or a third-party repository for Debian.
Troubleshooting Common Issues
Conversion Fails with “Unknown file type”
When Alien reports an unknown file type, the RPM file may be corrupted or incomplete. Verify the file type with:
file your-package.rpm
For a valid RPM, you should see:
your-package.rpm: RPM v3.0 bin i386/x86_64 your-package-1.0.0
However, when the download failed or was corrupted, you may instead see:
your-package.rpm: HTML document, ASCII text
This output indicates you downloaded an error page instead of the actual file. To resolve this, re-download the RPM from the vendor’s website.
Package Installs but Software Won’t Run
First, check for missing shared libraries:
ldd /path/to/binary | grep "not found"
Example output showing missing libraries:
libexample.so.1 => not found libfoo.so.2 => not found
For each missing library, search for Debian equivalents:
apt search libexample
Then install the matching Debian packages:
sudo apt install libexample1
After installing the libraries, verify no dependencies remain missing:
ldd /path/to/binary | grep "not found"
When no output appears, all dependencies are satisfied. Test the software to confirm it runs correctly. If some libraries have no Debian equivalent, the converted package may not be usable on your system.
Dependency Errors During Installation
Sometimes apt --fix-broken install cannot resolve dependencies because the RPM package requires libraries not available on Debian. Check the error messages for specific package names:
dpkg: dependency problems prevent configuration of package-name: package-name depends on libexample; however: Package libexample is not installed.
Search for the library or a Debian alternative:
apt search libexample
If a matching package exists, install it and retry the original installation. If Debian lacks the required library, abort the broken installation to restore your system:
sudo apt remove package-name
Verify your package database is clean:
sudo apt --fix-broken install
When this command reports “0 upgraded, 0 newly installed,” your system is in a consistent state.
Remove Alien and Converted Packages
Removing a package with
apt removedeletes the program files but may leave configuration and user data in~/.config/,~/.local/share/, or~/.cache/. Check these directories manually if you want a complete cleanup. Export any important data (bookmarks, settings) before removal.
Remove a Converted Package
You can remove packages that you installed via Alien the same way you remove any DEB package:
sudo apt remove package-name
Alternatively, to also remove configuration files:
sudo apt purge package-name
Remove Alien
When you no longer need to convert RPM packages, you can remove Alien itself:
sudo apt remove alien
Afterward, clean up any dependencies that your system no longer needs:
sudo apt autoremove
Conclusion
You now have Alien configured on Debian and understand how to convert RPM packages to DEB format, install them with APT, and resolve dependency issues. For ongoing software needs, prefer native DEB packages from Debian’s contrib and non-free repositories or cross-platform solutions like Flatpak and Snap over repeated RPM conversions.