2014-02-11 31 views
0

我知道有這樣幾個問題,但他們似乎沒有解決我的問題。 我有一個腳本,我想運行 - my_script.rb 我正在使用ruby-2.0.0-p353rubygems 2.2.2 我已經安裝它通過rvm。當開關用我定製的寶石,gem env說:要求:無法加載這樣的文件 - mysql2

RubyGems Environment: 
    - RUBYGEMS VERSION: 2.2.2 
    - RUBY VERSION: 2.0.0 (2013-11-22 patchlevel 353) [x86_64-linux] 

我my_script.rb使用:

#!/usr/bin/env ruby 
# -*- coding: utf-8 -*- 

require 'mysql2' 

我已經安裝了通過捆綁和寶石列表中的寶石是說:

Installing i18n (0.6.9) 
Installing multi_json (1.8.2) 
Installing activesupport (3.2.8) 
Installing builder (3.0.4) 
Installing activemodel (3.2.8) 
Installing activerecord (3.2.8) 
Installing treetop (1.4.15) 
Installing mime (0.2.0) 
Installing mysql2 (0.3.14) 
Using bundler (1.3.5) 
Your bundle is complete! 
It was installed into ./vendor/bundle 

注:my_script.rb/vendor/bundle是在同一個目錄

現在問題

那爲什麼跟它

更新:

kernel_require.rb:55:in `require': cannot load such file -- mysql2 (LoadError) 
當我嘗試用 ./my_script

UPDATE運行我的腳本

對自己:) 如果出現此錯誤,請嘗試運行腳本bundle exec,因爲這是捆綁安裝寶石的主要目的:) 我一直在運行腳本,就像我在我的服務器上一樣,但是我忘記了最明顯和合乎邏輯的方式 - 運行它bundle exec ./my_script.rb因爲這是它的主要目標;)

回答

1

你已經通過捆綁軟件安裝了它們,所以你應該讓捆綁器需要寶石。將以下內容添加到腳本頂部:

require 'bundler' 
Bundler.require 

希望它有幫助。

+0

是的,你是對的。我已經忘記了這個選擇。但我記得我已經以不同的方式運行了腳本,但是,我可能在前一段時間在其他地方安裝了這些寶石。謝謝! – Aleks

相關問題