在Arch上安装.deb软件包-可以吗?


67

问题很简单-我有一个.deb软件包,我想将其安装在Arch Linux上。这可能吗?如果是,怎么办?


7
请注意,.deb文件只是可以在任何系统上解压缩的存档。根据安装过程的复杂程度,可能足以“安装”它。
CVn

Answers:


48

可能吗?是。这是个好主意吗?那要看。仅当应用程序仅作为.deb程序包存在时,才真正需要这样做。您很可能可以抓住上游源代码并编写一个简单的PKGBUILD来与pacman一起安装它。

您还应该搜索AUR,以确保尚未有人这样做。


4
请注意,即使未提供(或易于访问)源包,.deb也可以使用轻松提取文件libarchive。并且,默认情况下makepkg使用bsdtar(使用libarchive)在中提取源PKGBUILD。此依赖关系链的结果是,您可以轻松地编写PKGBUILD,以将.deb归档用作源文件。:D
HalosGhost 2014年

39

拱门的dpkg存在。您应该能够.deb在arch 上安装软件包,但也不要使用它代替pacman,因此只能将其用于选定的几个软件包。

默认命令如下所示:

# dpkg -i package.deb

9
尽管可以选择使用备用程序包管理器,但这不是正确的解决方案。正确的解决方案是编写一个PKGBUILD以生成pacman本机包。
HalosGhost 2014年

1
找不到命令:dpkg
zygimantus

6
即使这不是正确的方法,它也会回答最初的问题……“答案是否可能安装deb软件包以及如何执行”,比简单地说“写一个PKGBUILD来生成一个本地包”,因为那不是用户要求的...
svin83 '18

10

可能?是的,但是根据用例存在不同的方法。

假设:debian软件包在Arch(或基于Arch的发行版)官方存储库中没有等效的软件包。

  1. yaourt使用安装pacman

    sudo pacman -S yaourt

原因: yaourt是pacman的前端(基于CLI),用于查询和安装AUR软件包。如果debian软件包已经被其他人重新包装为AUR。

  1. 安装package_name使用yaourt:

    sudo yaourt -S package_name

注意:替换package_name为在AUR中找到的debian软件包的名称。它将尝试使用自行安装依赖项pacman

另类

假设:Debian软件包尚未在AUR中重新打包为Arch软件包。

  1. debtap从安装yaourt

    sudo yaourt -S debtap
  2. 使用创建等效的包debtap

    debtap package_name.deb
  3. 使用安装pacman

    sudo pacman -U package_name.pkg

不推荐的方法(可能很危险)

此方法尝试在Arch上使用debian打包格式安装软件包,不建议这样做,因为这可能会损坏您的安装。如果使用此方法,建议准备好Arch的应急磁盘映像并备份用户数据/空间

  1. dpkg使用安装yaourt

    sudo yaourt -S dpkg
  2. 使用dpkg以下命令安装debian软件包:

    sudo dpkg -i package_name.deb

7

您可以通过安装的dpkg: yaourt dpkg

如果没有的话yaourt,可以从它的AUR页面上获得它。

然后cd放在您放置的位置以及dpkg -i package.deb任何包装


1
当前对dpkg的AUR软件包的评论指出它已过时,“不要使用它代替Arch的'pacman'”。这是否意味着pacman现在可以用于安装deb软件包了?
gromain

2
@gromain我相信他们说的是要告诉一个无知的用户,默认情况下他们不应该在Arch中使用Debian软件包管理-这应该是一个例外,而不是规则。
Czipperz

1
该软件包已过期。
zygimantus
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.