如何更改客户端 Mac 上的软件更新服务器地址(以使用我自己的服务器)?

如何更改客户端 Mac 上的软件更新服务器地址(以使用我自己的服务器)?

现在我已经在 Leopard Server 上启动了软件更新服务,我该如何更改客户端 Mac 来检查其上的更新?

答案1

默认值

最简单的方法是在客户端 Mac 上运行默认命令(通过 Apple Remote Desktop 轻松推送):

defaults write com.apple.SoftwareUpdate CatalogURL 'HTTP_URL_FOR_CATALOG'

对于用户。如果您通过 sudo 运行它,它将在您以 root 身份使用软件更新时进行设置。

Mac OS X 10.6 已对此HTTP_URL_FOR_CATALOG进行了更改。如果您使用 MCX,它将自动选择新目录 - 但是,如果手动执行此操作,则需要针对相关客户端版本使用以下 URL:

  • Mac OS X 10.4:http://mysus.example.com:8088/index.sucatalog
  • Mac OS X 10.5:http://mysus.example.com:8088/index-leopard.merged-1.sucatalog.sucatalog
  • Mac OS X 10.6:http://mysus.example.com:8088/index-leopard-snowleopard.merged-1.sucatalog
  • Mac OS X 10.7:http://mysus.example.com:8088/index-lion-snowleopard-leopard.merged-1.sucatalog
  • Mac OS X 10.8:index-mountainlion-lion-snowleopard-leopard.merged-1.sucatalog

要仔细检查是否应用了该命令,您可以运行以下命令:

/usr/libexec/PlistBuddy -c Print /Library/Preferences/com.apple.SoftwareUpdate.plist
/usr/libexec/PlistBuddy -c Print ~/Library/Preferences/com.apple.SoftwareUpdate.plist
查看哪些设置适合计算机和用户。

如果运行软件更新(GUI)时正常工作,您应该会看到服务器地址出现在窗口标题的括号中。

麦克克斯

另一种方法是使用工作组管理器通过 MCX 从您的服务器管理首选项。这可以为用户或计算机(如果它们绑定到您的 Open Directory)完成。

如果您使用的是 10.5 Server 或更新版本:您可以简单地使用“首选项”下的“软件更新”部分。

手动:

  1. 选择要应用首选项的帐户、计算机或组。
  2. 点击“偏好设置”,然后点击“详细信息”选项卡
  3. 按添加...按钮并导航到/Library/Preferences/com.apple.SoftwareUpdate.plist
  4. 按编辑...
  5. 在“经常”下,添加一个新键并输入名称“CatalogURL”
  6. 确保类型是字符串,然后输入您的 SUS URL(例如http://mysus.example.com:8088/index.sucatalog或者如果使用 10.6:http://mysus.examle.com:8088/- 参见上文默认部分)
  7. 按“立即应用”,然后按“完成”。一旦用户/计算机刷新了其 MCX 设置(通常是下次登录或重新启动),新设置就会生效。

如果运行软件更新(GUI)时正常工作,您应该会看到服务器地址出现在窗口标题的括号中。

答案2

为了有一个系统范围的配置必须运行以下命令:

sudo defaults write /Library/Preferences/com.apple.SoftwareUpdate CatalogURL "http://your.updates-server.lan:8088/index.sucatalog"

为了在 Leopard 和雪豹正确的命令是:

defaults write /Library/Preferences/com.apple.SoftwareUpdate CatalogURL "http://your.updates-server.lan:8088/index-leopard-snowleopard.merged-1.sucatalog"

很高兴在我的网络上使用和测试:)

答案3

DNS 技巧Chealion 指出太棒了。我在办公室使用它,局域网上的每台计算机都会自动从本地存储库高速获取更新,无需任何配置。

swscan.apple.com在您的内部 DNS 服务器上创建DNS 区域,并通过 A 记录将其解析到您的 Mac OS X 服务器。在 Mac OS X 服务器本身上,编辑/etc/hosts文件并添加实际 IP 地址,以便swscan.apple.com它不会解析回自身。

需要指出的是,你需要一个雪豹服务器以便它能与 Snow Leopard 客户端协同工作 - 否则它会崩溃。

注意 — 10.5 SU 存储库位于/usr/share/swupd,10.6 SU 存储库移至/private/var/db/swupd

您还需要启用 Web 服务并在服务器管理中的端口 80 上添加以下 Web 别名,以便 10.4、10.5 和 10.6 客户端获取更新:

Pattern: index.sucatalog
Path: /private/var/db/swupd/html/content/catalogs/index.sucatalog

Pattern: /content/catalogs/others/index-leopard.merged-1.sucatalog
Path: /private/var/db/swupd/html/content/catalogs/others/index-leopard.merged-1.sucatalog

Pattern: /content/catalogs/others/index-leopard-snowleopard.merged-1.sucatalog
Path: /private/var/db/swupd/html/content/catalogs/others/index-leopard-snowleopard.merged-1.sucatalog

Pattern: /content/catalogs/index-1.sucatalog
Path: /private/var/db/swupd/html/content/catalogs/index.sucatalog

答案4

我想到了一个非常简单的方法,用于将软件更新传送到网络上所有未托管的 Mac,并且只需在 10.7 Lion 服务器上进行最少的黑客攻击。

  1. 按照上述说明在 DNS 中创建 A 记录,确保 swscan.apple.com 指向您的服务器的 IP。

  2. 将 swcan.apple.com 和 swquery.apple.com 的正确条目添加到您服务器的 /etc/hosts 文件中,以确保它仍然可以从 apple 获取更新。

  3. 启用 Web 服务并将所有设置保留为默认设置 - 注意 Web 服务正在使用的路径。

  4. 创建一个符号链接,用软件更新目录的位置替换 Web 服务的路径:

ln -Ffs /private/var/db/swupd/html /Library/Server/Web/Data/Sites/Default

这几乎让我以最少的努力解决了问题。

相关内容