Ruby-Digest:: Digest is deprecated؛ استخدام دايجست




warnings ruby-2.1 (2)

إذا كنت تستخدم حزمة ، فإن طريقة جيدة لمعرفة سبب المشكلة هي اكتشاف جميع الأحجار الكريمة المحددة في Gemfile :

# 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

تأكد أيضًا من عدم قفل إصدار جوهرة في Gemfile الخاص بك.

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

لقد تلقيت هذا التحذير كلما قمت بإجراء اختباراتي أو بدء تشغيل خادم القضبان.

عندما أقوم بتشغيل grep من مجلد .rvm ، أرى ما يلي:

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

لذلك يبدو أنه خطأ روبي 2.1.0. هل هناك أي إصلاحات؟ لا توجد بقع المتاحة حتى الآن بقدر ما أستطيع أن أقول.

في حين أن تطبيقي يستخدم Fog ومجموعة من الأحجار الكريمة الأخرى التي لديها مشاكل تتعلق بهذه الرسالة ، إلا أنني أستخدم إصدارات مصححة لا تحتوي على الخطأ. لذلك أعتقد أن روبي مخطئ هنا.


استخدم OpenSSL::Digest بدلاً من إهمال OpenSSL::Digest::Digest







ruby-2.1