How do I install and manage RPMs?

I have a burning desire to install RPMs onto my Ubuntu installation - is this possible? Can I use Yum - or another RPM Package Management tool?


Solution 1:

Can I use Yum

I wouldn't recommend it. You probably could compile it but you wouldn't have any Ubuntu-compatible package repositories for it to handle.

You can convert single RPM files into DEBs with Alien:

sudo apt-get install alien
sudo alien my_package.rpm
sudo dpkg -i my_package.deb

Note: It might change the filename a little more than just the extension.

This won't work for everything as packages link to other packages to fulfil dependencies. Obviously Red Hat/Fedora/CentOS use different package names to Ubuntu so you're likely going to run into a whole load of pain.

Chances are if a DEB doesn't exist, you'll be better off just getting the source and compiling it.

Solution 2:

You will need alien to do that.

sudo apt-get install alien

This will install all the required packages.Now you can start converting your .rpm files to .deb packages.

Available Options for alien:

Convert the package.rpm into a package.deb

sudo alien -d package-name.rpm

Convert the package.rpm into a package.deb, and install the generated package.

alien -i package-name.rpm

If you want to keep alien from changing the version number use the following command

alien -k rpm-package-file.rpm

Solution 3:

The short answer is, Don't!

If you got an RPM that is so important that you need to have it, there is probably a Ubuntu package as well; and, if not, it is probably worth going through the trouble of compiling it from source into the Debian package format (that Ubuntu uses as well). Now, there are certain times when you can't just recompile the software (if it's not opensource it's impossible) and in that case you can use the alien program. But, installing from RPM's is a little like putting gasoline in a diesel car - it might work, but you wont benefit from it in the long run!

To build a package from source, there is a guide on the Ubuntu Wiki; there is also a program called checkinstall that can do some tricks with a default source-tree without setting up build instructions for the package. If you think that someone else can benefit from the programs that you compile, you can setup a repository on launchpad and share the package goodness!