我是 Arch Linux 的新手,并且仍然习惯于它的一些范例。我从另一个发行版中养成了很多习惯,这些习惯更加结构化并且在某些方面是可预测的。
我想对一些系统做的一件事是启用 cron 作业来自动更新所有系统包。这似乎很容易,除了我还希望系统提供一些有意义的反馈,告诉我事情的进展情况,但不会太冗长以至于我最终会忽略它,直到我发现系统正在运行。
pacman是不必要的。我不在乎下载花了多长时间,也不在乎它是在 53 次更新中的第 46 次。我确实关心安装过程中发出的“通知”。例如今天的 systemd 更新说:
Run Code Online (Sandbox Code Playgroud):: 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
最后一个类别实际上是促使我提出这个问题的原因,因为看起来这些在整个包集中非常不一致。其中一些似乎是由 生成的post_upgrade(),其他的似乎是由等生成的install()。有时它们被写入标准输出,有时被写入标准错误。消息的格式差异很大:有时整个块以某种方式以缩进为前缀,有时只有一个空的回显字符串。
我想知道可能需要我对系统进行干预但又不会被打扰的事情。是否有一种工具可以智能地管理这些数据并简化系统管理?有什么方法可以将软件包生成的输出与安装它们的 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。
更新后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) 无论如何要更新与 yaourt 一起安装的软件包?yaourt -Syu似乎和 一样pacman -Syu,它只关心官方存储库中的包。
系统升级过程中出现断电(pacman -Suy)。所以我有很多破损的包裹。它们似乎在重新安装时通过强制覆盖进行修复(例如pacman -S systemd-sysvcompat--overwrite "*")。
所以我的问题是如何对所有损坏的软件包应用重新安装?
我正在尝试更新 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)
我尝试了两者,用 …
我想在根级别安装一组组织到目录中的软件。
有没有什么方法可以使用 pacman 将某些软件包安装到我选择的目录中?
我到处找,没有任何效果。我只是想安装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 上用 pacman 安装了一个新软件包后,我有两个软件包发生冲突。
如何列出所有依赖于冲突的已安装软件包?
或者更一般:
如何列出依赖于某个其他软件包的所有已安装软件包
在 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)