相信對多數接觸過Rails的開發者來說,gemfile 是閉上眼也可以短時間就找到檔案位置,就因為開發者常常需要安裝套件,gemfile 便是不可或缺的。

簡單來說,gemfile 是用來描述所有 gem 套件的依存性並讓 rails 知道哪個gem需要安裝、安裝的版本是什麼。

symbol1

第一行 source ‘https://rubygems.org’ 就是通知 rails 去這個網址下載 gem

再仔細看會發現 每一個 gem 套件後面都有 奇怪的符號及號碼

symbol1
使用最新的“穩定”版本
symbol1
使用大於或是等於 1.1.0 的版本
symbol1
使用 3.0.5 跟 3.2 之間的版本
symbol1
使用 5.2.3版本以上,但5.3以下(不包括5.3)的最新版本

其實這些標示及號碼是版本之間的關係,以上圖來說:版本號碼 ( 5.2.3 ) 所代表的是 (主要版號、次要版號、修訂版號)。

主要版號的改變通常是重大功能調整,很可能不會向下相容,但通常不會是短時間內就常常發生。

次要版號通常是新功能的推出,向下相容的機會較高

修訂版號則是bugs的修正,幾乎都會向下相容

另外一個需要注意的是: gem 在 gemfile 的位置

symbol1
這裡的 gem 會在開發及測試環境使用,但上線時不會用
symbol1
只有在開發環境下才會使用
symbol1
只有在測試環境下才會使用