How To Install .deb Packages on Fedora (and Other Distros)

Have you ever needed to convert a deb package to rpm or other format? What about convert a package to deb? This article has some tips on how to convert packages between Linux distros.

Convert Packages btween distros

Alien allows you to convert packages between different Linux package formats. Here's the video if you prefer videos:

The Problem

You found a package you want to install. It's not in your repository nor is it available as a flatpak, snap, etc.

In my situation, I'm on Nobara and want to install a package that is only  available as a .deb package.

I found two different ways to do this. The first is using an application named Alien, the second is using a tool called dpkg.

About Alien

To solve this, we will install a package called Alien and convert the package using that.

Installing Alien

Fedora and Norbara, Ubuntu based distros all seem to have Alien in the base repos. Arch, you'll need to use the AUR.

#Install on Fedora or Nobara
sudo dnf install alien

#Install on Ubuntu based distros
sudo apt install alien

#Install via the AUR in Arch, depending on your AUR helper
yay -S alien
paru -S alien

Converting packages with Alien

There are several flags that can be used while converting a package. They are:

-d or --to-deb
Make debian packages. This is the default.

-r or --to-rpm
Make rpm packages.

-t or --to-tgz
Make tgz packages.

Make slp packages.

-p or --to-pkg
Make Solaris pkg packages.

-i or --install
Automatically install each generated package, and remove the package file after it has been installed.

The basic command is:

alien [options] filename

So in my case, I'll be running:

alien -r mixing-station-pc_1.8.1-1_amd64.deb

Alternately, you could run the command below to install the rpm after conversion

sudo alien -r -i mixing-station-pc.1.8.1-1_amd64.deb

Since I didn't use the -i flag I then ran this command to install the newly created rpm file:

sudo rpm -i mixing-station-pc-1.8.1-2.x86_64.rpm

You can also simply run sudo [package manager] [package name] in most cases a well. Ex. If I was installing on a distro with apt, sudo apt install [package name]

The confusing part

It was not really obvious where this file installed so while looking for it, I found an alternate method to extract a .deb package. With this method, you could then put the extracted bin file in your /apps folder or whatever directory you like.

Ultimately though, my install showed up in /opt/mixing-station/bin and I was able to run the application from there.

Extracting a .deb with dpkg

First, you need to install dpkg. I checked for this by running:

sudo dnf install dpkg

This revealed that dpkg was already installed for me. You will need to check your distro's packages to see if it's available in the repositories for your distro.

I then ran the following commands.

#cd to the directory with the .deb file
#in my case
cd ~/Downloads

#make a directory to extract the .deb to
#in my case
mkdir mixing-dir

#finally run the command below, format is:
#dpkg-deb -xv deb-file extraction-folder
#for me, it was this:
dpkg-deb -xv mixing-station-pc_1.8.1-1_amd64.deb mixing-dirre

Creating a .desktop File

If you need to create a .desktop file for your new app. You can do so by adding application-name.desktop to the following directory:


A template for the .desktop file is below. You may be able to remove Terminal=False

[Desktop Entry]
Name=Application Name
Comment=Application Comment

If the .desktop file is saved in the folder above, it should just  appear in your application menu, though if not, a reboot or reloading of your desktop environment isn't a bad idea.

Alternately, you could also add the directory to your path depending on use case and requirements. This would allow you to run the app from your terminal. Another alternative would be to create an alias that would enter the full path for you easily. This could be added to your .bashrc, etc.

Wrapping up

Obviously, this is not the best option in most situations, now it's much more common to be able to install a flatpak or another universal package type or add an external repository. But there are some situations where this is a great option.

Questions? Feel free to comment below or in the Youtube video's comments.