97

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?

1
  • 9
    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, 2013 at 20:48

5 Answers 5

66

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.

2
  • 12
    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, 2014 at 0:42
  • 3
    Maybe link an example PKGBUILD?
    – aksh1618
    Nov 8, 2020 at 10:08
60

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
6
  • 18
    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, 2014 at 0:26
  • 1
    command not found: dpkg
    – zygimantus
    Jun 22, 2017 at 12:51
  • 23
    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, 2018 at 2:06
  • 1
    Has dpkg been removed? It doesn't exist at the linked to location. Mar 31, 2020 at 15:08
  • 3
    @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, 2020 at 22:09
47

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:

     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:

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

     sudo debtap -u
     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:

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

     sudo dpkg -i package_name.deb
    
4
  • 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, 2020 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 Jul 7, 2020 at 7:01
  • It may have been available in the Manjaro repositories, but it has never been in the Arch repositories.
    – greyfade
    Jul 21, 2020 at 18:48
  • 4
    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, 2020 at 16:57
3

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

3
  • 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, 2016 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, 2016 at 3:00
  • 1
    This package is out of date.
    – zygimantus
    Jun 22, 2017 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

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.