Что происходит, когда мы набираем «rails» или «ruby» с терминала? - PullRequest
0 голосов
/ 23 марта 2020

Завершите вопрос новичка, но мне было интересно, что произойдет, когда я наберу такие вещи, как rails g draft:resource ..., в терминал. Я знаю конечный результат, но я не понимаю, почему он работает.

Другими словами, что именно я делаю? Я вызываю программу рельсов? (если это так, где эта программа и почему я могу вызвать ее из любого места без CD?)

Очень похоже, почему я тоже могу сделать ruby -version? Какие изменения в моем компьютере после установки Ruby и Rails, так что мой терминал теперь понимает эти команды? И что именно выполняется?

Спасибо!

1 Ответ

2 голосов
/ 23 марта 2020

было интересно, что происходит, когда я набираю такие вещи, как rails g draft: resource ... в терминал

Вызов rails вызывает интерфейс командной строки (CLI), предоставляемый пакет программного обеспечения с открытым исходным кодом rails, который вы установили из https://guides.rubygems.org/, вероятно, с помощью инструмента командной строки под названием gem (т. е. gem install rails).

g, который является псевдоним слова generate является подкомандой этого CLI, которая генерирует некоторый код на основе следующих параметров (draft:resource, et c.). Это просто другая часть программного пакета rails. Вы можете проверить исходный код здесь: https://github.com/rails/rails/blob/master/railties/lib/rails/commands.rb#L6.

почему я тоже могу сделать ruby -версию?

В какой-то момент был установлен ruby (обычно с помощью rvm или rbenv). Из своего терминала вы можете понять, какую программу вызывает ваша команда, набрав command -v или which перед вашей командой и углубившись оттуда.

$ which ruby
/Users/avinashmoondra/.rbenv/shims/ruby
$ which rails
/Users/avinashmoondra/.rbenv/shims/rails

Например, это эквивалент:

$ /Users/avinashmoondra/.rbenv/shims/ruby -v
ruby 2.6.4p104 (2019-08-28 revision 67798) [x86_64-darwin18]
$ ruby -v
ruby 2.6.4p104 (2019-08-28 revision 67798) [x86_64-darwin18]

Ruby (и SQLite3) требуется для установки Rails, см .: https://guides.rubyonrails.org/getting_started.html#installing -rails . Если вы используете rbenv , менеджер версий ruby, вы получите результаты, аналогичные приведенным выше.

Что изменилось на моем компьютере после установки Ruby и Rails, например что мой терминал теперь понимает эти команды?

Это объясняется в документации по rbenv, здесь: https://github.com/rbenv/rbenv#how -it-works . Сводка: На высоком уровне rbenv перехватывает команды Ruby с использованием исполняемых файлов shim, введенных в вашу переменную PATH, определяет, какая версия Ruby была указана вашим приложением, и передает ваши команды для правильной установки Ruby.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...