Какие шаги выполняются после того, как вы говорите «rake install»? - PullRequest
3 голосов
/ 12 июня 2009

Я хотел бы установить плагин, но боюсь, что он собирается установить много ненужных вещей. Я хотел бы взглянуть на любой файл rake, в котором содержатся инструкции по установке, и удалить все ненужное.

Я считаю, что это Rakefile. Но я не уверен, что происходит, когда rake смотрит на rakefile - выполняет ли он весь rakefile или только те части rakefile, которые определены как относящиеся к этой процедуре «установки»?

Ответы [ 3 ]

3 голосов
/ 12 июня 2009

файл rake - это набор задач, когда вы вызываете rake с аргументом (в данном случае install), который выполняет задачу. (Это похоже на муравей, если вы пришли с Java)

Таким образом, нет, rake не выполняет весь rakefile при вызове «rake + task», а только выбранную задачу. Обратите внимание, что задачи могут иметь зависимости (например, «тестовая» задача может зависеть от других предыдущих задач, таких как создание некоторых папок и прочего для выполнения тестов).

Наконец, руководство пользователя rake, на которое указывают другие пользователи, полезно, но я рекомендую прочитать более приятное здесь -> Учебник Ruby on Rails Rake .

1 голос
/ 12 июня 2009

Rake настроен так же, как Make в том смысле, что Rakefile состоит из цели и зависимостей . Это отличается от обычного сценария ruby ​​тем, что Rake запускается с запрашиваемой цели и рекурсивно выполняет свои зависимости перед выполнением самой цели.

Итак, установка может выглядеть так:

task :install => :stage do 
    # stuff to do
end

Здесь ваша цель - задача install, и она зависит от другой задачи, называемой stage.

Чтобы выполнить install, Rake должен сначала выполнить зависимости stage (если есть), затем stage, а затем, наконец, install. Так что нет, вы не выполняете весь файл, его достаточно для безопасного выполнения запрошенной вами цели.

Rake также поддерживает файловые цели:

file 'foo.html' => 'bar.xml' do |t|
    # Build foo.html from bar.xml, however that is done
end

Если вы знаете Make, это выглядит знакомым. Сначала Rake проверяет, зависит ли bar.xml от чего-либо, и если да, то выполняет это. Затем, если bar.xml новее, чем foo.html, Rake выполняет эту файловую задачу. Если foo.html новее, то Rake предполагает, что он уже построен, и пропускает его.

Более подробно, руководство пользователя Rake - хорошее место для начала, если вы хотите узнать, что делает Rake.

0 голосов
/ 12 июня 2009

Зачем плагину устанавливать что-то "ненужное"?

Однако если предположить, что ваши опасения оправданы, не могли бы вы установить плагин, провести расследование, а затем, если он не удовлетворен, вернуться к предустановленной версии с использованием системы контроля версий? Если вы не используете управление исходным кодом, это может быть идеальным поводом для начала ...

...