如何在 libcurl 中启用 rsync?

如何在 libcurl 中启用 rsync?

我在阿奇。当pacman尝试从服务器下载包时ftp,失败并显示错误消息

libcurl 中不支持或禁用协议 rsync

这已经困扰我一段时间了,但我不记得我做了什么导致了它(Pacman 只是从服务器下载http,所以我能够忽略它)。我已经安装rsynclibcurl安装了它们,而且它们之前显然配合得很好。我找不到任何libcurl配置文件,并且页面中curl没有提及。我该如何启用?rsyncmanrsync

答案1

libcurl 不支持 rsync 协议。

来自 libcurl常问问题:第 3.21 条

   3.21 Protocol xxx not supported or disabled in libcurl

   When passing on a URL to curl to use, it may respond that the particular
   protocol is not supported or disabled. The particular way this error message
   is phrased is because curl doesn't make a distinction internally of whether
   a particular protocol is not supported (i.e. never got any code added that
   knows how to speak that protocol) or if it was explicitly disabled. curl can
   be built to only support a given set of protocols, and the rest would then
   be disabled or not supported.

   Note that this error will also occur if you pass a wrongly spelled protocol
   part as in "htpt://example.com" or as in the less evident case if you prefix
   the protocol part with a space as in " http://example.com/".

libcurl 根本不知道 rsync 协议,甚至不知道任何提示。但是,由于它被设计为从 URL 中的指示符“猜测”协议,尝试使用rsync://blah.blah会给您带来您看到的错误,因为它猜测您的意思是“rsync”,但它不知道那个,所以它返回错误。

如果你尝试过,它会给你同样的错误lornix://blah.blah,我怀疑我也是一个文件传输协议。 (如果是的话,请告诉我!)

Libcurl 确实支持一组令人印象深刻的协议,但 rsync 不是其中之一。

答案2

补充笔记

即使在 pacman.conf 中将 rsync 设置为 XferCommand,也可能无法更新软件包。

这是 rsync 服务器不允许访问带有 *.db 扩展名的文件的情况。在某些情况下,rsync 命令可以检索 core.db.tar.gz 文件,但不能检索 core.db 文件。在这种情况下,您应该选择 https 或 http。

另外,如果不指定地区(国家),即使按RATE排序,镜像服务器更新脚本也往往达不到您的期望。

概括

1.对于镜像列表,选择 https 或 http 协议。

2.rsync服务器操作员应配置有关*​​.db文件扩展名的设置。

3.如果您想使用脚本自动更新镜像列表,请指定区域、国家和协议。

根本不。

相关内容