该项目提供了基于 MSYS2 工具链的 Windows 上 Ruby-2.4 及更高版本的安装程序。它是基于 MSYS1 的 RubyInstaller 的后继者,后者用于 Ruby-2.3 及更早版本。它根据 3 条款修改 BSD 许可证获得许可。
与旧的 RubyInstaller 相比,它不提供自己的 DevKit,而是利用 MSYS2 项目中丰富的 MINGW 库集。因此,在目标系统上安装后,它可以很好地集成到 MSYS2 中,为安装带有 C 扩展的 gem 提供构建和运行时环境。此更改以及更多更改记录在更改日志中。
非 Devkit 安装程序文件足以使用纯 Ruby gem 或 x64-mingw32 或 x86-mingw32 的胖二进制 gem。为了安装基于 C 的源 gem,建议使用 Devkit 安装程序版本。它将 MSYS2/MINGW 构建环境安装到包含常见构建工具和库的 ruby 目录中。
有些 gems 需要额外的软件包,可以通过pacman
安装。见下文。也可以从 https://msys2.github.io/ 手动安装 MSYS2,然后运行ridk install
以添加非默认但必需的开发工具。对于 Ruby 和 MSYS2 的无人值守安装,请参阅巧克力安装常见问题解答。
ridk
命令ridk
是一个 cmd/powershell 脚本,可用于安装 MSYS2 组件、发出pacman
等 MSYS 命令或设置环境变量以从运行的 shell 中使用 MSYS2 开发工具。
请参阅ridk help
以获取更多选项:
Usage:
C:/Ruby24-x64/bin/ridk.cmd [option]
Option:
install Install MSYS2 and MINGW dev tools
exec < command > Execute a command within MSYS2 context
enable Set environment variables for MSYS2
disable Unset environment variables for MSYS2
version Print RubyInstaller and MSYS2 versions
use Switch to a different ruby version
help | --help | - ? | / ? Display this help and exit
ridk enable
可用于在运行控制台上启用 MSYS2 开发工具。这使得sh
、 pacman
、 make
等可以在命令行上使用。请参阅 Wiki 以获取有关ridk
命令的更多说明。
基本 MSYS2 设置包括编译器和其他构建工具,但不包括某些 gem 需要作为其依赖项的库或 DLL。幸运的是,许多所需的库都可以通过 MSYS2 存储库获得。它们可以通过ridk exec pacman -S mingw-w64-x86_64-libraryname
安装,类似于Linux上的apt-get
。将 32 位 RubyInstaller 的前缀mingw-w64-x86_64
替换为mingw-w64-i686
。
例如,这些流行的 gem 可以像这样从源 gem 安装:
sqlite3
gem: ridk exec pacman -S mingw-w64-x86_64-sqlite3
gem install sqlite3 --platform ruby
nokogiri
gem: ridk exec pacman -S mingw-w64-x86_64-libxslt
gem install nokogiri --platform ruby -- --use-system-libraries
一些 gems 被正确标记为每个 pacman 安装依赖库。请参阅 wiki 如何将这样的标签添加到 gem。另请参阅常见问题解答以获取其他安装建议。
该存储库提供了构建 RubyInstaller 安装可执行文件和 7zip 文件的打包任务。它不编译任何源代码,而是使用 MSYS2-MINGW 存储库和 RubyInstaller2 pacman 存储库来下载二进制文件和依赖库。
每次推送到 github 存储库时,安装程序都会定期在 Github Actions 上构建。运行程序还执行安装程序并在其上运行所有 RubyInstaller 测试和 ruby-spec,以便我们收到有关重大更改的通知。除此之外,最新 ruby 开发快照的每日构建被编译并打包为 RubyInstaller 文件。可以从 github 版本下载。查看 wiki,了解如何在 CI 构建中使用 ruby-head 版本。
ridk install
安装安装了MSYS2 set PATH=%PATH% ; " c:Program Files (x86)Inno Setup 6 "
git clone https://github.com/larskanis/rubyinstaller2
cd rubyinstaller2
bundle install
rake -T
rake ri:ruby-3.0.5-x86-msvcrt:archive-7z
^ ^ ^ ^ ^- "archive-7z" => 7z archive of the rubyinstaller files
| | | | "installer-inno" => executable installer file
| | | '------- "msvcrt" => older type of C standard library
| | | "ucrt" => new type of C standard library
| | '------- "x86" => 32 bit ruby and MSYS2 version
| | "x64" => 64 bit version
| '------ "x.x.x" => ruby version to build
| "head" => latest development snapshot of ruby
'------ "ri" => RubyInstaller without Devkit
"ri-msys" => RubyInstaller with MSYS2 based Devkit
packages/ri-msys/recipes/installer-inno/rubyinstaller-devkit--.exe
packages/ri/recipes/archive-7z/rubyinstaller--.7z