警告结束下一个命令的其他事情可能会损坏系统并使其不可恢复。

警告结束下一个命令的其他事情可能会损坏系统并使其不可恢复。

当我尝试在 Fedora 中安装任何软件包(例如sudo apt-get upgrade)时,我看到以下错误:

Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following packages will be upgraded:
  libc6
1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
3 not fully installed or removed.
Need to get 0 B/2,814 kB of archives.
After this operation, 13.1 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y
dpkg: warning: files list file for package 'gcc-10-base:amd64' missing; assuming package has no files currently installed
(Reading database ... 0 files and directories currently installed.)
Preparing to unpack .../libc6_2.31-13+deb11u2_amd64.deb ...
dpkg (subprocess): cannot set security execution context for maintainer script: Invalid argument
dpkg: error processing archive /var/cache/apt/archives/libc6_2.31-13+deb11u2_amd64.deb (--unpack):
 new libc6:amd64 package pre-installation script subprocess returned error exit status 2
dpkg (subprocess): cannot set security execution context for maintainer script: Invalid argument
dpkg: error while cleaning up:
 new libc6:amd64 package post-removal script subprocess returned error exit status 2
Errors were encountered while processing:
 /var/cache/apt/archives/libc6_2.31-13+deb11u2_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

答案1

APT转速未维护且已损坏,您应该使用dnf而不是apt.

Fedora 文档:为什么 APT 存在于 Fedora 存储库中?

警告

Fedora 上无法使用 APT 来安装软件包,必须使用 DNF 来代替。

Fedora 上的 apt 命令在 Fedora 32 之前实际上是 APT-RPM,它基本上映射了普通的 apt 命令,以便它们与 Fedora 的 RPM 包管理系统一起使用。

然而,APT-RPM 缺乏维护、损坏且不安全,因此被放弃,转而使用实际的 Debian APT 软件。由于 APT 专门处理 .deb 软件包,因此 apt 命令不能再用于管理 Fedora 软件包。现在它的目的纯粹是作为人们在 Fedora 系统上为基于 Debian 的发行版构建软件包的工具。

答案2

“APT”工具系列来自 Debian 世界。在 Fedora 中,我们使用名为“DNF”(以前称为“Yum”)的类似工具。两者都有优点和缺点,但从用户级别(尤其是基本功能)来看,它们实际上是可以互换的。我们这里有一个备忘单:Fedora 上使用 DNF 的 APT 命令等效项,但简而言之:

apt upgradednf upgrade

apt installdnf install

apt removednf remove

apt searchdnf search

主要要注意的是 Debian 世界中的软件包名称(特别是开发库名称,还有其他实用程序和工具)不一定匹配。所以,你可能会sudo apt install apcalc在 Debian 上找到它,而结果却是sudo dnf install calc在 Fedora Linux 上。

正如其他人指出的那样,有Fedora Linux 中的一个apt软件包,但它的存在是为了方便开发人员从 Fedora Linux 系统构建 Debian 软件包。它不适合典型的最终用户使用。

答案3

Fedora 中 apt 的目标是能够从 Debian 发行版下载软件包,而不是安装软件包。 apt 只是像 repos 一样读取 Debian,而不是 Fedora repos,因此,当您有一个只包含 debian 软件包的项目时,您可以在 Fedora 中轻松下载它。例如 jitsi、leap (riseup-vpn_0.19.11_amd64.deb、signal 或 slack

例如信号(https://signal.org/download/linux/

作为根用户:

  1. 安装官方公共软件签名密钥
wget -O- https://updates.signal.org/desktop/apt/keys.asc | gpg --dearmor > signal-desktop-keyring.gpg
cat signal-desktop-keyring.gpg | tee -a /usr/share/keyrings/signal-desktop-keyring.gpg > /dev/null
  1. 将存储库添加到您的存储库列表中
 echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/signal-desktop-keyring.gpg] https://updates.signal.org/desktop/apt xenial main' |\
 tee -a /etc/apt/sources.list.d/signal-xenial.list
  1. 下载 signal-desktop_x.xx.x_amd64.deb
apt update 
apt-get download signal-desktop 

警告结束下一个命令的其他事情可能会损坏系统并使其不可恢复。

  1. 正如您可能怀疑的那样,在 Fedora 上安装它而不检查依赖项这是一个大黑客并且官方也不推荐,但以非常快的方式为我工作。
 dpkg --force-depends -i signal-desktop_5.23.0_amd64.deb 
 desktop-file-install ./usr/share/applications/signal-desktop.desktop

相关内容