标签: pacman

如何在 Arch Linux 上负责任地自动运行更新?

我是 Arch Linux 的新手,并且仍然习惯于它的一些范例。我从另一个发行版中养成了很多习惯,这些习惯更加结构化并且在某些方面是可预测的。

我想对一些系统做的一件事是启用 cron 作业来自动更新所有系统包。这似乎很容易,除了我还希望系统提供一些有意义的反馈,告诉我事情的进展情况,但不会太冗长以至于我最终会忽略它,直到我发现系统正在运行。

  • 的完整输出pacman是不必要的。我不在乎下载花了多长时间,也不在乎它是在 53 次更新中的第 46 次。
  • 在大多数情况下,我不关心成功。
  • 我确实关心错误。如果更新运行失败,我想知道它,并且应该修补任何特定的错误消息。
  • 我确实关心安装过程中发出的“通知”。例如今天的 systemd 更新说:

    :: coredumps are no longer sent to the journal by default. To re-enable:  
    echo >/etc/sysctl.d/50-coredump.conf \  
        "kernel.core_pattern=|/usr/lib/systemd/systemd-coredump %p %u %g %s %t %e"
    
    Run Code Online (Sandbox Code Playgroud)

    或者文件系统产生了这个:

    warning: /etc/group installed as /etc/group.pacnew  
    warning: /etc/passwd installed as /etc/passwd.pacnew  
    warning: /etc/shadow installed as /etc/shadow.pacnew
    
    Run Code Online (Sandbox Code Playgroud)

    最后一个类别实际上是促使我提出这个问题的原因,因为看起来这些在整个包集中非常不一致。其中一些似乎是由 生成的post_upgrade(),其他的似乎是由等生成的install()。有时它们被写入标准输出,有时被写入标准错误。消息的格式差异很大:有时整个块以某种方式以缩进为前缀,有时只有一个空的回显字符串。

我想知道可能需要我对系统进行干预但又不会被打扰的事情。是否有一种工具可以智能地管理这些数据并简化系统管理?有什么方法可以将软件包生成的输出与安装它们的 pacman 进程分开?还是我自己编写某种解析器来过滤掉安装日志中的良性内容?

¹ 在你跳过这有多么愚蠢之前,请注意我足够聪明,不会在生产服务器上这样做,也不会在没有基于快照的完整系统备份的情况下进行,这样在发生灾难时可以轻松恢复。

arch-linux pacman upgrade package-management yaourt

16
推荐指数
1
解决办法
1万
查看次数

Arch linux:chroot 时 pacman 不起作用

我的电脑上安装了 Ubuntu。我决定安装 Arch linux,但我跳过了关于 Grub 安装的部分,因为它已经安装了。看到 Arch 没有出现在 Grub 的菜单列表中,我决定在 Arch 中安装它。我在 Ubuntu 中安装了 Arch 的分区,然后 chroot 到它。我发出命令pacman -S grub-bios并得到以下信息:

error: could not open file: /etc/mtab: No such file or directory
error: could not determine filesystem mount points
error: failed to commit transaction (unexpected error)
Errors occurred, no packages were upgraded.
Run Code Online (Sandbox Code Playgroud)

/etc/mtab是指向 的符号链接/proc/self/mounts,但/proc文件夹中没有任何内容。

我究竟做错了什么?

作为补充,我是否朝着正确的方向让 Arch 出现在 Grub 的列表中?编辑:我是能够使拱门出现在GRUB的名单从Ubuntu的做sudo mount /dev/sdaX与Arch的分区号替换X之前)sudo update-grub

arch-linux pacman grub2 proc

15
推荐指数
1
解决办法
2万
查看次数

加载共享库时出错:libicuuc.so.59:无法打开共享对象文件:没有这样的文件或目录

更新后pacman -Syuq

# pacman -Sc

pacman:加载共享库时出错:libicuuc.so.59:无法打开共享对象文件:没有这样的文件或目录

# find / -name libicuuc.so.* 2>/dev/null
/usr/lib/libicuuc.so.60.1
/usr/lib/libicuuc.so.60
Run Code Online (Sandbox Code Playgroud)

Pi 版本 1 中的 Arch Linux:

# uname -an
4.9.62-1-ARCH #1 SMP Fri Nov 17 13:42:55 UTC 2017 armv6l GNU/Linux
Run Code Online (Sandbox Code Playgroud)

pacman arch-arm

15
推荐指数
2
解决办法
6万
查看次数

检查通过 yaourt 安装的软件包的更新

无论如何要更新与 yaourt 一起安装的软件包?yaourt -Syu似乎和 一样pacman -Syu,它只关心官方存储库中的包。

arch-linux pacman package-management yaourt

14
推荐指数
1
解决办法
2万
查看次数

Arch Linux:系统升级期间断电后重新安装所有损坏的软件包

系统升级过程中出现断电(pacman -Suy)。所以我有很多破损的包裹。它们似乎在重新安装时通过强制覆盖进行修复(例如pacman -S systemd-sysvcompat--overwrite "*")。

所以我的问题是如何对所有损坏的软件包应用重新安装?

arch-linux pacman reinstall system-failure

14
推荐指数
2
解决办法
3万
查看次数

sudo pacman -Syu 失败并显示“错误:无法提交事务(无效或损坏的包)”

我正在尝试更新 arch Linux 安装:

sudo pacman -Syu
Run Code Online (Sandbox Code Playgroud)

它持续了一段时间,然后开始写入错误消息,例如

(691/691) checking keys in keyring                                                                                                                        [##############################################################################################] 100%
(691/691) checking package integrity                                                                                                                      [##############################################################################################] 100%
error: libtiff: signature from "Levente Polyak (anthraxx) <levente@leventepolyak.net>" is unknown trust
:: File /var/cache/pacman/pkg/libtiff-4.1.0-1-x86_64.pkg.tar.xz is corrupted (invalid or corrupted package (PGP signature)).
Do you want to delete it? [Y/n] 
error: krb5: signature from "Levente Polyak (anthraxx) <levente@leventepolyak.net>" is unknown trust
:: File /var/cache/pacman/pkg/krb5-1.17.1-1-x86_64.pkg.tar.zst is corrupted (invalid or corrupted package (PGP signature)).
Do you want to delete it? [Y/n] 
Run Code Online (Sandbox Code Playgroud)

我尝试了两者,用 …

arch-linux pacman software-updates

13
推荐指数
1
解决办法
7760
查看次数

Arch Linux - 是否可以指示 pacman 将某些软件包安装到特定目录中?

我想在根级别安装一组组织到目录中的软件。

有没有什么方法可以使用 pacman 将某些软件包安装到我选择的目录中?

arch-linux pacman

12
推荐指数
1
解决办法
1万
查看次数

如何在拱门上安装Skype

我到处找,没有任何效果。我只是想安装Skype。

我试图查看它是否在存储库中,但没有找到。所以我没有去skype网站,找到了一个linux版本,但是解压tar文件后不知道怎么安装。

然后我尝试查看 AUR 并找到了 Skype。但是当我尝试运行 makepkg 时,我得到了一个

==> ERROR: PERMISSION was not found in the build directory and is not a URL.

我试图四处寻找解决方案,但找不到任何东西。我找到的每个线程都要求检查/etc/pacman.conf文件。我做到了,并确保我包含了 multilib

/etc/pacman.conf

#
# /etc/pacman.conf
#
# See the pacman.conf(5) manpage for option and repository directives

#
# GENERAL OPTIONS
#
[options]
# The following paths are commented out with their default values listed.
# If you wish to use different paths, uncomment and update the paths.
#RootDir     = /
#DBPath      = /var/lib/pacman/
#CacheDir …
Run Code Online (Sandbox Code Playgroud)

arch-linux pacman software-installation skype

11
推荐指数
1
解决办法
2万
查看次数

使用 pacman 列出依赖某个包的所有包

在 arch 上用 pacman 安装了一个新软件包后,我有两个软件包发生冲突。

如何列出所有依赖于冲突的已安装软件包?

或者更一般:
如何列出依赖于某个其他软件包的所有已安装软件包

arch-linux pacman

11
推荐指数
3
解决办法
6371
查看次数

在包 nss/lib32-nss 的更新过程中导致“发现文件冲突 nss”

在 Arch 发行版的更新过程中,该过程表明存在冲突的文件

File conflict found nss (/usr/lib/p11-kit-trust.so), lib32-nss (/usr/lib32/p11-kit-trust.so): conflicting files

搜索文件系统我确实找到了这两个文件

[user@Arch ~]$ sudo find / -path /mnt -prune -o -name p11-kit-trust.so -exec file {} \;

/usr/lib32/pkcs11/p11-kit-trust.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), statically linked, BuildID[sha1]=c375005cabe8daef2a34a4b67fc2187285e6b3a0, stripped
/usr/lib32/p11-kit-trust.so: symbolic link to libnssckbi.so
/usr/lib/pkcs11/p11-kit-trust.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), statically linked, BuildID[sha1]=eb61c425c55ea05db04ce5bb103604861d3ea27d, stripped
/usr/lib/p11-kit-trust.so: symbolic link to libnssckbi.so
Run Code Online (Sandbox Code Playgroud)

经过一番google-fu,我找到了一个pacman命令来确定这些属于哪个包。该命令的结果是

[user@Arch~]$ sudo pacman -Qo /usr/lib32/pkcs11/p11-kit-trust.so
/usr/lib32/pkcs11/p11-kit-trust.so is owned by lib32-p11-kit 0.23.20-4

[user@Arch …
Run Code Online (Sandbox Code Playgroud)

arch-linux pacman

11
推荐指数
1
解决办法
5122
查看次数