【2025-04-29 11:20:00AI Siri网最新消息】
由于许可协议的问题,macOS 系统中已经用 openrsync
替代了 rsync
命令行工具。理解这一变化背后的原因和影响,对很多开发者和系统管理员来说非常重要。
rsync
是一款存在了几十年的命令行工具,它允许用户通过互联网或本地网络,将文件和文件夹复制到远程计算机或从远程计算机复制文件。它的核心优势在于差异化同步,即在复制过程中,rsync
会比较源文件和目标文件,只传输发生变化的部分,从而显著减少网络传输的数据量,缩短复制所需时间。
最初由 Andrew Tridgell 和 Paul Mackerras 于 1996 年编写并发布,rsync
广泛应用于 UNIX、macOS、BSD、Linux 以及其他类 UNIX 操作系统,还可以通过 Cygwin、Grsync、SFU 等工具在 Microsoft Windows 系统中使用。
rsync
是免费且开源的,但它目前基于 GPL 3.0 或更高版本的许可协议发布,该协议存在一些限制。GPL(GNU General Public License)协议旨在保障软件的开源和自由使用,但其严格的“传染性”要求,对商业软件的集成带来了一定的挑战。
长期以来,macOS 都包含了 rsync
,但最后一个官方版本是 2.6.9。原因在于,该版本是根据 GPL 2.0 许可协议发布的,该协议的限制性略低于 GPL 3.0。 尽管 rsync
3.x 已经发布,但由于涉及 GPL 3.0 的许可问题,Apple 选择不将其包含在 macOS 中,这体现了科技公司在开源软件选择上的谨慎态度。
作为替代方案,macOS 包含了一个名为 openrsync
的 rsync
变体,它由开发者 Kristaps Dzonsons 开发。 openrsync
与 rsync
类似,但采用 BSD 许可协议,这对于 Apple 来说更具灵活性。BSD 许可协议允许修改和重新发布代码,甚至可以用于商业目的,无需开源,这使得它成为商业公司更青睐的选择。
虽然 openrsync
实现了 rsync
的大部分功能,但它并非在所有功能上都与 rsync
完全一致。 要查看 macOS 终端应用程序中 openrsync
命令和选项的完整列表,请键入:
man openrsync
并按 Return 键。
要退出 man 系统,请在 Mac 键盘上键入 Command-Z、Command-C 或 q。
即使在 macOS 15.x Sequoia 中,系统仍然附带 2.x 版本的 rsync
,但如果在终端中键入:
rsync --version
并按 Return 键,你现在将看到:
openrsync: protocol version 29
rsync version 2.6.9 compatible
你可以在 kristapsdz 查看 Kristaps Dzonsons 的完整 GitHub 存储库。rsync
的开源版本的代码位于 GitHub 上的 RsyncProject。
如果确实需要在 Mac 上安装 3.x 版本的 rsync
(截至撰写本文时为 3.4.1),可以通过 Homebrew 来完成。 需要注意的是,通过 Homebrew 安装 rsync
3.x 将会破坏 macOS 文件系统中 Apple 对 openrsync
的链接。 这意味着, Homebrew 安装的版本会覆盖系统默认版本,需要谨慎操作。
OPByte 软件还构建了一个基于 GTK 库的 rsync
GUI 前端,名为 Grsync 。 虽然很方便,但它已经有几年没有更新了,因此效果可能因人而异。
你还可以使用 Homebrew formula 安装 Grsync,名为 grsync。