Centos – How to change from existing DEB files to Centos RPM

centosdebpackage-managementrpmUbuntu

I'm moving a product from Ubuntu 12.04 to Centos 6.6. I have ~500 deb files.
(for example 'dpkg -i libaio1_0.3.109-2ubuntu1_amd64.deb'). I need these debs on Centos .

  1. Is there a viable way to install deb packages on Centos?

  2. A reliable way to convert deb files to a Centosable format? (I tried the package "alien" and it didn't work, gave errors, fails at every turn)

  3. Also, what does the dpkg command do with the deb files? I know that rpm packages use a spec file and triggers from the rpm command to use it. couldn't find a similar file in .debs though.

Best Answer

The problems you've had with alien are most likely not due to a bug or limitation in alien, but to an intrinsic problem of your approach. Converting a deb package into an rpm package is easy, and alien does it well. Converting a package for Ubuntu into a package for CentOS is much more difficult. This means not only repacking the files in a different format, but also moving files around to be in the directories where CentOS expects them, modifying configuration files so that they work on CentOS (e.g. with a different init system), declaring dependencies on packages that have different names (or might not even be present in the distribution at all), etc.

With 500 packages, you're probably going to encounter some difficult cases. Whether it's worth the effort to make dummy packages, create symbolic links and wrapper scripts, tweaking the system configuration, etc. is up to you, but I'd definitely be looking for another solution. In particular, note that there's a good chance that the Debian binariesare compiled against different library versions than what's present in CentOS.

If you want to run programs built for Debian on a CentOS machine, the least effort solution would be to install Debian in a chroot (this guide about installing Debian on another Debian version may be useful, as there's not much dependency on the host side).

If you want to have “proper” CentOS packages then building them from source will be far easier than converting the Debian packages.

Related Question