2013-03-25 39 views
0

這裏是首次使用Ruby的用戶,而Jekyll就是其中的原因。使用RVM安裝Ruby時,gem的路徑(例如/var/lib/gems/1.8/bin/)?

首先,我安裝RVM(Ubuntu服務器12.04 64位上):

\curl -L https://get.rvm.io | bash -s stable 

跟着隨後的指令由安裝過程作爲引導(對於例如添加到source ~/.profile~/.bash_profile)。 The FULL INSTRUCTIONS I followed are here

讀取rvm requirements命令的輸出,並安裝所有必需的二進制文件。

安裝了Ruby 1.9.3,配置RVM使用它,然後安裝RubyGems後,通過發出以下命令,一個接一個:

rvm install 1.9.3 
rvm use 1.9.3 
rvm rubygems current 

ruby --version,以確保我使用Ruby 1.9的。 3。

然後使用寶石安裝哲基爾:

gem install jekyll 

安裝通過複製的jekyll/site provided by the official Jekyll repository內容的基本網站結構,然後進行必要的修改,以_config.ymlCNAME

這是事情!當我運行jekyll --server我得到相同的舊TCP/Webrick error(但沒有解決方案工作)。

所以,as the Jekyll wiki says,它可能是這樣的:

在Debian或Ubuntu,你可能需要添加/var/lib/gems/1.8/bin/到您的路徑。

的問題是:

  1. 在我而言,/var/lib/gems/...不存在。可能是因爲我安裝了Ruby,RubyGems,全部使用RVM。那麼,我的情況怎麼樣?

  2. 再一次,如果我知道路徑,我該如何「將/var/lib/gems/*.*/bin/添加到您的路徑」​​

+0

可以在〜/ .rvm/... – three

回答

1

首先,你可以忽略這個問題,如果你的意思是

[2012-04-21 13:46:40] WARN TCPServer Error: Address already in use - bind(2) 

這是因爲在RubyGems的哲基爾的最新版本的一些bug的代碼,但是,它似乎已得到糾正latest code on github。由jekyll創建的服務器嘗試在IPv4('0.0.0.0')和IPv6('::')上進行綁定,因此第一個綁定成功並且IPv6上的綁定失敗並且會記錄一條警告。

看一看的哲基爾可執行在你~/.rvm目錄,也許~/.rvm/gems/ruby-1.9.3-p392/gems/jekyll-0.12.1/bin/jekyll,在大約288行:

s = HTTPServer.new(
    :Port   => options['server_port'], 
    :MimeTypes  => mime_types 
) 

這裏HTTPServerWEBrick::HTTPServer。 jekyll創建服務器時未指定:BindAddress配置。綁定地址默認設置爲nil

WEBrick將調用Socket.getaddrinfo從指定的綁定地址獲取實際地址,該地址在nil地址中傳遞時將返回IPv4('0.0.0.0')和IPv6('::')的通配符地址。之後,WEBrick調用TCPServer.new(address, port)來創建TCPServer。這就是TCPServer Error出現的地方。

欲瞭解更多詳情,請閱讀WEBrick::Utils.create_listeners

+0

也許你是對的,但我只是想通,加入'服務器:FALSE'我_config.yml固定它。任何想法爲什麼?它現在有效,但我真的想知道爲什麼。 –

+0

@TheoneManis它沒有任何意義。命令行選項的優先級高於配置文件「_config.yml」。如果指定'--server'命令行選項,則配置條目'server:false'將不起作用。 –

+0

好的。然後,我在Jekyll github回購上創建了一個問題,看看我能否獲得一些信息(並在此回報)。 –

相關問題