1 วิธีการตั้งค่าสภาพแวดล้อมอื่น ๆ
หากคุณไม่ต้องการตั้งค่า Rails สำหรับการพัฒนาบนเครื่องของคุณเอง คุณสามารถใช้ Codespaces, VS Code Remote Plugin หรือ rails-dev-box ได้ ดูข้อมูลเพิ่มเติมเกี่ยวกับตัวเลือกเหล่านี้ได้ที่นี่ (contributing_to_ruby_on_rails.html#setting-up-a-development-environment).
2 การพัฒนาในเครื่องที่ติดตั้ง
หากคุณต้องการพัฒนา Ruby on Rails ในเครื่องของคุณเอง ดูขั้นตอนด้านล่าง
2.1 ติดตั้ง Git
Ruby on Rails ใช้ Git สำหรับการควบคุมรหัสซอร์ส คุณสามารถดาวน์โหลด Git ได้ที่ Git homepage มีคำแนะนำในการติดตั้งออนไลน์หลายแห่งที่คุณสามารถศึกษาได้
2.2 คลังรหัสซอร์ส Ruby on Rails
ไปที่โฟลเดอร์ที่คุณต้องการดาวน์โหลดรหัสซอร์ส Ruby on Rails (มันจะสร้างโฟลเดอร์ย่อย rails
ของตัวเอง) และเรียกใช้:
$ git clone https://github.com/rails/rails.git
$ cd rails
2.3 ติดตั้งเครื่องมือและบริการเพิ่มเติม
บางการทดสอบของ Rails ขึ้นอยู่กับเครื่องมือเพิ่มเติมที่คุณต้องติดตั้งก่อนการเรียกใช้การทดสอบเฉพาะนั้น
นี่คือรายการของเครื่องมือเพิ่มเติมของแต่ละ gem:
- Action Cable ขึ้นอยู่กับ Redis
- Active Record ขึ้นอยู่กับ SQLite3, MySQL และ PostgreSQL
- Active Storage ขึ้นอยู่กับ Yarn (นอกจากนี้ยังขึ้นอยู่กับ Yarn ที่ขึ้นอยู่กับ Node.js), ImageMagick, libvips, FFmpeg, muPDF, Poppler และบน macOS ยังมี XQuartz
- Active Support ขึ้นอยู่กับ memcached และ Redis
- Railties ขึ้นอยู่กับสภาพแวดล้อมการเรียกใช้งาน JavaScript เช่นการติดตั้ง Node.js
ติดตั้งบริการทั้งหมดที่คุณต้องการทดสอบ gem ทั้งหมดที่คุณจะทำการเปลี่ยนแปลง วิธีการติดตั้งบริการเหล่านี้สำหรับ macOS, Ubuntu, Fedora/CentOS, Arch Linux และ FreeBSD อธิบายด้านล่าง
หมายเหตุ: เอกสาร Redis ไม่แนะนำการติดตั้งด้วยตัวจัดการแพคเกจเนื่องจากมักจะเป็นเวอร์ชันเก่า การติดตั้งจากแหล่งที่มาและการเริ่มเซิร์ฟเวอร์เป็นเรื่องง่ายและมีเอกสารอย่างละเอียดใน เอกสาร Redis
หมายเหตุ: การทดสอบ Active Record ต้อง ผ่าน MySQL, PostgreSQL และ SQLite3 อย่างน้อย แพทช์ของคุณจะถูกปฏิเสธหากทดสอบกับแอดเพตเดียว ยกเว้นว่าการเปลี่ยนและการทดสอบเป็นเฉพาะกับแอดเพต
ด้านล่างคุณสามารถหาคำแนะนำในการติดตั้งเครื่องมือเพิ่มเติมสำหรับระบบปฏิบัติการต่าง ๆ
2.3.1 macOS
ใน macOS คุณสามารถใช้ Homebrew เพื่อติดตั้งเครื่องมือเพิ่มเติมทั้งหมด
ในการติดตั้งทั้งหมดให้รัน:
$ brew bundle
คุณจะต้องเริ่มต้นบริการที่ติดตั้งแต่ละรายการ ให้รันคำสั่งนี้เพื่อแสดงรายการบริการทั้งหมด:
$ brew services list
คุณสามารถเริ่มต้นบริการแต่ละรายการได้หนึ่งตัวต่อหนึ่งตัวดังนี้:
$ brew services start mysql
แทน mysql
ด้วยชื่อของบริการที่คุณต้องการเริ่มต้น
2.3.1.1 ปัญหาที่เป็นไปได้
ส่วนนี้อธิบายปัญหาที่เป็นไปได้บางอย่างที่คุณอาจพบกับส่วนขยายภายในบน macOS โดยเฉพาะเมื่อรวม mysql2 gem ในการพัฒนาในเครื่องท้องถิ่น ข้อมูลเอกสารนี้อาจเปลี่ยนแปลงและอาจไม่ถูกต้องเนื่องจาก Apple ทำการเปลี่ยนแปลงสภาพแวดล้อมนักพัฒนาบน Rails
เพื่อคอมไพล์ gem mysql2
บน macOS คุณจะต้องมีสิ่งต่อไปนี้:
- ติดตั้ง
[email protected]
(ไม่ใช่openssl@3
) - Ruby ที่คอมไพล์ด้วย
[email protected]
- ตั้งค่าตัวแปรสำหรับคอมไพล์ในการกำหนดค่าของ
mysql2
หากติดตั้งทั้ง [email protected]
และ openssl@3
คุณจะต้องบอกให้ Ruby ใช้ [email protected]
เพื่อให้ Rails สามารถรวม mysql2
ได้
ใน .bash_profile
ของคุณตั้งค่า PATH
และ RUBY_CONFIGURE_OPTS
เพื่อชี้ไปที่ [email protected]
:
export PATH="/usr/local/opt/[email protected]/bin:$PATH"
export RUBY_CONFIGURE_OPTS="--with-openssl-dir=$(brew --prefix [email protected])"
ใน ~/.bundle/config
ของคุณตั้งค่าต่อไปนี้สำหรับ mysql2
โปรดแน่ใจว่าคุณลบรายการอื่น ๆ สำหรับ BUNDLE_BUILD__MYSQL2
:
BUNDLE_BUILD__MYSQL2: "--with-ldflags=-L/usr/local/opt/[email protected]/lib --with-cppflags=-L/usr/local/opt/[email protected]/include"
โดยตั้งค่าพวกนี้ก่อนการติดตั้ง Ruby และการรวม Rails คุณควรสามารถใช้งานสภาพแวดล้อมการพัฒนา macOS ในเครื่องของคุณได้
2.3.2 Ubuntu
ในการติดตั้งทั้งหมดให้รัน:
$ sudo apt-get update
$ sudo apt-get install sqlite3 libsqlite3-dev mysql-server libmysqlclient-dev postgresql postgresql-client postgresql-contrib libpq-dev redis-server memcached imagemagick ffmpeg mupdf mupdf-tools libxml2-dev libvips42 poppler-utils
# ติดตั้ง Yarn
# ใช้คำสั่งนี้หากคุณยังไม่ได้ติดตั้ง Node.js
$ curl --fail --silent --show-error --location https://deb.nodesource.com/setup_18.x | sudo -E bash -
$ sudo apt-get install -y nodejs
# เมื่อคุณติดตั้ง Node.js เสร็จแล้ว ให้ติดตั้งแพ็คเกจ npm ของ yarn
$ sudo npm install --global yarn
2.3.3 Fedora หรือ CentOS
ในการติดตั้งทั้งหมดให้ใช้คำสั่งต่อไปนี้:
$ sudo dnf install sqlite-devel sqlite-libs mysql-server mysql-devel postgresql-server postgresql-devel redis memcached imagemagick ffmpeg mupdf libxml2-devel vips poppler-utils
# ติดตั้ง Yarn
# ใช้คำสั่งนี้หากคุณยังไม่ได้ติดตั้ง Node.js
$ curl --silent --location https://rpm.nodesource.com/setup_18.x | sudo bash -
$ sudo dnf install -y nodejs
# เมื่อคุณติดตั้ง Node.js เสร็จสิ้น ให้ติดตั้งแพ็กเกจ npm ของ yarn
$ sudo npm install --global yarn
2.3.4 Arch Linux
ในการติดตั้งทั้งหมดให้ใช้คำสั่งต่อไปนี้:
$ sudo pacman -S sqlite mariadb libmariadbclient mariadb-clients postgresql postgresql-libs redis memcached imagemagick ffmpeg mupdf mupdf-tools poppler yarn libxml2 libvips poppler
$ sudo mariadb-install-db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
$ sudo systemctl start redis mariadb memcached
หมายเหตุ: หากคุณใช้ Arch Linux จะไม่รองรับ MySQL อีกต่อไป ดังนั้นคุณจะต้องใช้ MariaDB แทน (ดู ประกาศนี้).
2.3.5 FreeBSD
ในการติดตั้งทั้งหมดให้ใช้คำสั่งต่อไปนี้:
$ sudo pkg install sqlite3 mysql80-client mysql80-server postgresql11-client postgresql11-server memcached imagemagick6 ffmpeg mupdf yarn libxml2 vips poppler-utils
# portmaster databases/redis
หรือติดตั้งทั้งหมดผ่านทาง ports (แพ็กเกจเหล่านี้จะอยู่ในโฟลเดอร์ databases
).
หมายเหตุ: หากคุณพบปัญหาในระหว่างการติดตั้ง MySQL โปรดดู เอกสาร MySQL.
2.3.6 Debian
ในการติดตั้งทั้งหมดให้ใช้คำสั่งต่อไปนี้:
$ sudo apt-get install sqlite3 libsqlite3-dev default-mysql-server default-libmysqlclient-dev postgresql postgresql-client postgresql-contrib libpq-dev redis-server memcached imagemagick ffmpeg mupdf mupdf-tools libxml2-dev libvips42 poppler-utils
หมายเหตุ: หากคุณใช้ Debian จะใช้ MariaDB เป็นเซิร์ฟเวอร์ MySQL เริ่มต้น ดังนั้นคุณควรทราบว่าอาจมีความแตกต่าง.
2.4 การกำหนดค่าฐานข้อมูล
มีขั้นตอนเพิ่มเติมสำหรับการกำหนดค่าเครื่องมือฐานข้อมูลที่จำเป็นสำหรับการทดสอบ Active Record.
การตรวจสอบสิทธิ์การเข้าถึงของ PostgreSQL ทำงานแตกต่างกัน ในการตั้งค่าสภาพแวดล้อมการพัฒนาด้วยบัญชีการพัฒนาของคุณ บน Linux หรือ BSD คุณเพียงแค่เรียกใช้:
$ sudo -u postgres createuser --superuser $USER
และสำหรับ macOS:
$ createuser --superuser $USER
หมายเหตุ: MySQL จะสร้างผู้ใช้เมื่อสร้างฐานข้อมูล งานนี้ถือว่าผู้ใช้ของคุณคือ root
โดยไม่มีรหัสผ่าน.
จากนั้นคุณต้องสร้างฐานข้อมูลทดสอบสำหรับ MySQL และ PostgreSQL ด้วยคำสั่ง:
$ cd activerecord
$ bundle exec rake db:create
คุณยังสามารถสร้างฐานข้อมูลทดสอบสำหรับแต่ละเครื่องมือฐานข้อมูลโดยแยกกันได้:
$ cd activerecord
$ bundle exec rake db:mysql:build
$ bundle exec rake db:postgresql:build
และคุณสามารถลบฐานข้อมูลได้โดยใช้:
$ cd activerecord
$ bundle exec rake db:drop
หมายเหตุ: การใช้งานงาน Rake เพื่อสร้างฐานข้อมูลทดสอบจะตรวจสอบให้แน่ใจว่ามีชุดอักขระและการจัดเรียงที่ถูกต้อง.
หากคุณใช้เครื่องมือฐานข้อมูลอื่น ๆ โปรดตรวจสอบไฟล์ activerecord/test/config.yml
หรือ activerecord/test/config.example.yml
เพื่อดูข้อมูลการเชื่อมต่อเริ่มต้น คุณสามารถแก้ไข activerecord/test/config.yml
เพื่อให้มีข้อมูลรับรองที่แตกต่างกันบนเครื่องของคุณ แต่คุณไม่ควรอัปเดตการเปลี่ยนแปลงเหล่านั้นกลับไปยัง Rails.
2.5 ติดตั้ง JavaScript Dependencies
หากคุณติดตั้ง Yarn คุณจะต้องติดตั้ง JavaScript dependencies ดังนี้:
$ yarn install
2.6 ติดตั้ง Gem Dependencies
Gems จะถูกติดตั้งด้วย Bundler ซึ่งจะมาพร้อมกับ Ruby เป็นค่าเริ่มต้น.
ในการติดตั้ง Gemfile สำหรับ Rails ให้ใช้คำสั่งต่อไปนี้:
$ bundle install
หากคุณไม่ต้องการเรียกใช้งาน Active Record tests คุณสามารถใช้คำสั่งต่อไปนี้ได้:
$ bundle install --without db
2.7 สนับสนุน Rails
หลังจากที่คุณตั้งค่าทุกอย่างแล้ว อ่านวิธีการเริ่มต้นการ สนับสนุน.
ข้อเสนอแนะ
คุณสามารถช่วยปรับปรุงคุณภาพของคู่มือนี้ได้
กรุณาช่วยเพิ่มเติมหากพบข้อผิดพลาดหรือข้อผิดพลาดทางความจริง เพื่อเริ่มต้นคุณสามารถอ่านส่วน การสนับสนุนเอกสาร ของเราได้
คุณอาจพบเนื้อหาที่ไม่สมบูรณ์หรือเนื้อหาที่ไม่ได้อัปเดต กรุณาเพิ่มเอกสารที่ขาดหายไปสำหรับเนื้อหาหลัก โปรดตรวจสอบ Edge Guides ก่อนเพื่อตรวจสอบ ว่าปัญหาได้รับการแก้ไขหรือไม่ในสาขาหลัก ตรวจสอบ คู่มือแนวทาง Ruby on Rails เพื่อดูรูปแบบและกฎเกณฑ์
หากคุณพบข้อผิดพลาดแต่ไม่สามารถแก้ไขได้เอง กรุณา เปิดปัญหา.
และสุดท้าย การสนทนาใด ๆ เกี่ยวกับ Ruby on Rails เอกสารยินดีต้อนรับที่สุดใน เว็บบอร์ดอย่างเป็นทางการของ Ruby on Rails.