1 Kiti būdai sukonfigūruoti aplinką
Jei nenorite sukonfigūruoti "Rails" plėtros savo vietinėje mašinoje, galite naudoti "Codespaces", "VS Code Remote Plugin" arba "rails-dev-box". Sužinokite daugiau apie šias galimybes čia.
2 Vietinė plėtra
Jei norite plėtoti "Ruby on Rails" vietinėje mašinoje, žr. žemiau pateiktus žingsnius.
2.1 Įdiegti Git
"Ruby on Rails" naudoja "Git" šaltinio kodo kontrolės priemonę. Git pagrindinis puslapis turi diegimo instrukcijas. Yra įvairių interneto išteklių, kurie padės jums susipažinti su "Git".
2.2 Klonuoti "Ruby on Rails" saugyklą
Eikite į aplanką, kuriame norite atsisiųsti "Ruby on Rails" šaltinio kodą (jis sukurs savo "rails" poaplankį) ir paleiskite:
$ git clone https://github.com/rails/rails.git
$ cd rails
2.3 Įdiegti papildomas priemones ir paslaugas
Kai kurie "Rails" testai priklauso nuo papildomų priemonių, kurias reikia įdiegti prieš paleidžiant tuos konkretūs testus.
Čia pateikiamas kiekvienos gemo papildomų priklausomybių sąrašas:
- "Action Cable" priklauso nuo "Redis"
- "Active Record" priklauso nuo "SQLite3", "MySQL" ir "PostgreSQL"
- "Active Storage" priklauso nuo "Yarn" (papildomai "Yarn" priklauso nuo Node.js), "ImageMagick", "libvips", "FFmpeg", "muPDF", "Poppler" ir "macOS" taip pat nuo "XQuartz".
- "Active Support" priklauso nuo "memcached" ir "Redis"
- "Railties" priklauso nuo JavaScript vykdymo aplinkos, pvz., turėti įdiegtą Node.js.
Įdiekite visas paslaugas, kurias reikia tinkamai išbandyti visą jūsų kurtą gemą. Kaip įdiegti šias paslaugas "macOS", "Ubuntu", "Fedora/CentOS", "Arch Linux" ir "FreeBSD" yra išsamiai aprašyta žemiau.
PASTABA: "Redis" dokumentacija nerekomenduoja naudoti paketų tvarkytuvų, nes jie dažniausiai yra pasenusi. Įdiegimas iš šaltinio ir serverio paleidimas yra paprasti ir gerai aprašyti Redis dokumentacijoje.
PASTABA: "Active Record" testai turi sėkmingai baigtis bent jau su "MySQL", "PostgreSQL" ir "SQLite3". Jūsų pakeitimas bus atmestas, jei jis bus išbandytas tik su vienu adapteriu, nebent pakeitimas ir testai yra skirti konkrečiam adapteriui.
Žemiau pateikiamos instrukcijos, kaip įdiegti visus papildomus įrankius skirtingoms operacinėms sistemoms.
2.3.1 "macOS"
"macOS" galite naudoti Homebrew, kad įdiegtumėte visus papildomus įrankius.
Norėdami įdiegti visus, paleiskite:
$ brew bundle
Jums taip pat reikės paleisti kiekvieną įdiegtą paslaugą. Norėdami pamatyti visų galimų paslaugų sąrašą, paleiskite:
$ brew services list
Tada galite paleisti kiekvieną paslaugą atskirai taip:
$ brew services start mysql
Pakeiskite mysql
į norimos paleisti paslaugos pavadinimą.
2.3.1.1 Galimos problemos
Šiame skyriuje aprašomos galimos problemos, su kuriomis galite susidurti naudodami natyvias plėtinius "macOS", ypač kai diegiate "mysql2" gemą vietinėje plėtroje. Ši dokumentacija gali keistis ir gali būti neteisinga, kai "Apple" keičia plėtros aplinką "Rails".
Norėdami sukompiliuoti "mysql2" gemą "macOS", jums reikės šių dalykų:
- Įdiegtas
[email protected]
(neopenssl@3
) - "Ruby" sukonfigūruotas su
[email protected]
- Nustatyti kompiliatoriaus vėliavas "mysql2" paketo konfigūracijai.
Jei įdiegti abu [email protected]
ir openssl@3
, turėsite pranešti "Ruby", kad naudotų [email protected]
, kad "Rails" galėtų įtraukti "mysql2".
Savo .bash_profile
faile nustatykite PATH
ir RUBY_CONFIGURE_OPTS
, kad rodytų į [email protected]
:
export PATH="/usr/local/opt/[email protected]/bin:$PATH"
export RUBY_CONFIGURE_OPTS="--with-openssl-dir=$(brew --prefix [email protected])"
Savo ~/.bundle/config
faile nustatykite šiuos parametrus "mysql2". Įsitikinkite, kad ištrinate bet kokius kitus įrašus, susijusius su BUNDLE_BUILD__MYSQL2
:
BUNDLE_BUILD__MYSQL2: "--with-ldflags=-L/usr/local/opt/[email protected]/lib --with-cppflags=-L/usr/local/opt/[email protected]/include"
Nustatę šias vėliavas prieš diegiant "Ruby" ir įtraukiant "Rails", turėtumėte galėti paleisti savo vietinę "macOS" plėtros aplinką.
2.3.2 "Ubuntu"
Norėdami įdiegti visus, paleiskite:
$ 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
# Įdiegti "Yarn"
# Naudokite šią komandą, jei neturite "Node.js" įdiegto
$ curl --fail --silent --show-error --location https://deb.nodesource.com/setup_18.x | sudo -E bash -
$ sudo apt-get install -y nodejs
# Kai jau įdiegėte "Node.js", įdiekite "yarn" npm paketą
$ sudo npm install --global yarn
2.3.3 Fedora arba CentOS
Norint įdiegti viską, įvykdykite šias komandas:
$ 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
# Įdiekite Yarn
# Jei neturite įdiegto Node.js
$ curl --silent --location https://rpm.nodesource.com/setup_18.x | sudo bash -
$ sudo dnf install -y nodejs
# Kai įdiegėte Node.js, įdiekite yarn npm paketą
$ sudo npm install --global yarn
2.3.4 Arch Linux
Norint įdiegti viską, įvykdykite šias komandas:
$ 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
PASTABA: Jei naudojate Arch Linux, MySQL nebepalaikoma, todėl turėsite naudoti MariaDB (žr. šį pranešimą).
2.3.5 FreeBSD
Norint įdiegti viską, įvykdykite šias komandas:
$ sudo pkg install sqlite3 mysql80-client mysql80-server postgresql11-client postgresql11-server memcached imagemagick6 ffmpeg mupdf yarn libxml2 vips poppler-utils
# portmaster databases/redis
Arba įdiekite viską per ports (šie paketai yra rasti databases
aplanke).
PASTABA: Jei įvyksta problemų diegiant MySQL, žr. MySQL dokumentaciją.
2.3.6 Debian
Norint įdiegti visus priklausomybes, įvykdykite šią komandą:
$ 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
PASTABA: Jei naudojate Debian, MariaDB yra numatytasis MySQL serveris, todėl gali būti skirtumų.
2.4 Duomenų bazės konfigūracija
Yra keletas papildomų žingsnių, reikalingų konfigūruojant duomenų bazių variklius, kurie reikalingi veikiančių Active Record testų vykdymui.
PostgreSQL autentifikacija veikia kitaip. Norint sukonfigūruoti vystymo aplinką su savo vystymo paskyra, Linux ar BSD, tiesiog įvykdykite:
$ sudo -u postgres createuser --superuser $USER
ir macOS:
$ createuser --superuser $USER
PASTABA: MySQL sukurs naudotojus, kai bus sukuriamos duomenų bazės. Užduotis numato, kad jūsų naudotojas yra root
be slaptažodžio.
Tada, sukurkite testavimo duomenų bazes tiek MySQL, tiek PostgreSQL su:
$ cd activerecord
$ bundle exec rake db:create
Taip pat galite sukurti atskiras testavimo duomenų bazes kiekvienam duomenų bazių varikliui atskirai:
$ cd activerecord
$ bundle exec rake db:mysql:build
$ bundle exec rake db:postgresql:build
ir duomenų bazes galite ištrinti naudodami:
$ cd activerecord
$ bundle exec rake db:drop
PASTABA: Naudojant Rake užduotį sukurti testavimo duomenų bazes, užtikrinama, kad jos turės teisingą simbolių rinkinį ir lyginimą.
Jei naudojate kitą duomenų bazę, patikrinkite failą activerecord/test/config.yml
arba activerecord/test/config.example.yml
dėl numatytosios prisijungimo informacijos. Galite redaguoti activerecord/test/config.yml
, kad pateiktumėte skirtingus prisijungimo duomenis savo kompiuteryje, tačiau neturėtumėte siųsti jokių šių pakeitimų atgal į Rails.
2.5 Įdiekite JavaScript priklausomybes
Jei įdiegėte Yarn, turėsite įdiegti JavaScript priklausomybes:
$ yarn install
2.6 Įdiekite Gem priklausomybes
Gems yra įdiegiami su Bundler, kuris pagal numatymą yra pridedamas su Ruby.
Norėdami įdiegti Gemfile Rails, įvykdykite:
$ bundle install
Jei nereikia vykdyti Active Record testų, galite įvykdyti:
$ bundle install --without db
2.7 Prisidėkite prie Rails
Kai viskas sukonfigūruota, perskaitykite, kaip galite pradėti prisidėti.
Atsiliepimai
Jūs esate skatinami padėti pagerinti šio vadovo kokybę.
Prašome prisidėti, jei pastebite rašybos klaidų ar faktinių klaidų. Norėdami pradėti, galite perskaityti mūsų dokumentacijos prisidėjimo skyrių.
Taip pat gali būti nepilnos informacijos arba informacijos, kuri nėra atnaujinta. Prašome pridėti bet kokią trūkstamą dokumentaciją pagrindiniam. Patikrinkite Edge vadovus pirmiausia, ar problemas jau išspręsta arba ne pagrindinėje šakoje. Patikrinkite Ruby on Rails vadovų gaires dėl stiliaus ir konvencijų.
Jei dėl kokios nors priežasties pastebite kažką, ką reikia ištaisyti, bet negalite patys tai pataisyti, prašome pranešti apie problemą.
Ir galiausiai, bet ne mažiau svarbu, bet koks diskusijos dėl Ruby on Rails dokumentacijos yra labai laukiamos oficialiame Ruby on Rails forume.