这里的第一次Ruby用户,以及Jekyll就是原因。
首先,我安装了RVM(在Ubuntu Server 12.04 64位上):
\curl -L https://get.rvm.io | bash -s stable
按照安装过程的指示执行后续说明(例如,将source ~/.profile
添加到~/.bash_profile
)。 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安装了Jekyll:
gem install jekyll
通过复制jekyll/site provided by the official Jekyll repository的内容设置基本网站结构,然后对_config.yml
和CNAME
进行必要的更改。
这就是事情!当我运行jekyll --server
时,我会得到相同的旧TCP/Webrick error(但没有一个解决方案可以正常工作)。
所以,as the Jekyll wiki says,可能就是这样:
在Debian或Ubuntu上,您可能需要在路径中添加
/var/lib/gems/1.8/bin/
。
问题是:
就我而言,/var/lib/gems/...
不存在。可能是因为我安装了Ruby,RubyGems,都使用RVM。那么,我的道路是什么?
同样,如果我知道路径,我应该如何“将/var/lib/gems/*.*/bin/
添加到您的路径”?
答案 0 :(得分:1)
首先,如果你的意思是
,你可以忽略这个问题[2012-04-21 13:46:40] WARN TCPServer Error: Address already in use - bind(2)
这是因为RubyGems上最新版本的jekyll中的一些错误代码,但它似乎已在latest code on github中得到纠正。 jekyll创建的服务器尝试绑定IPv4('0.0.0.0')和IPv6('::'),因此第一次绑定成功,IPv6上的绑定失败并记录警告。
查看~/.rvm
目录中的jekyll可执行文件,可能是~/.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
)
此处HTTPServer
为WEBrick::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