Pacserve

来自 ArchWiki

Pacserve 允许在计算机之间轻松共享 pacman 软件包。如果您网速较慢并且有多台计算机运行 Arch Linux,这将非常有用。

安装

安装 pacserveAUR

提示: 该软件包也可在 xyne-x86_64 非官方仓库中找到。

最后 启动/启用 pacserve.service

如果您使用 iptables,您可能还需要启动 pacserve-ports.service。对于其他防火墙,请打开 TCP 端口 15678 和 UDP 端口 15679。UDP 端口可以仅限于组播流量。

配置

可以通过编辑 /etc/pacserve/pacserve.service.conf 中的 PACSERVE_ARGS 来配置 pacserve.service。运行 pacserve --help 以查看可用选项。

Avahi

要使用 mDNS 公告和发现 Pacserve,请将 --avahi 选项添加到 /etc/pacserve/pacserve.service.conf 中的 PACSERVE_ARGS

独立使用

不要使用 pacman,而是使用 pacsrv 包装器来执行更新、安装软件包等操作。如果有人在局域网中使用 pacserve 托管它们,它将自动从局域网下载所有软件包。否则,它将像往常一样从互联网镜像下载它们。例如

# pacsrv -Syu
# pacsrv -S openssh

配置 Pacman 使用 Pacserve

如果您始终运行 pacserve 守护程序并希望 pacman 在没有包装器的情况下使用它,请在 /etc/pacman.conf每个仓库的(任何其他 Include 行之前)插入以下行。

Include = /etc/pacman.d/pacserve

这是 Xyne 仓库的示例

/etc/pacman.conf
...
[xyne-x86_64]
SigLevel = Required
Include  = /etc/pacman.d/pacserve
Server   = https://xyne.dev/repos/xyne
...

或者(仅对于官方镜像),您可以将 Include 行插入到 Pacman 镜像列表文件的顶部,或者让 pacman.conf-insert_pacserve 为您生成一个 pacman.conf 文件。

故障排除

如果在 pacman.conf 中使用外部下载器的问题

如果您正在使用外部下载器(例如 wget),则 pacsrv 在下载时可能会返回错误。要解决这些错误,只需使用单引号引用 url 和输出格式字符串(%u resp. %o

XferCommand = /usr/bin/wget --timeout=6 --passive-ftp -c -O '%o' '%u'

设备互相看不到

对等点检测依赖于 python3-threaded_serversAUR 的版本。来自不同版本服务的 TCP 组播帧将被丢弃。在这种情况下,以 root 身份运行 journalctl -u pacserve 将警告此类无法识别的帧。首先升级此软件包,然后重启 pacserve.service

参见