Обычно вы просто запускаете gem install somegemfilename
, но если по какой-то причине вы решили загрузить гем из https://rubygems.org/gems/, тогда вы захотите вручную запустить контрольную сумму для этого файла.
Пример
Загрузите файл наподобие https://rubygems.org/downloads/foo-0.0.2.gem Затем в своем терминале перейдите туда, куда загружается ваш файл, и запустите:
sha256sum foo-0.0.2.gem
# it should output the same checksum shown at https://rubygems.org/gems/foo
=> 523009a5b977f79c8eaa79b521e416f26482bc4fbbcc04bd08580696e303a715
Одного этого должно быть достаточно для безопасности.Однако кажется, что это дополнительные уровни безопасности, чтобы гарантировать, что каждый файл gz, распакованный с помощью tar xf somegem.gem
, может быть индивидуально проверен по содержимому checksums.yaml
, который предоставляет несколько вариантов контрольных сумм.
Короткий ответ: вам не нужно беспокоиться о них, но они есть для вас, если вы хотите углубиться до этого уровня.
ОБНОВЛЕНО на основе комментария @ NikitaMisharin:
Да, я понимаю вашу точку зрения и склонен с вами согласиться.Похоже, это очень старый унаследованный код Ruby, введенный в this commit .
commit 9ac0e9149295f356f3aee2e6a7c3a4e22d0a904e
Author: Chad Fowler <chad@chadfowler.com>
Date: Sun Nov 23 01:53:27 2003 +0000
Generate MD5 checksum for gem and store it in the file. Will be used to validate gem file before installation.
git-svn-id: svn+ssh://rubyforge.org/var/svn/rubygems/trunk@66 3d4018f9-ac1a-0410-99e9-8a154d859a19
Я бы хотел заключить, что это был примитивный способ проверки целостности кода, развившийся сиспользовать контрольную сумму, которая будет опубликована на Rubygems.org , стандартном хранилище гемов.
Я полагаю, что это, возможно, было оставлено для поддержки прежних версий?Но я думаю, если вы ДЕЙСТВИТЕЛЬНО хотите быть уверены, возможно, спросите Чед Фаулер ?
Для получения дополнительной информации, возможно, прочитайте эту документацию , которая связана непосредственно с rubygems.org раздел безопасности