Gem gem pristine 的用法例子

luoping0425 · December 11, 2015 · Last by fage108 replied at October 27, 2017 · 4423 hits
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。

You need to Sign in before reply, if you don't have an account, please Sign up first.