Advertisement
saasbook

configure_image.sh

Aug 15th, 2013
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 7.85 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-rails -v 1.2.1
  50. sudo gem install cucumber-rails-training-wheels -v 1.0.0
  51. # sudo gem install cucumber -v 1.0.6 # installed by cucumber-rails as dependency
  52. sudo gem install nokogiri -v 1.5.0
  53. sudo gem install capybara -v 1.1.1
  54. sudo gem install rcov -v 0.9.10
  55. sudo gem install haml -v 3.1.3
  56. sudo gem install sqlite3 -v 1.3.4
  57. sudo gem install uglifier -v 1.0.3
  58. sudo gem install heroku -v 2.8.0
  59. sudo gem install execjs
  60. sudo gem install flog
  61. sudo gem install flay
  62. sudo gem install reek
  63. sudo gem install rails_best_practices
  64. # sudo gem install churn
  65. # sudo gem install chronic -v=0.3.0
  66. # sudo gem install metric_fu
  67. sudo gem install bundler
  68. sudo gem install haml
  69. sudo gem install simplecov
  70. sudo gem install factory_girl
  71. sudo gem install ruby-tmdb
  72. sudo gem install taps
  73. sudo gem install thinking-sphinx
  74. sudo gem install ruby-debug19
  75.  
  76. # install addional rails-related applications
  77. cd ~/
  78. sudo apt-get install -y sphinxsearch
  79. sudo apt-get install -y postgresql
  80. sudo apt-get install -y postgresql-server-dev-8.4
  81.  
  82. # # install aptana
  83. # cd ~/
  84. # wget http://download.aptana.com/studio3/standalone/3.0.7/linux/Aptana_Studio_3_Setup_Linux_x86_3.0.7.zip
  85. # unzip Aptana_Studio_3_Setup_Linux_x86_3.0.7.zip
  86. # rm Aptana_Studio_3_Setup_Linux_x86_3.0.7.zip
  87. # cd ~/Desktop
  88. # ln -s ~/Aptana\ Studio\ 3/AptanaStudio3 AptanaStudio3
  89.  
  90. # install vim and rails.vim (http://biodegradablegeek.com/2007/12/using-vim-as-a-complete-ruby-on-rails-ide/)
  91. cd ~/
  92. sudo apt-get install -y vim
  93. echo "filetype on  \" Automatically detect file types." >> .vimrc
  94. echo "set nocompatible  \" no vi compatibility." >> .vimrc
  95. echo "" >> .vimrc
  96. echo "\" Add recently accessed projects menu (project plugin)" >> .vimrc
  97. echo "set viminfo^=\!" >> .vimrc
  98. echo "" >> .vimrc
  99. echo "\" Minibuffer Explorer Settings" >> .vimrc
  100. echo "let g:miniBufExplMapWindowNavVim = 1" >> .vimrc
  101. echo "let g:miniBufExplMapWindowNavArrows = 1" >> .vimrc
  102. echo "let g:miniBufExplMapCTabSwitchBufs = 1" >> .vimrc
  103. echo "let g:miniBufExplModSelTarget = 1" >> .vimrc
  104. echo "" >> .vimrc
  105. echo "\" alt+n or alt+p to navigate between entries in QuickFix" >> .vimrc
  106. echo "map <silent> <m-p> :cp <cr>" >> .vimrc
  107. echo "map <silent> <m-n> :cn <cr>" >> .vimrc
  108. echo "" >> .vimrc
  109. echo "\" Change which file opens after executing :Rails command" >> .vimrc
  110. echo "let g:rails_default_file='config/database.yml'" >> .vimrc
  111. echo "" >> .vimrc
  112. echo "syntax enable" >> .vimrc
  113. echo "" >> .vimrc
  114. echo "set cf  \" Enable error files & error jumping." >> .vimrc
  115. echo "set clipboard+=unnamed  \" Yanks go on clipboard instead." >> .vimrc
  116. echo "set history=256  \" Number of things to remember in history." >> .vimrc
  117. echo "set autowrite  \" Writes on make/shell commands" >> .vimrc
  118. echo "set ruler  \" Ruler on" >> .vimrc
  119. echo "set nu  \" Line numbers on" >> .vimrc
  120. echo "set nowrap  \" Line wrapping off" >> .vimrc
  121. echo "set timeoutlen=250  \" Time to wait after ESC (default causes an annoying delay)" >> .vimrc
  122. echo "\" colorscheme vividchalk  \" Uncomment this to set a default theme" >> .vimrc
  123. echo "" >> .vimrc
  124. echo "\" Formatting" >> .vimrc
  125. echo "set ts=2  \" Tabs are 2 spaces" >> .vimrc
  126. echo "set bs=2  \" Backspace over everything in insert mode" >> .vimrc
  127. echo "set shiftwidth=2  \" Tabs under smart indent" >> .vimrc
  128. echo "set nocp incsearch" >> .vimrc
  129. echo "set cinoptions=:0,p0,t0" >> .vimrc
  130. echo "set cinwords=if,else,while,do,for,switch,case" >> .vimrc
  131. echo "set formatoptions=tcqr" >> .vimrc
  132. echo "set cindent" >> .vimrc
  133. echo "set autoindent" >> .vimrc
  134. echo "set smarttab" >> .vimrc
  135. echo "set expandtab" >> .vimrc
  136. echo "" >> .vimrc
  137. echo "\" Visual" >> .vimrc
  138. echo "set showmatch  \" Show matching brackets." >> .vimrc
  139. echo "set mat=5  \" Bracket blinking." >> .vimrc
  140. echo "set list" >> .vimrc
  141. echo "\" Show $ at end of line and trailing space as ~" >> .vimrc
  142. echo "set lcs=tab:\ \ ,eol:$,trail:~,extends:>,precedes:<" >> .vimrc
  143. echo "set novisualbell  \" No blinking ." >> .vimrc
  144. echo "set noerrorbells  \" No noise." >> .vimrc
  145. echo "set laststatus=2  \" Always show status line." >> .vimrc
  146. echo "" >> .vimrc
  147. echo "\" gvim specific" >> .vimrc
  148. echo "set mousehide  \" Hide mouse after chars typed" >> .vimrc
  149. echo "set mouse=a  \" Mouse in all modesc" >> .vimrc
  150. mkdir .vim
  151. cd .vim
  152. wget http://www.vim.org/scripts/download_script.php?src_id=16429
  153. mv d* rails.zip
  154. unzip rails.zip
  155. rm -rf rails.zip
  156. # to allow :help rails, start up vim and type :helptags ~/.vim/doc
  157.  
  158. # install emacs and plugins (http://appsintheopen.com/articles/1-setting-up-emacs-for-rails-development/part/7-emacs-ruby-foo)
  159. cd ~/
  160. sudo apt-get install -y emacs
  161. wget https://github.com/downloads/magit/magit/magit-1.1.1.tar.gz
  162. tar -zxvf magit-1.1.1.tar.gz
  163. cd magit-1.1.1/
  164. make
  165. sudo make install
  166. echo "(require 'magit)" >> .emacs
  167. cd ~/
  168. rm -rf magit-1.1.1/ magit-1.1.1.tar.gz
  169. cd /usr/share/emacs
  170. sudo mkdir includes
  171. cd includes
  172. sudo wget http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/misc/ruby-mode.el
  173. sudo wget http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/misc/ruby-electric.el
  174. cd ~/
  175. echo "" >> .emacs
  176. echo "; directory to put various el files into" >> .emacs
  177. echo "; (add-to-list 'load-path \"/usr/share/emacs/includes\")" >> .emacs
  178. echo "" >> .emacs
  179. echo "(global-font-lock-mode 1)" >> .emacs
  180. echo "(setq font-lock-maximum-decoration t)" >> .emacs
  181. echo "" >> .emacs
  182. echo "; loads ruby mode when a .rb file is opened." >> .emacs
  183. echo "(autoload 'ruby-mode \"ruby-mode\" \"Major mode for editing ruby scripts.\" t)" >> .emacs
  184. echo "(setq auto-mode-alist  (cons '(\".rb$\" . ruby-mode) auto-mode-alist))" >> .emacs
  185. echo "(setq auto-mode-alist  (cons '(\".rhtml$\" . html-mode) auto-mode-alist))" >> .emacs
  186. echo "" >> .emacs
  187. echo "(add-hook 'ruby-mode-hook" >> .emacs
  188. echo "          (lambda()" >> .emacs
  189. echo "            (add-hook 'local-write-file-hooks" >> .emacs
  190. echo "                      '(lambda()" >> .emacs
  191. echo "                         (save-excursion" >> .emacs
  192. echo "                           (untabify (point-min) (point-max))" >> .emacs
  193. echo "                           (delete-trailing-whitespace)" >> .emacs
  194. echo "                           )))" >> .emacs
  195. echo "            (set (make-local-variable 'indent-tabs-mode) 'nil)" >> .emacs
  196. echo "            (set (make-local-variable 'tab-width) 2)" >> .emacs
  197. echo "            (imenu-add-to-menubar \"IMENU\")" >> .emacs
  198. echo "            (define-key ruby-mode-map \"\C-m\" 'newline-and-indent)" >> .emacs
  199. echo "            (require 'ruby-electric)" >> .emacs
  200. echo "            (ruby-electric-mode t)" >> .emacs
  201. echo "            ))" >> .emacs
  202.  
  203. # turn off update popups
  204. cd ~/
  205. gconftool -s --type bool /apps/update-notifier/auto_launch false
  206. gconftool -s --type bool /apps/update-notifier/no_show_notifications true
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement