我希望自动执行以下操作:
根据我的理解,这方面的工具是Rake和Thor,但是,我应该使用哪一个?
在我看来,耙子更具事实性和受欢迎程度。我听过人们推荐Thor。这些如何在破败中相互支持?
答案 0 :(得分:98)
Rake是一个特定于项目的通用构建脚本工具。换句话说,您将rakefile放入项目文件夹和项目的源代码控制中,并且可以在该rakefile中创建,构建和执行特定于项目的其他自动化任务。 Rake需要运行rakefile。
Thor是一个通用命令行脚本工具,可以很容易地在许多项目中重复使用脚本,并像您建议的那样进行项目设置等。 Thor允许您“安装”可执行脚本,您可以从系统的任何位置调用该脚本,类似于调用“ruby
”,“gem
”或“rake
”命令行。但是,Thor的脚本更适合通用的跨应用程序自动化,因为Thor脚本不依赖于项目特定文件夹中的文件。 Thor脚本是整个脚本,打包并安装在任何地方都可以重复使用。
根据您的要求,您最好使用Thor,因为您可以将脚本安装在一个位置,并使其在您的系统上的任何位置都可以使用。您不会受到Rake文件所在位置或类似内容的限制。
顺便说一句,Rails 3使用Thor几乎所有非项目特定的东西。您仍然拥有Rake文件,但仍然可以运行“rake db:migrate
”或“rake test:units
”之类的内容。 Thor用于诸如“rails new ...
”,“rails server
”和“rails generate ...
”之类的东西。在Rails 3中使用Thor和Rake可以很好地说明每种工具的最佳位置适合的。
答案 1 :(得分:13)
为了设置Ubuntu杂务,Chef可能是更好的选择。
从他们的网站:
Chef是一个开源系统集成框架,旨在为整个基础架构带来服务器配置管理的优势。
它是用Ruby编写的,有大量的厨师食谱/烹饪书。 Chef将负责设置Ubuntu并安装软件包,服务器等。
我不知道您是否正在使用虚拟机,但Vagrant将设置虚拟机,然后使用Chef进行配置。
答案 2 :(得分:0)
答案 3 :(得分:0)
这里有一些重要的事情需要提及。
http://guides.rubyonrails.org/generators.html在其第8节“应用程序模板”中。
你可以执行git命令,选择gems,capify project。
您还可以执行系统命令以满足您的最后一点:Upgrade Ubuntu, install all basic packages through apt-get
。