Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby-Digest::Digest已被弃用;使用摘要_Ruby_Warnings_Ruby 2.1 - Fatal编程技术网

Ruby-Digest::Digest已被弃用;使用摘要

Ruby-Digest::Digest已被弃用;使用摘要,ruby,warnings,ruby-2.1,Ruby,Warnings,Ruby 2.1,每当我运行测试或启动rails服务器时,都会收到此警告 从.rvm文件夹运行grep时,我会看到以下内容: grep -R 'Digest::Digest' . ./rubies/ruby-2.1.0/lib/ruby/2.1.0/openssl/digest.rb: warn('Digest::Digest is deprecated; Use Digest') - additional references to openssl and ruby 2.1.0 所以它看起来像是Ruby 2.

每当我运行测试或启动rails服务器时,都会收到此警告

从.rvm文件夹运行grep时,我会看到以下内容:

grep -R 'Digest::Digest' .
./rubies/ruby-2.1.0/lib/ruby/2.1.0/openssl/digest.rb: warn('Digest::Digest is deprecated; Use Digest')
- additional references to openssl and ruby 2.1.0
所以它看起来像是Ruby 2.1.0的bug。有什么补救办法吗?据我所知,目前还没有可用的补丁

虽然我的应用程序使用了Fog和其他一些与此消息相关的gem,但我使用的是没有bug的补丁版本。因此,我认为Ruby在这里是错的。

借用了

OpenSSL::Digest::Digest不鼓励从和最终使用

如果您搜索错误消息,您将看到许多gem仍然使用不推荐的语法

我想这将需要一段时间之前,所有的宝石将被更新。如果您在使用的某个LIB中遇到不推荐的情况,我建议您向维护人员报告

这里有几个例子


很可能您的Rails应用程序依赖于使用这种旧语法的gem。

使用
OpenSSL::Digest
而不是不推荐的
OpenSSL::Digest::Digest
如果您使用的是bundler,找出问题的原因的一个好方法是浏览
gem文件中定义的所有gem

# grep (ack or ag) the problem code
bundle show --paths | xargs grep -r Digest::Digest                             

# here was my output
~/.gem/ruby/2.1.0/gems/fog-1.15.0/lib/fog/cloudstack.rb:    @@digest  = OpenSSL::Digest::Digest.new('sha1')
~/.gem/ruby/2.1.0/gems/fog-1.15.0/lib/fog/core/hmac.rb:      @digest = OpenSSL::Digest::Digest.new('sha1')
~/.gem/ruby/2.1.0/gems/fog-1.15.0/lib/fog/core/hmac.rb:        @digest = OpenSSL::Digest::Digest.new('sha256')

# update appropriate gems (in my case fog)
gem install fog
bundle update fog
还要确保您没有锁定gem文件中的gem版本

# change
gem 'fog', '~> 1.15.0'
# to
gem 'fog', '~> 1.0'
# or omit the version if you are a cowboy/girl

谢谢,我将报告它,并等待它消失。s3_direct_upload是另一个带有此弃用警告的gem:我的来自asset_sync gem,它依赖于旧版本的fog。bundle update asset\u sync为我修复了它。在本地和dev上都尝试了这个技巧,grep返回为空。@gitb尝试grep名称的一部分,如just
Digest
。也许他们把它分成了两条线。此外,它要么在您的代码中(所以grep您的项目代码),要么我不知道:)