Gem gem pristine 的用法例子

luoping0425 · 2015年12月11日 · 最后由 fage108 回复于 2017年10月27日 · 4493 次阅读
gem pristine [GEMNAME ...] [options]

作用:

比较已经安装的 gem 和缓存的.gem file, 如果和缓存的 .gem 不匹配,则恢复原始的文件 如果修改过已经安装的 gem 包,pristine 将会恢复它。所有的扩展会 rebuild,所有的 bin 如果发现有更改会重新生成。 如果缓存的文件不存在,则重新下载。

详细参考:http://guides.rubygems.org/command-reference/#gem-pristine

例子: mysql 升级到了 5.7.9 原有 rails 项目使用 mysql2,运行 rake db:migrate 会报错:

Library not loaded: /usr/local/lib/libmysqlclient.18.dylib

发现新安装的 mysql 其实使用的是 libmysqlclient.20.dylib,版本不一致。

解决方案:http://stackoverflow.com/questions/33772047/library-not-loaded-usr-local-lib-libmysqlclient-18-dylib

$ gem pristine mysql2

之后继续 rake db:migrate,遇到

ActiveRecord::StatementInvalid: Mysql2::Error: Table 'performance_schema.session_variables' doesn't exist: SHOW VARIABLES LIKE 'character_set_database'

需要升级数据库 http://stackoverflow.com/questions/31967527/table-performance-schema-session-variables-doesnt-exist

$ mysql_upgrade -u root -p --force

然后重启 mysql,ok。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号