簡體   English   中英

在Ubuntu Raring Ringtail 13.04上針對Ruby 1.8.7的“捆綁安裝”

[英]“bundle install” for Ruby 1.8.7 on Ubuntu Raring Ringtail 13.04

我不是紅寶石主義者,可能有明顯的失蹤之處。

我已經用Ruby 1.8.7編寫了一個應用程序,試圖將其打包到Vagrant中(運行Raring 13.04),但是我必須運行“捆綁安裝”來安裝要求,即使gem1.8確實存在,運行bundle install仍會為Ruby 1.9.3安裝gems。 然后我的程序在運行時失敗了...

關於如何解決這個問題的任何想法?

更新1

相關的Gemfile(由於第一個答復者):

ruby '1.8.7'

# ...
gem 'trollop'

但是對於ruby1.8 myfile.rb會引發錯誤

no such file to load -- trollop (LoadError)

經過調查,問題出在bundle install

Your Ruby version is 1.9.3, but your Gemfile specified 1.8.7

我不知道如何解決問題。

更新2

遵循@klaffenboeck的建議后,情況發生了變化。 我正在使用RVM,並在項目文件夾中輸入Ruby 1.8.7。 Bundler似乎正確安裝了東西,但是需求似乎失敗了...路徑問題?

請參閱此處以了解有關Vagrant / RVM設置的詳細信息: https : //rvm.io/integration/vagrant

更新3

問題解決了,我錯過了:

require 'rubygems'

先於所有寶石(它在本地有效,但在Vagrant中無效)。

Bundler將為PATH Ruby安裝gems(默認情況下)。

嘗試使用/usr/bin/env ruby -vwhich ruby找出哪個是; 我的猜測是您正在使用Ruby 1.8運行捆綁程序。

新增中

ruby '1.8.7'

在您的Gemfile上將有助於診斷。

通常不知道此問題,但嘗試將ruby-version放在gemfile的頂部:

#Gemfile
ruby '1.8.7'

# followed by your gems

編輯:

這很可能是因為您的Gemfile.lock狀態為ruby 1.9.3-運行bundle update

嘗試運行gem uninstall bundler ,然后運行gem1.8 install bundler

您的bundle命令似乎在Ruby 1.9.3下運行。 您可以通過head -n 1 $(which bundle)驗證使用哪個ruby可執行文件捆綁程序。 您希望它是ruby1.8。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM