โปรเจ็กต์นี้จัดเตรียมตัวติดตั้งสำหรับ Ruby-2.4 และใหม่กว่าบน Windows ที่ใช้ Toolchain MSYS2 มันเป็นตัวต่อจาก RubyInstaller ที่ใช้ MSYS1 ซึ่งใช้สำหรับ Ruby-2.3 และเก่ากว่า ได้รับอนุญาตภายใต้ใบอนุญาต BSD ดัดแปลง 3 ข้อ
ตรงกันข้ามกับ RubyInstaller แบบเก่า ตรงที่ไม่มี DevKit ของตัวเอง แต่ใช้ชุดไลบรารี MINGW ที่หลากหลายจากโปรเจ็กต์ MSYS2 ดังนั้นจึงรวมเข้ากับ MSYS2 ได้ดีหลังการติดตั้งบนระบบเป้าหมายเพื่อจัดเตรียมสภาพแวดล้อมบิลด์และรันไทม์สำหรับการติดตั้ง Gem ด้วยส่วนขยาย C การเปลี่ยนแปลงนี้และการเปลี่ยนแปลงเพิ่มเติมได้รับการบันทึกไว้ใน CHANGELOG
ไฟล์ตัวติดตั้งที่ไม่ใช่ Devkit นั้นเพียงพอที่จะใช้ Ruby gems ล้วนๆ หรือ fat binary gems สำหรับ x64-mingw32 หรือ x86-mingw32 ในการติดตั้งซอร์สเจมที่ใช้ C ขอแนะนำให้ใช้เวอร์ชันตัวติดตั้ง Devkit จะติดตั้งสภาพแวดล้อมบิลด์ MSYS2/MINGW ลงในไดเร็กทอรี Ruby ที่จัดส่งเครื่องมือและไลบรารีบิลด์ทั่วไป
Gem บางตัวจำเป็นต้องมีแพ็คเกจเพิ่มเติม ซึ่งสามารถติดตั้งได้ต่อ pacman
ดูด้านล่าง นอกจากนี้ยังสามารถติดตั้ง MSYS2 ด้วยตนเองได้จาก https://msys2.github.io/ และเรียกใช้ ridk install
หลังจากนั้นเพื่อเพิ่มเครื่องมือที่ไม่ใช่ค่าเริ่มต้น แต่จำเป็นต้องมีเครื่องมือการพัฒนา สำหรับการติดตั้ง Ruby และ MSYS2 แบบอัตโนมัติ โปรดดูคำถามที่พบบ่อยเกี่ยวกับการติดตั้งแบบช็อกโกแลต
ridk
ridk
เป็นสคริปต์ cmd/powershell ซึ่งสามารถใช้เพื่อติดตั้งส่วนประกอบ MSYS2 เพื่อออกคำสั่ง MSYS เช่น pacman
หรือเพื่อตั้งค่าตัวแปรสภาพแวดล้อมสำหรับการใช้เครื่องมือพัฒนา 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 พื้นฐานประกอบด้วยคอมไพเลอร์และเครื่องมือสร้างอื่นๆ แต่ไม่รวมไลบรารีหรือ DLL ที่บาง gem จำเป็นต้องใช้ในการขึ้นต่อกัน โชคดีที่มีไลบรารีที่จำเป็นจำนวนมากผ่านทางที่เก็บ MSYS2 สามารถติดตั้งได้ต่อ ridk exec pacman -S mingw-w64-x86_64-libraryname
คล้ายกับ apt-get
บน Linux แลกเปลี่ยนคำนำหน้า mingw-w64-x86_64
โดย mingw-w64-i686
สำหรับ RubyInstaller 32 บิต
ตัวอย่างเช่น อัญมณียอดนิยมเหล่านี้สามารถติดตั้งได้จากแหล่งที่มาของอัญมณี:
sqlite3
gem: ridk exec pacman -S mingw-w64-x86_64-sqlite3
gem install sqlite3 --platform ruby
nokogiri
: ridk exec pacman -S mingw-w64-x86_64-libxslt
gem install nokogiri --platform ruby -- --use-system-libraries
อัญมณีบางตัวมีการติดป้ายกำกับอย่างถูกต้องเพื่อติดตั้งไลบรารีที่ขึ้นต่อกันต่อ pacman ดูวิกิวิธีการเพิ่มป้ายกำกับดังกล่าวให้กับอัญมณี โปรดดูคำถามที่พบบ่อยสำหรับคำแนะนำในการติดตั้งเพิ่มเติม
พื้นที่เก็บข้อมูลนี้จัดเตรียมงานแพ็กเกจเพื่อสร้างไฟล์ปฏิบัติการการตั้งค่า RubyInstaller และไฟล์ 7zip มันไม่ได้คอมไพล์แหล่งที่มาใดๆ แต่ใช้พื้นที่เก็บข้อมูล MSYS2-MINGW และที่เก็บ RubyInstaller2 pacman เพื่อดาวน์โหลดไบนารีและไลบรารีที่ต้องพึ่งพา
ตัวติดตั้งถูกสร้างขึ้นเป็นประจำบน Github Actions สำหรับการพุชไปยังที่เก็บ Github แต่ละครั้ง ตัวรันยังรันโปรแกรมติดตั้งและรันการทดสอบ RubyInstaller ทั้งหมดและ Ruby-spec บนตัวติดตั้ง เพื่อที่เราจะได้รับแจ้งเกี่ยวกับการเปลี่ยนแปลงที่ไม่สมบูรณ์ นอกจากนี้ บิลด์รายวันของสแน็ปช็อตการพัฒนา Ruby ล่าสุดยังได้รับการรวบรวมและจัดทำแพ็กเกจเป็นไฟล์ RubyInstaller สามารถดาวน์โหลดได้จาก GitHub รุ่นต่างๆ ตรวจสอบวิกิเกี่ยวกับวิธีใช้เวอร์ชัน ruby-head สำหรับบิลด์ CI ของคุณ
ridk install
พร้อมตัวเลือกเริ่มต้น 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