76

The problem is simple - I have a .deb package and I want to install it on my Arch Linux. Is this possible? If yes, how?

  • 7
    Note that .deb files are just archives that can be uncompressed on any system. Depending on how complex the installation process is, that might be enough to "install" it. – user Jul 18 '13 at 20:48
54

Is it possible? Yes. Is it a good idea? That depends. You would only really need to do this if the application only exists as a .deb package. It is much more likely that you can just grab the upstream source and write a simple PKGBUILD to install it with pacman.

You should also search the AUR to ensure that someone hasn't done this already.

| improve this answer | |
  • 6
    Note, that even if a source package is not provided (or easily accessible), .deb files are easily extracted with libarchive. And, makepkg uses bsdtar (which uses libarchive) by default to extract sources in a PKGBUILD. The result of this dependency chain is that you can easily write PKGBUILDs that make use of .deb archives as source files. :D – HalosGhost Jul 27 '14 at 0:42
  • 1
    Maybe link an example PKGBUILD? – aksh1618 Nov 8 at 10:08
49

dpkg for Arch exists. You should be able to install .deb packages on arch, but you should also not use it instead of pacman, so just use it for selected few packages.

The default command looks like:

# dpkg -i package.deb
| improve this answer | |
  • 13
    Using an alternate package manager, though an option, is not the correct solution. The correct solution is to write a PKGBUILD to generate a pacman-native package. – HalosGhost Jul 27 '14 at 0:26
  • 1
    command not found: dpkg – zygimantus Jun 22 '17 at 12:51
  • 12
    Even if it isn't the correct way to do it, it answers the original question... "Is it possible to install a deb package, and how to do it" is answered a lot better by this answer, than simply saying "write a PKGBUILD to generate a native package", since that is not what the user asks... – svin83 Feb 10 '18 at 2:06
  • Has dpkg been removed? It doesn't exist at the linked to location. – Björn Lindqvist Mar 31 at 15:08
  • 1
    @BjörnLindqvist It's a normal pacman package now, and can be installed using sudo pacman -S dpkg. However, after installing it, it warns the user that using it to install debian packages can break their system, so take that as you will. – Axiumin_ Apr 2 at 22:09
20

Possible? Yes, but different methods exist on basis of use case.

Assumption: The debian package doesn't have an equivalent package in the Arch (or Arch based Distribution's) official repository.

  1. Install yay using pacman:
    sudo pacman -S yay

Reason: yay is an AUR helper used to query & install AUR packages. In case the debian package has already been repackaged and published to the AUR by someone else.

  1. Install the package_name using yay:

     sudo yay -S package_name
    

note: replace package_name with the name of the debian package as found in the AUR. It'll attempt to install the dependencies on it's own using pacman.

Alternative

Assumption: The Debian package hasn't been repackaged as an Arch package in AUR yet.

  1. Install debtap from AUR using yay:

     sudo yay -S debtap
    
  2. Create equivalent package using debtap:

     debtap package_name.deb
    
  3. Install using pacman:

     sudo pacman -U package_name.pkg
    

Not the recommended way (possibly dangerous)

This method attempts to install the package using the debian packaging format on Arch, which is not recommended due to possible danger of corrupting your installation. If using this method it is recommended to be ready with a rescue disc image of Arch & backup of the user data/space.

  1. Install dpkg using yay:

     sudo yay -S dpkg
    
  2. Install the debian package using dpkg:

     sudo dpkg -i package_name.deb
    
| improve this answer | |
  • yaourt is not in the Arch repositories, and pacman -S yaourt won't work. It is an abandoned AUR package. Rather, you should be explaining how to build an AUR package, and simply note that there are AUR helpers like yaourt and yay. – greyfade Jul 6 at 23:11
  • At the time of writing it used to be available in the Manjaro Repositories, but as you have mentioned I should update the answer to match the current status – ToxicMender Jul 7 at 7:01
  • It may have been available in the Manjaro repositories, but it has never been in the Arch repositories. – greyfade Jul 21 at 18:48
  • 1
    AUR helpers like yay and yaourt should not be run using sudo. These will ask to elevate permission when installing, but build script should be run as an unprivileged user. – Mr. Wrong Sep 23 at 16:57
5

You can install dpkg by: yaourt dpkg.

If you don't have yaourt, you can get it from its AUR page.

Then just cd to where you put it and dpkg -i package.deb whatever the package may be

| improve this answer | |
  • 1
    The current comment on the AUR package for dpkg states it is out of date and "Don't use it instead of Arch's 'pacman'." Does this mean pacman can now be used to install deb packages? – gromain Apr 5 '16 at 7:27
  • 2
    @gromain I believe they say that to tell an ignorant user that they shouldn't be using Debian package management in Arch by default -- it should be an exception rather than the rule. – Czipperz Aug 21 '16 at 3:00
  • 1
    This package is out of date. – zygimantus Jun 22 '17 at 12:51
0

This works for some packages:

# You might append this to ~/.bashrc
function debinstall() {
  ar x $1 data.tar.xz
  mkdir /tmp/$1_dir
  tar -C /tmp/$1_dir -xf data.tar.xz
  sudo rsync /tmp/$1_dir /
  rm -f data.tar.xz
  rm -rf /tmp/$1_dir
}
    
# Usage
debinstall draw.io-amd64-13.6.2.deb # Put your package name instead
| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.