在上一篇:在VM裡建置rails專案(上) 已經成功將我們的 VM 環境建置完成,也可以使用 SSH key,在 MacOS 操作 VM Linux,接下來將開始安裝我們的 rails 專案。
安裝 Git
首先,先安裝 git 做為我們未來專案的版控。
sudo apt install git
查看版本號是否安裝成功。
git --version
將 git 設定在 global 裡。
git config --global user.name "yourname"
(在 “” 裡設定你的用戶名稱)
git config --global user.email "yourname@yourname.com"
(在 “” 裡設定你的用戶mail)
確認是否有設定成功。
cat ~/.gitconfig
將 Git 與 GitLab 做連接
建立 SSH key
ssh-keygen
開啟 SSH-pub key 並將其貼至 GitLab 做為遠端版控連線。
cat ~/.ssh/id_rsa.pub
User Settings / SSH keys ,貼至 GitLab。
確認是否有設定成功。
git status
git clone 你的專案
*補充: 每次在產生 SSH-KEY時,會有一對金鑰,分別是私鑰與公鑰,公鑰(public key)會放置在遠端(GitHub、GitLab、AWS等等),任何人都可以看到其內容,用於加密;另一個稱為私鑰(private key),只有擁有者才能看到,用於解密。
通過公鑰加密過的密文使用私鑰可以輕鬆解密,但根據公鑰來猜測私鑰卻十分困難。*
安裝 RVM 做為 Ruby 版控
RVM是什麼?
RVM 全名 Ruby Version Manager,是一個命令行工具,提供 Ruby 版本環境的管理和切換,簡單的說法就是 Ruby 版本控制器。
copy 官網上的安裝指令貼上 terminal。
\curl -sSL https://get.rvm.io | bash -s stable
發現缺少了 curl 因此無法使用此指令,安裝 curl 後,再次安裝 RVM。
sudo apt install curl
一樣會告知該安裝會使用掉你多少空間,確認並輸入
y
後,繼續安裝。
\curl -sSL https://get.rvm.io | bash -s stable
依提示安裝 GPG v2 key。
gpg2 --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BBB2D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
重新輸入 \curl -sSL https://get.rvm.io | bash -s stable
開啟新的 terminal 檢視所有 RVM 中可安裝的 Ruby 版本。
rvm list known
安裝 Ruby
sudo apt install ruby
確認一下 ruby 安裝後的版本。
ruby -v
因為在前面已經安裝了 RVM,接下來要安裝任何 Ruby 版本只要 rvm install 版本號
即可。
rvm install 2.1.0
確認是否有安裝成功。
rvm list
想移除某個版本時。
rvm uninstall 版本號
將該版本設定為預設,這樣之後每次開 terminal 就會自動幫你切換到該版本。
rvm use 2.1.0 --default
在 terminal 做偏好變更,才可以使用 rvm use 指令。
開啟新的 terminal 並再次嘗試。
rvm 2.1.0 --default
查詢 ruby 裝在哪。
which ruby
irb
irb 是一個互動的 Ruby 環境,可以讓我們練習使用 ruby 語法,做些簡單的指令操作。
安裝完成後,進入 irb 試著輸入 ruby 指令。
irb
安裝 Rails
在進行安裝 Rails 前,要先確認目前使用的 Ruby 版本號是否可支援。
如我現在要安裝的為 rails 4.1.7,那我的 ruby 版本就必須 >= 1.9.3 。
安裝 rails。
gem install rails -v 4.1.7
依提示需求再安裝 minitest。
gem install minitest -v 5.12.0
再次安裝 rails。
gem install rails -v 4.1.7
建立 rails 專案,rails new 專案名稱。
rails new ubuntu_rails
安裝完成後,切換到 rails 所存放的地方。
cd Desktop
cd ubuntu_rails
啟動 rails server。
rails s
依提示需求再安裝 node.js。
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt-get install -y nodejs
確認是否有安裝成功。
再次啟動 rails server。
rails s
接下來將是我自己在安裝 rails 4.1.7 版本時的一些 trial & errors。
目前我已經將遠端 GitLab 處的專案 clone 至我的桌面。
Bundler
Bundler 是一種通過追蹤和安裝所需的確切 Ruby 版本,為我們的 Ruby 專案提供一致的環境。 在執行 bundle install 時,會根據應用程式目錄中 Gemfile 的設定,檢查指定的 Gem 與相依套件是否已安裝,如果已安裝了該 Gem,就會顯示 Using,如果是新下載安裝的 Gem,就會顯示Installing。
bundle install
其中 install 可省略
啟用 ‘universe’ 元件。
安裝ruby bundler。
sudo apt install ruby-bundler
發現仍然無法順利安裝,這時可以先 update 再嘗試安裝。
sudo apt update
sudo apt install ruby-bundler
輸入
y
後繼續安裝。
檢查是否有安裝成功。
bundler -v
再次執行 bundle install 。
bundle
根據錯誤訊息,安裝gem mysql2。
gem install mysql2 -v '0.3.21'
權限不足,使用 sudo
來安裝。
sudo gem install mysql2 -v '0.3.21'
根據錯誤訊息,發現缺少了 ‘libmysqlclient-dev’,安裝它後再安裝 gem mysql2。
sudo apt-get install libmysqlclient-dev
gem install mysql -v '0.3.21'
再次執行 bundle
。
依提示安裝 digest-sha3。
gem install digest-sha3 -v '1.0.2'
看起來是 gem native extension 的錯誤。
bundle config build.digest-sha3 --with-cflags="-Wno-format-security"
> 來源
再次 bundle
。
安裝 database
先查看目前使用的版本。
dpkg -l | grep mysql
因為我在專案上要使用的是 mysql5.6,所以要先移除目前現有的。
sudo apt-get purge mysql*
再次確認是否有移除成功。
dpkg -l | grep mysql
確認已無其他版本號後,安裝 mysql5.6。
sudo add-apt-repository 'deb http://archive.ubuntu.com/ubuntu trusty universe'
sudo apt-get update
sudo apt install mysql-server-5.6 mysql-client-5.6
sudo chmod 777 /var/cache/app-info/xapian/default -R
設置 mysql root 密碼。
確認密碼。
設置完後,在 log 裡可以看到,安裝正在進行中。
確認是否有安裝完成。
啟動 mysql。
sudo /etc/init.d/mysql start
開啟 rails server。
mysql 的 password 有誤,在專案的 database.yml 裡的 password 處輸入mysql 所設置的密碼。
選擇 Database。
mysql -u root -p
查看有哪些 DB 可使用。
show databases
這裡選擇使用 mysql。
use mysql
查看這個 DB 裡有哪些tables。
show tables
退出 mysql 回到 rails 並建立剛剛選擇的資料庫。
rake db:create
rake db:migrate
Reference: