① 如何安裝Ruby和RubyGems
如何安裝 Ruby 和 RubyGems
Tags: 教程rubyvmcGemfile Last Updated: 2012-09-28
以下章節介紹關於如何在 Windows 和各種 Linux 計算機上安裝 Ruby 和 RubyGems 的基本信息。
Windows
下載和安裝 Windows 的 Ruby 安裝程序。該安裝程序中已經包括 RubyGems。 您在隨後安裝和使用 vmc 時請務必使用支持 Ruby 的命令提示符窗口。您可以通過 Windows「開始」菜單訪問此命令提示符(「所有程序」> Ruby <版本> >「使用 Ruby 啟動命令提示符」)。 最後,通過以下 Ruby 命令提示符更新 RubyGems: prompt> gem update --system
對 Windows Gemfile 的支持
安裝 Ruby 後,請閱讀 Cloud Foundry 上的 Ruby 應用程序中的說明,以了解關於推送應用程序和使用 Gemfile 的詳細信息 Windows 用戶需注意以下問題:
在 Windows 機器上生成 Gemfile.lock 時,其中包含的 gem 會採用 Windows 特定的版本。 mysql2、thin 和 pg 等 gem 版本的最後包含有「x86-mingw32」。 例如,在 Windows 機器上使用以下 Gemfile 運行 bundle install 時: gem 『sinatra』 gem 『mysql2』 gem 『json』
將生成以下 Gemfile.lock 文件: GEM
remote: http://rubygems.org/ specs:
json (1.7.3)
mysql2 (0.3.11-x86-mingw32) rack (1.4.1)
rack-protection (1.2.0) rack
sinatra (1.3.2)
rack (~> 1.3, >= 1.3.6) rack-protection (~> 1.2) tilt (~> 1.3, >= 1.3.3) tilt (1.3.3)
PLATFORMS
x86-mingw32
DEPENDENCIES json mysql2 sinatra
現在,Cloud Foundry 將能夠可靠安裝這類 gem 而不必修改 Gemfile.lock
Mac OS X
Mac OS X 的 10.5 和更高版本出廠時已經安裝了 Ruby 和 RubyGems。 如果您正在使用較早版本的 Mac OS,請先下載和安裝最新版本的 Ruby,然後再安裝 RubyGems。
Ubuntu
在終端上用 apt-get 命令行工具安裝 Ruby 和 RubyGems 時的步驟如下: 1. 安裝整個 Ruby 包和 RubyGems:
prompt$ sudo apt-get install ruby-full rubygems
有關 sudo 命令的任何必要的身份驗證憑據,請咨詢您的系統管理員。 2. 通過測試以確保您的路徑中有 gem 命令: prompt$ which gem
如未找到該命令,請相應的更新 PATH 變數。例如,可使用以下命令行更新您的 .bashrc 文件:
export PATH=$PATH:/var/lib/gems/1.8/bin 3. 更新 RubyGems: Ubuntu 10.04
prompt$ sudo gem install rubygems-update
prompt$ sudo /var/lib/gems/1.8/bin/update_rubygems Ubuntu 11.10
prompt$ sudo su -
prompt# export REALLY_GEM_UPDATE_SYSTEM=true prompt# gem update --system prompt# exit
RedHat/Fedora
在終端上用 yum 命令行工具安裝 Ruby 和 RubyGems 時的步驟如下: 1. 安裝 Ruby:
prompt$ sudo yum install ruby
2. 如果您正在使用 RedHat Enterprise Linux 6,請可選 登錄 Red Hat Network (RHN) 啟用您主機的通道。 3. 安裝 RubyGems:
prompt$ sudo yum install rubygems
Centos
在終端上用 yum 命令行工具安裝 Ruby 和 RubyGems 時的步驟如下: 1. 安裝基本的 Ruby 包: prompt$ yum install -y ruby 2. 安裝其他 Ruby 包和文檔:
prompt$ yum install -y ruby-devel ruby-docs ruby-ri ruby-rdoc 3. 安裝 RubyGems:
② Ruby Gems不能連接到國內鏡像,怎麼回事
由於國內網路原因(你懂的),導致rubygems.org存放在 Amazon S3 上面的資源文件間歇性連接失敗。所以你會與遇到gem install rack或bundle install的時候半天沒有響應,具體可以用gem install rails -V來查看執行過程。
這是一個完整 rubygems.org 鏡像,你可以用此代替官方版本,同步頻率目前為15分鍾一次以保證盡量與官方服務同步。
如何使用?
$gemsources--addhttps://ruby.taobao.org/--removehttps://rubygems.org/
$gemsources-l
***CURRENTSOURCES***
https://ruby.taobao.org
# 請確保只有 ruby.taobao.org
$geminstallrails
如果你使用 Gemfile 和 Bundle (例如:Rails 項目)
你可以用 Bundler 的Gem 源代碼鏡像命令。
$bundleconfigmirror.https://rubygems.orghttps://ruby.taobao.org
這樣你不用改你的 Gemfile 的 source。
source'https://rubygems.org/'
gem'rails','4.1.0'
...
③ 細說Ruby工程的Bundle以及怎麼加快bundle install
細說Ruby工程的Bundle以及如何加快bundle install
做過Ruby項目的人可能有過我一樣的感受,rubygems.org在中國的訪問太慢了,每次我們bundle install都要等老長時間,而我們通過瀏覽器去下載對應的gems文件時卻速度刷刷的。。。 為什麼會出現這樣的情況呢? 明明我們在Gemfile中寫的是:
source ""
好了,既然bundle install很慢,那我就去下載gem文件下來到本地,然後運行:
gem install /path/to/gems/***.gem
結果發現,有些gem文件安裝速度很快,有些bundle安裝很慢。 為啥呢? 我們又如何去避免這樣的痛苦呢?
好,那下面我就先來詳細說明一下ruby的bundle機制。
首先說一下Gemfile文件,Gemfile就是用來描述你當前ruby工程需要依賴的插件bundle,好比在java的插件工程,當前工程會依賴哪些其他插件,依賴的插件有版本區別。比如下面就是我的一個簡單ruby工程的Gemfile文件內容:
source ""
gem "rspec", "~> 2.7.0"
gem "rake", "~> 0.9.2.2"
第一行說明我bundle下載的伺服器
第3行和第4行說明我當前工程需要依賴rspec插件和rake插件
"~> 2.7.0"表示需要對於的版本好為 >= 2.7.0 而且 <= 2.8.0
在運行調用代碼之前都需要先bundle install好對於的插件bundle
但是寫了Gemfile就需要安裝bundler插件,這個完全可以通過下面的命令來完成
gem install /path/to/gem/bundler-version.gem
(先下載bundler gem文件到local)
好了,安裝好了bundler,就可以執行bundle install了。
但是每次都執行bundle install都很慢很慢,讓我無法承受。怎麼辦?
下載到本地然後gem install,發現如果插件有依賴的話,還是同樣很慢,因為它會自動訪問伺服器去下載需要依賴的插件。既然我本地可以通過瀏覽器直接下載下來我需要的bundle,能否直接利用到本地的? 答案是可以的。
我們完全可以搭建一個本地的gem mirror伺服器,而且非常簡單。
首先,下載好所有的gem文件(其實就是bundle文件),注意依賴插件也必須准備好,放在本地某個目錄中。 然後在這個目錄中執行下面命令:
gem generate_index -d /path/to/your/gemfiles/
cd /path/to/your/gemfiles/
gem server
然後修改你的Gemfile的source,改成如下:
source ""
然後運行bundle install,看到的結果一定是讓你激動的效果~
最後,建議每個ruby工程目錄中增加一個.rvmrc文件,這個文件就是用來指定你該工程使用的ruby版本,已經bundle安裝目錄和cache目錄。.rvmrc的內容只有一句話:
rvm --create use ruby-1.9.2@myprojectname
然後你每次進到工程目錄種後都會看到自動切換到相應版本的ruby提示信息。
注意,第一次設置後,需要重新安裝bundler以及bundle install,原因可以自己想一下。
另外,每次修改Gemfile時,都需要bundle install一下,這個時候不會安裝所有的bundle,因為上次bundle install的時候會生成一個Gemfile.lock文件,告訴bundler哪些bundle已經安裝了,而且依賴關系也知道了。 這次只會安裝新增的bundle
鏈接:
1. Creating a RubyGems Mirror With HTTP Basic Authentication
2. Creating your own RubyGem mirror
3. Bundler說明
④ 如何安裝Ruby和RubyGems
如何安裝Ruby和RubyGems
以下各節提供在Windows和Linux計算機上安裝Ruby和RubyGems的各種基本信息。
Windows
下載並安裝Ruby Installer for Windows.安裝程序已經包含了RubyGems。
請確保當你安裝和使用vmc時候使用帶Ruby功能的命令提示符窗口,從Windows的「開始」菜單中的「所有程序」→「Ruby<VERSION>→啟動命令提示符使用Ruby"。
最後,從Ruby命令提示符更新RubyGems
prompt> gem update --system
Windows Gemfiles支持
一旦你安裝了Ruby,你可以按照說明來部署app和使用Gemfile,部署Ruby應用到Cloud Foundry
Windows用戶要注意以下幾點:
當Windows機器上生成Gemfile.lock文件,它往往包含與Windows匹配特定版本的gems,例如mysql2,thin,PG含有「-X86-mingw32的」的後綴。
例如,在Windows機器上運行包安裝用的Gemfile,看起來像這樣:
gem 'sinatra'
gem 'mysql2'
gem 'json'
結果是Gemfile.lock看起來如下:
GEM
remote: http://rubygems.org/
specs:
json (1.7.3)
mysql2 (0.3.11-x86-mingw32)
rack (1.4.1)
rack-protection (1.2.0)
rack
sinatra (1.3.2)
rack (~> 1.3, >= 1.3.6)
rack-protection (~> 1.2)
tilt (~> 1.3, >= 1.3.3)
tilt (1.3.3)
PLATFORMS
x86-mingw32
DEPENDENCIES
json
mysql2
sinatra
Cloud Foundry能夠正確地安裝這些gems,而不需要修改你的Gemfile.lock
⑤ 在 Rails 3 中 Gemfile 中設置的 gem 是怎麼被 Rails 應用找到並使用的呢
在config/boot.rb里
require 'bundler/setup'
⑥ ruby大版本升級已經安裝的gem包怎麼辦
不知道你是怎麼升級的,如果是直接安裝新的版本的話,基本只能重新安裝gem了因為ruby gem是按ruby版本來存儲gem信息的。如果你有gemfile直接bundle install就好了。
⑦ 安裝rails的最簡便的方法是不是:從網上下載個gemfile,gemfile.lock文件,然後用bundle install 就可以了
當然不是,那些已經裝了rails的才可以。
而且你要理解bundle install的作用,它只是檢查你gemfile定義的gem的版本
若沒有會自動聯網安裝,若本機已有,則改寫gemfile.lock文件,將版本信息寫入。
一般你安裝了ruby之後,就可以使用 gem install rails -v3.0.3 就可以了,-v後面加版本號。
如果你是在windows下的就更加簡單了,直接去下載個railsinstaller就行了,自己網路一下就有了
不建議那樣做而已,,一般會出現問題的。
⑧ WINXP下rake aborted cannot load such file -mysql求教懂ruby on rails的大神
mysql:activerecord-mysql-adapter
mysql2:activerecord-mysql2-adapter
以上的gem包有裝嗎?沒的話裝起來試試。。。
別忘了在GemFile文件裡面加上gem 'mysql'
而activerecord-mysql2-adapter這個gem注意不要加到GemFile裡面
⑨ 求助ruby問題:bundle install 返回DL is deprecated, please use fiddle Could not locate Gemfile
http://..com/question/1732387996060930387.html
你這里出錯是安裝json這個庫的時候出錯了,要解決的話需要安裝devkit
⑩ 細說Ruby工程的Bundle以及怎麼加快bundle install
首先,下載好所有的gem文件(其實就是bundle文件),注意依賴插件也必須准備好,放在本地某個目錄中。 然後在這個目錄中執行下面命令:
gem generate_index -d /path/to/your/gemfiles/
cd /path/to/your/gemfiles/
gem server
然後修改你的Gemfile的source,改成如下:
source "http://0.0.0.0:8808"
然後運行bundle install,看到的結果一定是讓你激動的效果~
最後,建議每個ruby工程目錄中增加一個.rvmrc文件,這個文件就是用來指定你該工程使用的ruby版本,已經bundle安裝目錄和cache目錄。.rvmrc的內容只有一句話:
rvm --create use ruby-1.9.2@myprojectname
然後你每次進到工程目錄種後都會看到自動切換到相應版本的ruby提示信息。
注意,第一次設置後,需要重新安裝bundler以及bundle install,原因可以自己想一下。
另外,每次修改Gemfile時,都需要bundle install一下,這個時候不會安裝所有的bundle,因為上次bundle install的時候會生成一個Gemfile.lock文件,告訴bundler哪些bundle已經安裝了,而且依賴關系也知道了。 這次只會安裝新增的bundle