Ruby on rails 在你说“以后,要遵循哪些步骤?”;“耙装”吗;?

Ruby on rails 在你说“以后,要遵循哪些步骤?”;“耙装”吗;?,ruby-on-rails,ruby,installation,rake,Ruby On Rails,Ruby,Installation,Rake,我想安装一个插件,但我担心它会安装很多不必要的东西。我想看看rake从安装说明中获取的任何文件,并删除任何不必要的内容 我相信这就是耙子。但我不确定当rake查看rakefile时会发生什么-它是执行整个rakefile还是只执行指定为与此“安装”过程相关的rakefile的一部分?rake的设置非常类似于rakefile由目标和依赖项组成。这与常规ruby脚本不同,因为Rake从您请求的目标开始,并在执行目标之前递归执行其依赖项 因此,安装可能如下所示: task :install =>

我想安装一个插件,但我担心它会安装很多不必要的东西。我想看看rake从安装说明中获取的任何文件,并删除任何不必要的内容

我相信这就是耙子。但我不确定当rake查看rakefile时会发生什么-它是执行整个rakefile还是只执行指定为与此“安装”过程相关的rakefile的一部分?

rake的设置非常类似于rakefile由目标和依赖项组成。这与常规ruby脚本不同,因为Rake从您请求的目标开始,并在执行目标之前递归执行其依赖项

因此,安装可能如下所示:

task :install => :stage do 
    # stuff to do
end
这里,您的目标是
安装
任务,它依赖于另一个名为
阶段
的任务

要执行
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的功能,可以从中开始。

当您使用参数(在本例中为install)调用Rake时,Rake文件是任务的集合,该参数就是要执行的任务。(如果您来自Java,则与ant类似)

因此,不,当您调用“rake+task”时,rake不会执行整个rakefile,而只执行所选的任务。请注意,任务可能具有依赖性(例如,“测试”任务可能依赖于以前的其他任务,例如为测试运行创建一些文件夹和内容)


最后,其他用户指出的rake用户指南是有用的,但我建议您在这里读一本更有趣的书->。

为什么插件会安装一些“不必要的”东西


假设你的担心是合理的,那么,你能不能不安装插件,进行调查,然后,如果不满意,使用你的源代码管理系统恢复到预安装的版本?如果您不使用源代码管理,这可能是开始…的完美借口。

此外,如果您执行“rake安装-干运行”,您将看到rake将执行哪些任务,而不实际执行任何处理。我本来打算编写相同的任务依赖性示例,但后来我想。。。ruby中的“编译”:D