此專案提供了基於 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