在 Arch 上安装 .deb 包 - 有可能吗?

BKC*_*BKC 90 arch-linux debian

问题很简单——我有一个 .deb 包,我想将它安装在我的 Arch Linux 上。这可能吗?如果是,如何?

jas*_*yan 62

是否可以?是的。这是个好主意吗?那要看。只有当应用程序仅作为.deb包存在时,您才真正需要这样做。更有可能的是,您可以直接获取上游源代码并编写一个简单的PKGBUILD来使用 pacman 安装它。

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

  • 请注意,即使未提供(或易于访问)源包,也可以使用“libarchive”轻松提取“.deb”文件。而且,`makepkg` 默认使用`bsdtar`(使用`libarchive`)来提取`PKGBUILD` 中的源代码。这个依赖链的结果是你可以轻松地编写使用 `.deb` 存档作为源文件的 `PKGBUILD`s。:D (10认同)
  • 也许链接一个例子PKGBUILD? (2认同)

sup*_*er0 52

Arch 的 dpkg存在。您应该能够.deb在 arch上安装软件包,但您也不应该使用它代替pacman,所以只需将它用于选定的几个软件包。

默认命令如下所示:

# dpkg -i package.deb
Run Code Online (Sandbox Code Playgroud)

  • 即使这不是正确的方法,它也回答了最初的问题......“是否可以安装 deb 包,以及如何安装”这个答案比简单地说“更好”编写一个 PKGBUILD 来生成一个本地包”,因为这不是用户要求的...... (18认同)
  • 使用备用包管理器虽然是一种选择,但并不是正确的解决方案。正确的解决方案是编写一个`PKGBUILD`来生成一个pacman-native包。 (15认同)
  • @BjörnLindqvist 现在是一个普通的 pacman 包,可以使用 `sudo pacman -S dpkg` 安装。但是,在安装之后,它会警告用户使用它来安装 debian 软件包可能会破坏他们的系统,所以请照你的意思去做。 (2认同)

小智 37

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

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

  1. 安装yay使用pacman

     sudo pacman -S yay
    
    Run Code Online (Sandbox Code Playgroud)

原因: yay 是一个用于查询和安装AUR包的AUR 助手。如果 debian 包已经被其他人重新打包并发布到 AUR。

  1. 安装package_name使用 yay:

     yay -S package_name
    
    Run Code Online (Sandbox Code Playgroud)

注意:替换package_name为在AUR 中找到的 debian 包的名称。它将尝试使用pacman.

选择

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

  1. debtap使用yay以下命令从 AUR安装:

     yay -S debtap
    
    Run Code Online (Sandbox Code Playgroud)
  2. 使用debtap以下方法创建等效包:

     sudo debtap -u
     debtap package_name.deb
    
    Run Code Online (Sandbox Code Playgroud)
  3. 安装使用pacman

     sudo pacman -U package_name.pkg
    
    Run Code Online (Sandbox Code Playgroud)

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

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

  1. 安装dpkg使用yay

     yay -S dpkg
    
    Run Code Online (Sandbox Code Playgroud)
  2. 使用dpkg以下命令安装 debian 软件包:

     sudo dpkg -i package_name.deb
    
    Run Code Online (Sandbox Code Playgroud)

  • 像 yay 和 yaourt 这样的 AUR 助手不应该使用 sudo 运行。这些将在安装时要求提升权限,但构建脚本应以非特权用户身份运行。 (3认同)