Microsoft 提供免费的 Windows 10 虚拟机用于测试。在 Linux 和 MacOS 上工作的包维护人员可以使用它在 Windows 上测试他们的包。请参阅 说明,了解如何自动设置计算机以检查 R 包。
设置提供了使用 bash 的 SSH 访问,以便用户可以从他们首选的终端模拟器执行大多数任务。从源代码构建 R 和许多 R 包所需的命令行工具已预先安装。其他工具可通过 pacman 包管理器获得,包括例如 vim 编辑器。
说明显示了如何下载 R 和带有库的实验性 UCRT 工具链以构建 R 和 R 包。
详细信息
还可以使用远程桌面客户端通过图形界面登录计算机,该客户端可免费用于 Linux 和 MacOS。有一个用于传输文件的共享文件夹。
与例如 Docker 容器不同,这是一台用于交互式使用的普通计算机,其状态保存在(虚拟)硬盘上,该硬盘在虚拟机以及主机(Linux 或 macOS)计算机重新启动后仍能保留。可以创建/还原该状态的快照。
但是,不应在计算机上保存重要状态,因为测试的使用期限为 90 天。下载时请查看许可条款。
现在已在 Ubuntu 20.04 和 macOS 11.2.3 上测试了这些说明。
建议仅通过快速无计量连接安装计算机。预计下载量接近 10G,包括原始 VM 映像本身和工具链。
请参阅 说明 以开始。
内部
设置使用 vagrant 在 virtualbox 中配置(“预配”)和管理虚拟机。
预配包括
设置 SSH:允许传入连接,插入公钥以在不使用密码的情况下连接,在启动时启动 SSH 服务器
设置 RDP:允许传入连接,禁用 NLA 以允许较旧的客户端连接
安装 MSys2,包括 bash,以及 unzip、diffutils、make、winpty、rsync、texinfo、tar、texinfo-tex、zip、subversion、bison、moreutils、xz、patch
安装 Inno Setup 和 MikTeX
然后在 PowerShell 中实现各个预置步骤。Vagrant 使用 WinRM 协议与 VM 通信,该协议在此 VM 中默认启用。
限制
存在 90 天限制,但即使是 VM 背景中的说明也建议在到期后重新安装。
某些控制台应用程序无法在 SSH 中运行,包括 MikTeX。因此,无法从 SSH 连接构建 R 安装程序。但是,仍然可以构建 R 以及可能的大多数 R 包。
Windows 上的某些 R 操作默认使用图形界面。在 SSH 中工作时,有时可以禁用该功能,例如在安装包之前使用 options(menu.graphics=FALSE)
。
该机器的设置注重简单性,而非安全性。预期用途是在受信任的家用/办公网络中运行的笔记本电脑或单用户工作站,理想情况下机器上仍然有防火墙,用于测试和调试 R 包。有关详细信息,请参阅 Vagrantfile
中的注释。
此机器中的 Windows 10 版本非常旧,以至于 R 无法使用 UTF-8 作为本机编码。它仍然适用于使用 UCRT 工具链测试包,许多潜在问题与编码无关。此外,当前的 CRAN 检查也使用 Latin 1 编码运行。
参考
设置虚拟机以检查 R 包。 设置和使用 VM 的说明。包括 R 和工具链的实验性 UCRT 构建,但 [2] 中有更多详细信息。
操作方法:在 Windows 上的 R 中将 UTF-8 作为本机编码。 R 和工具链的实验性 UCRT 构建说明。