Advertisement
saasbook

configure_image.sh

Feb 12th, 2012
2,556
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 8.20 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. # this script configures a VirtualBox VM to work with following book versions:
  4. # 0.8.0, 0.8.1
  5. # run as default user with . configure_image.sh
  6. # you'll need to provide root password ('password') once at startup
  7. # please note this script is fragile, as public download urls may change
  8.  
  9. cd ~/
  10. sudo apt-get update
  11. # sudo apt-get upgrade -y
  12.  
  13. # install some basic programs
  14. sudo apt-get install -y sqlite3 libsqlite3-dev libssl-dev openssl zlib1g zlib1g-dev zlibc
  15. sudo apt-get install -y libxslt-dev libxml2-dev
  16. sudo apt-get install -y git
  17. sudo apt-get install -y default-jre
  18. sudo apt-get install -y g++
  19. sudo apt-get install -y build-essential
  20. sudo apt-get install -y texinfo
  21. sudo apt-get install -y compizconfig-settings-manager
  22. sudo apt-get install -y chromium-browser
  23. sudo apt-get install -y libreadline6-dev
  24.  
  25. # install ruby
  26. cd ~/
  27. wget http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.2-p290.tar.gz
  28. tar -zxvf ruby-1.9.2-p290.tar.gz
  29. cd ruby-1.9.2-p290
  30. ./configure
  31. make
  32. sudo make install
  33. cd ..
  34. rm -rf ruby-1.9.2-p290/ ruby-1.9.2-p290.tar.gz
  35.  
  36. # install rubygems
  37. cd ~/
  38. wget http://production.cf.rubygems.org/rubygems/rubygems-1.8.10.tgz
  39. tar -zxvf rubygems-1.8.10.tgz
  40. cd rubygems-1.8.10
  41. sudo ruby setup.rb
  42. cd ..
  43. rm -rf rubygems-1.8.10/ rubygems-1.8.10.tgz
  44.  
  45. # isntall a bunch of gems
  46. cd ~/
  47. sudo gem install rails -v 3.1.0
  48. sudo gem install rspec-rails -v 2.6.1
  49. sudo gem install cucumber -v 1.0.6
  50. sudo gem install nokogiri -v 1.5.0
  51. sudo gem install capybara -v 1.1.1
  52. sudo gem install rcov -v 0.9.10
  53. sudo gem install haml -v 3.1.3
  54. sudo gem install sqlite3 -v 1.3.4
  55. sudo gem install uglifier -v 1.0.3
  56. sudo gem install heroku -v 2.8.0
  57. sudo gem install execjs
  58. sudo gem install therubyracer
  59. sudo gem install flog
  60. sudo gem install flay
  61. sudo gem install reek
  62. sudo gem install rails_best_practices
  63. # sudo gem install churn
  64. # sudo gem install chronic -v=0.3.0
  65. # sudo gem install metric_fu
  66. sudo gem install bundler
  67. sudo gem install haml
  68. sudo gem install simplecov
  69. sudo gem install factory_girl
  70. sudo gem install ruby-tmdb
  71. sudo gem install taps
  72. sudo gem install thinking-sphinx
  73. sudo gem install ruby-debug19
  74.  
  75. # install addional rails-related applications
  76. cd ~/
  77. sudo apt-get install -y sphinxsearch
  78. sudo apt-get install -y postgresql
  79. sudo apt-get install -y postgresql-server-dev-8.4
  80.  
  81. # # install aptana
  82. # cd ~/
  83. # wget http://download.aptana.com/studio3/standalone/3.0.7/linux/Aptana_Studio_3_Setup_Linux_x86_3.0.7.zip
  84. # unzip Aptana_Studio_3_Setup_Linux_x86_3.0.7.zip
  85. # rm Aptana_Studio_3_Setup_Linux_x86_3.0.7.zip
  86. # cd ~/Desktop
  87. # ln -s ~/Aptana\ Studio\ 3/AptanaStudio3 AptanaStudio3
  88.  
  89. # install vim and rails.vim (http://biodegradablegeek.com/2007/12/using-vim-as-a-complete-ruby-on-rails-ide/)
  90. cd ~/
  91. sudo apt-get install -y vim
  92. echo "filetype on  \" Automatically detect file types." >> .vimrc
  93. echo "set nocompatible  \" no vi compatibility." >> .vimrc
  94. echo "" >> .vimrc
  95. echo "\" Add recently accessed projects menu (project plugin)" >> .vimrc
  96. echo "set viminfo^=\!" >> .vimrc
  97. echo "" >> .vimrc
  98. echo "\" Minibuffer Explorer Settings" >> .vimrc
  99. echo "let g:miniBufExplMapWindowNavVim = 1" >> .vimrc
  100. echo "let g:miniBufExplMapWindowNavArrows = 1" >> .vimrc
  101. echo "let g:miniBufExplMapCTabSwitchBufs = 1" >> .vimrc
  102. echo "let g:miniBufExplModSelTarget = 1" >> .vimrc
  103. echo "" >> .vimrc
  104. echo "\" alt+n or alt+p to navigate between entries in QuickFix" >> .vimrc
  105. echo "map <silent> <m-p> :cp <cr>" >> .vimrc
  106. echo "map <silent> <m-n> :cn <cr>" >> .vimrc
  107. echo "" >> .vimrc
  108. echo "\" Change which file opens after executing :Rails command" >> .vimrc
  109. echo "let g:rails_default_file='config/database.yml'" >> .vimrc
  110. echo "" >> .vimrc
  111. echo "syntax enable" >> .vimrc
  112. echo "" >> .vimrc
  113. echo "set cf  \" Enable error files & error jumping." >> .vimrc
  114. echo "set clipboard+=unnamed  \" Yanks go on clipboard instead." >> .vimrc
  115. echo "set history=256  \" Number of things to remember in history." >> .vimrc
  116. echo "set autowrite  \" Writes on make/shell commands" >> .vimrc
  117. echo "set ruler  \" Ruler on" >> .vimrc
  118. echo "set nu  \" Line numbers on" >> .vimrc
  119. echo "set nowrap  \" Line wrapping off" >> .vimrc
  120. echo "set timeoutlen=250  \" Time to wait after ESC (default causes an annoying delay)" >> .vimrc
  121. echo "\" colorscheme vividchalk  \" Uncomment this to set a default theme" >> .vimrc
  122. echo "" >> .vimrc
  123. echo "\" Formatting" >> .vimrc
  124. echo "set ts=2  \" Tabs are 2 spaces" >> .vimrc
  125. echo "set bs=2  \" Backspace over everything in insert mode" >> .vimrc
  126. echo "set shiftwidth=2  \" Tabs under smart indent" >> .vimrc
  127. echo "set nocp incsearch" >> .vimrc
  128. echo "set cinoptions=:0,p0,t0" >> .vimrc
  129. echo "set cinwords=if,else,while,do,for,switch,case" >> .vimrc
  130. echo "set formatoptions=tcqr" >> .vimrc
  131. echo "set cindent" >> .vimrc
  132. echo "set autoindent" >> .vimrc
  133. echo "set smarttab" >> .vimrc
  134. echo "set expandtab" >> .vimrc
  135. echo "" >> .vimrc
  136. echo "\" Visual" >> .vimrc
  137. echo "set showmatch  \" Show matching brackets." >> .vimrc
  138. echo "set mat=5  \" Bracket blinking." >> .vimrc
  139. echo "set list" >> .vimrc
  140. echo "\" Show $ at end of line and trailing space as ~" >> .vimrc
  141. echo "set lcs=tab:\ \ ,eol:$,trail:~,extends:>,precedes:<" >> .vimrc
  142. echo "set novisualbell  \" No blinking ." >> .vimrc
  143. echo "set noerrorbells  \" No noise." >> .vimrc
  144. echo "set laststatus=2  \" Always show status line." >> .vimrc
  145. echo "" >> .vimrc
  146. echo "\" gvim specific" >> .vimrc
  147. echo "set mousehide  \" Hide mouse after chars typed" >> .vimrc
  148. echo "set mouse=a  \" Mouse in all modesc" >> .vimrc
  149. mkdir .vim
  150. cd .vim
  151. wget http://www.vim.org/scripts/download_script.php?src_id=16429
  152. mv d* rails.zip
  153. unzip rails.zip
  154. rm -rf rails.zip
  155. # to allow :help rails, start up vim and type :helptags ~/.vim/doc
  156.  
  157. # install emacs and plugins (http://appsintheopen.com/articles/1-setting-up-emacs-for-rails-development/part/7-emacs-ruby-foo)
  158. cd ~/
  159. sudo apt-get install -y emacs
  160. wget https://github.com/downloads/magit/magit/magit-1.1.1.tar.gz
  161. tar -zxvf magit-1.1.1.tar.gz
  162. cd magit-1.1.1/
  163. make
  164. sudo make install
  165. echo "(require 'magit)" >> .emacs
  166. cd ~/
  167. rm -rf magit-1.1.1/ magit-1.1.1.tar.gz
  168. cd /usr/share/emacs
  169. sudo mkdir includes
  170. cd includes
  171. sudo wget http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/misc/ruby-mode.el
  172. sudo wget http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/misc/ruby-electric.el
  173. cd ~/
  174. echo "" >> .emacs
  175. echo "; directory to put various el files into" >> .emacs
  176. echo "; (add-to-list 'load-path \"/usr/share/emacs/includes\")" >> .emacs
  177. echo "" >> .emacs
  178. echo "(global-font-lock-mode 1)" >> .emacs
  179. echo "(setq font-lock-maximum-decoration t)" >> .emacs
  180. echo "" >> .emacs
  181. echo "; loads ruby mode when a .rb file is opened." >> .emacs
  182. echo "(autoload 'ruby-mode \"ruby-mode\" \"Major mode for editing ruby scripts.\" t)" >> .emacs
  183. echo "(setq auto-mode-alist  (cons '(\".rb$\" . ruby-mode) auto-mode-alist))" >> .emacs
  184. echo "(setq auto-mode-alist  (cons '(\".rhtml$\" . html-mode) auto-mode-alist))" >> .emacs
  185. echo "" >> .emacs
  186. echo "(add-hook 'ruby-mode-hook" >> .emacs
  187. echo "          (lambda()" >> .emacs
  188. echo "            (add-hook 'local-write-file-hooks" >> .emacs
  189. echo "                      '(lambda()" >> .emacs
  190. echo "                         (save-excursion" >> .emacs
  191. echo "                           (untabify (point-min) (point-max))" >> .emacs
  192. echo "                           (delete-trailing-whitespace)" >> .emacs
  193. echo "                           )))" >> .emacs
  194. echo "            (set (make-local-variable 'indent-tabs-mode) 'nil)" >> .emacs
  195. echo "            (set (make-local-variable 'tab-width) 2)" >> .emacs
  196. echo "            (imenu-add-to-menubar \"IMENU\")" >> .emacs
  197. echo "            (define-key ruby-mode-map \"\C-m\" 'newline-and-indent)" >> .emacs
  198. echo "            (require 'ruby-electric)" >> .emacs
  199. echo "            (ruby-electric-mode t)" >> .emacs
  200. echo "            ))" >> .emacs
  201.  
  202. # rails hack to add therubyracer to the default gemfile
  203. cd /usr/local/lib/ruby/gems/1.9.1/gems/railties-3.1.0/lib/rails
  204. sudo chmod 777 generators/
  205. cd generators/
  206. sudo chmod 777 app_base.rb
  207. # this adds gem 'therubyracer' to the default gem file, by it after gem 'uglifier'
  208. sed '/gem '"'uglifier'"'/ a\            gem '"'therubyracer'"'' app_base.rb > app_base2.rb
  209. mv app_base2.rb app_base.rb
  210. sudo chmod 644 app_base.rb
  211. cd ..
  212. sudo chmod 755 generators
  213. cd ~/Documents
  214.  
  215. # turn off update popups
  216. cd ~/
  217. gconftool -s --type bool /apps/update-notifier/auto_launch false
  218. gconftool -s --type bool /apps/update-notifier/no_show_notifications true
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement