Tag: ruby
Ruby on Rails: RubyGem version error: rack(1.0.0 not ~> 1.0.1) (RuntimeError)
by Elton on 2010年03月7日, under Rails
当你升级了rails后,有时候会出现rack版本跟rails版本不匹配的情况。 当你执行./script/generate命令的时候,会出现以下错误信息:
-
-
/Library/Ruby/Gems/1.8/gems/rails-2.3.5/lib/initializer.rb:271:in `require_frameworks‘: RubyGem version error: rack(1.0.0 not ~> 1.0.1) (RuntimeError)
-
from /Library/Ruby/Gems/1.8/gems/rails-2.3.5/lib/initializer.rb:134:in `process’
-
from /Library/Ruby/Gems/1.8/gems/rails-2.3.5/lib/initializer.rb:113:in `send‘
-
from /Library/Ruby/Gems/1.8/gems/rails-2.3.5/lib/initializer.rb:113:in `run’
-
from /Volumes/Data/study/ruby/blog/config/environment.rb:9
-
from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require‘
-
from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require’
-
from /Library/Ruby/Gems/1.8/gems/rails-2.3.5/lib/commands/generate.rb:1
-
from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require‘
-
from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require’
-
from ./script/generate:3
-
解决方案:
-
-
$ sudo gem uninstall rack
-
-
Select gem to uninstall:
-
1. rack-1.0.0
-
2. rack-1.1.0
-
3. All versions
-
> 1
-
-
You have requested to uninstall the gem:
-
rack-1.0.0
-
actionpack-2.3.5 depends on [rack (~> 1.0.0)]
-
actionpack-2.3.4 depends on [rack (~> 1.0.0)]
-
If you remove this gems, one or more dependencies will not be met.
-
Continue with Uninstall? [Yn] y
-
Successfully uninstalled rack-1.0.0
-
然后再执行
-
-
sudo gem install -v=2.3.5 rails
-
-
Successfully installed rack-1.0.1
-
1 gem installed
-
Installing ri documentation for rack-1.0.1…
-
Installing RDoc documentation for rack-1.0.1…
-
问题解决
在snow leopard上编译Ruby, RubyGems, 和Rails
by Elton on 2009年10月1日, under Mac, Rails
准备:
- Snow Leopard系统
- XCode编译环境,Snow Leopard系统盘上有
第一步:设置路径
-
-
vim ~/.profile
-
在文件最后加上:
-
-
export PATH="/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:$PATH"
-
使新的路径生效
-
-
source ~/.profile
-
第二步:下载源文件
-
-
curl -O ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p174.tar.gz
-
curl -O http://files.rubyforge.vm.bytemark.co.uk/rubygems/rubygems-1.3.5.tgz
-
第三步:编译安装
安装ruby
-
-
tar xzvf ruby-1.8.7-p174.tar.gz
-
cd ruby-1.8.7-p174
-
./configure –enable-shared –enable-pthread CFLAGS=-D_XOPEN_SOURCE=1
-
make
-
sudo make install
-
cd ..
-
安装rubygem
-
-
tar xzvf rubygems-1.3.5.tgz
-
cd rubygems-1.3.5
-
sudo /usr/local/bin/ruby setup.rb
-
cd ..
-
安装rails
-
-
sudo gem install rails
-
安装ruby的mysql驱动
-
-
sudo gem install mysql — –with-mysql-dir=/usr/local/mysql
-
MySQL使用官方的dmg安装即可。
no such file to load — sqlite3问题解决
by Elton on 2009年08月23日, under Rails
从rails2.0.2以后,rails默认的数据库是sqlite3了。 所以如果你使用rails appName命令建立应用的话,使用的是sqlite数据库。
作为开发和测试,使用sqlite3数据库倒是可以。如果你在运行应用的时候出现了
-
-
no such file to load — sqlite3
-
这个错误,说明你没有安装sqlite的ruby驱动。 使用以下命令可以安装此驱动
-
-
sudo gem install sqlite3-ruby
-
安装成功后,上面的问题就解决了。
Leopard下手工安装ruby,rails和mysql
by Elton on 2009年08月23日, under Mac, Rails
1. 安装readline
ftp://ftp.gnu.org/gnu/readline/
-
-
cd readline-6.0
-
./configure –prefix=/usr/local
-
make
-
sudo make install
-
2. 安装ruby
-
-
tar xvjf ruby-1.8.7-p174.tar.bz2
-
cd ruby-1.8.7-p174
-
./configure –prefix=/usr/local/ruby –enable-pthread –with-readline-dir=/usr/local –enable-shared
-
make
-
sudo make install
-
sudo make install-doc
-
使用ruby -v来确认版本安装正确
3. 安装mysql
-
-
/configure –prefix=/usr/local/mysql –with-extra-charsets=complex –enable-thread-safe-client –enable-local-infile –enable-shared –with-plugins=max-no-ndb
-
make
-
sudo make install
-
cd /usr/local/mysql
-
sudo ./bin/mysql_install_db –user=mysql
-
sudo chown -R mysql ./var/
-
mac os x 是靠 launchd 守护进程运行的, 配置文件用的是 PropertyList (XML 格式), 通过观察发现每10秒检查一次, 发现进程不在就启动.
方法是新建 /Library/LaunchDaemons/com.mysql.mysqld.plist 写入如下内容.
-
-
<?xml version="1.0" encoding="UTF-8"?>
-
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-
<plist version="1.0">
-
<dict>
-
<key>KeepAlive</key>
-
<true />
-
<key>Label</key>
-
<string>com.mysql.mysqld</string>
-
<key>Program</key>
-
<string>/usr/local/mysql/bin/mysqld_safe</string>
-
<key>RunAtLoad</key>
-
<true />
-
<key>UserName</key>
-
<string>mysql</string>
-
<key>WorkingDirectory</key>
-
<string>/usr/local/mysql</string>
-
</dict>
-
</plist>
-
加入守护清单
sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysqld.plist
查看清单
launchctl list
解除守护
sudo launchctl unload -w /Library/LaunchDaemons/com.mysql.mysqld.plist
4. 安装mysql的c驱动
http://rubyforge.org/fsr/download.php/51087/mysql-ruby-2.8.1.tar.gz
-
-
tar xzvf mysql-ruby-2.8.1.tar.gz
-
cd mysql-ruby-2.8.1
-
ruby extconf.rb –with-mysql-dir=/usr/local/mysql
-
make
-
sudo make instal
-
如果出现类似以下的错误
-
-
checking for mysql_query() in -lmysqlclient… no
-
checking for main() in -lm… yes
-
checking for mysql_query() in -lmysqlclient… no
-
checking for main() in -lz… yes
-
checking for mysql_query() in -lmysqlclient… no
-
checking for main() in -lsocket… no
-
checking for mysql_query() in -lmysqlclient… no
-
checking for main() in -lnsl… no
-
checking for mysql_query() in -lmysqlclient… no
-
checking for main() in -lmygcc… yes
-
checking for mysql_query() in -lmysqlclient… no
-
*** extconf.rb failed ***
-
Could not create Makefile due to some reason, probably lack of
-
necessary libraries and/or headers. Check the mkmf.log file for more
-
details. You may need configuration options.
-
就换用
-
-
sudo ruby extconf.rb –with-mysql-config
-


