New Project To Convert Arch Linux PKGBUILDs (Repositories and AUR) To DEB Packages And Install Them On Debian / Ubuntu

makedeb mpm

The Arch Linux repositories are quite extensive, and usually contain up-to-date software. And if something is not available in the repositories, it's most probably available in the AUR (ArchLinux User Repository).

What if you could convert the packages from the Arch Linux repositories and AUR into DEB packages, for easy installation using APT on Debian / Ubuntu, and Linux distributions based on these (Pop!_OS, Linux Mint, etc.)?

Well, you sort of can. makedeb, mpm and makedeb-db is a set of tools that allows you to do just that. This is what they do:

  • makedeb creates Debian packages installable using APT from Arch Linux PKBUILD files
  • mpm is a package manager for makedeb, which can be used to install, update and cloning packages from AUR and the Arch Linux repositories, on Debian and Debian-based Linux distributions
  • makedeb-db converts the Arch Linux dependency names to their Debian counterparts

Why "you sort of can" though? Well, because the project is still in its infancy, and even though there are stable releases of these tools available for download (as well as alpha releases), there are only a few packages from Arch Linux that you can install on Debian / Ubuntu. There are others that probably work too, but none from the ones I've tried (besides those mentioned to work).

So you can't use the complete Arch Linux repositories and the AUR to install packages on Debian or Ubuntu just yet. But if you like this, you could help the developer to make this work with many other packages. See this bug report for details.

Until then, you could use something like Archbox in order to install software from Arch Linux on any other Linux distribution, using a chroot environment. Although using Archbox is a lot more tedious than this. In fact, the makedeb developer might have been inspired by Archbox into doing this (just a thought, I didn't see Archbox mentioned in the makedeb documentation).


Installation and usage


To install makedeb, mpm and makedeb-db on Debian, Ubuntu and any Linux distribution based on these (Linux Mint, Pop!_OS, etc.), start by adding the repository and updating the software sources:

sudo wget 'https://hunterwittenborn.com/keys/apt.asc' -O /etc/apt/trusted.gpg.d/hwittenborn.asc

echo 'deb [arch=all] https://repo.hunterwittenborn.com/debian/makedeb any main' | sudo tee /etc/apt/sources.list.d/makedeb.list

sudo apt update

And then install the stable release of makedeb, mpm and makedeb-db:

sudo apt install mpm makedeb makedeb-db

The stable release only supports AUR. For Arch Linux repositories support you'll need to install the alpha release of mpm and makedeb (mpm-alpha and makedeb-alpha). 

The developer notes that using the alpha release, "things could break occasionally, and you'll need to know how to get around your system when it happens". Also, it's important to note here that any package installed with the non-alpha version of mpm is not recognized by mpm-alpha, so you'll need to register the packages again using mpm install.

mpm package manager supports the following options:

  • search search for a package
  • clone clone a package
  • install install a package
  • update update installed packages (I would have prefered this to be "upgrade" instead of "update", as to not confuse users, since "update" does something else on Debian)

As a test, after installing this, you can convert the matcha-gtk-theme AUR package to DEB and install it using:

mpm install matcha-gtk-theme

Or, if you want to create a DEB package from a PKGBUILD directly, without using the mpm package manager, you can do that using makedeb. Download a PKGBUILD, open a terminal in the folder where you've saved the PKGBUILD file, then simply run makedeb in the terminal. You can also specify a PKGBUILD with the -F option, and install the DEB once it has been created, using -I.

Important: don't run mpm with sudo!

Want to create DEB packages from Arch Linux PGKBUILD files... on Arch Linux? You can do that too, by installing makedeb from AUR: stable | alpha.

via r/archlinux