Может ли установка исполняемого флага в сценарии установки привести к сбою проверки CRC?

701
Igor Zinov'yev

Недавно я установил VMWare Workstation для Linux на мою машину с Ubuntu, и в процессе установки я столкнулся с особой проблемой. Сам установщик - это своего рода архив, который связан с make-файлом. Этот make-файл устанавливает все необходимые компоненты, и, судя по логам, компилирует некоторые модули и проверяет CRC скопированных файлов.

Этот установщик должен быть запущен примерно так:

sudo sh ./VMware-Workstation-Full-9.0.1-894247.x86_64.bundle 

Но я сделал это с другой стороны в первый раз:

chmod uga+x VMware-Workstation-Full-9.0.1-894247.x86_64.bundle sudo ./VMware-Workstation-Full-9.0.1-894247.x86_64.bundle 

И после этого установка не удалась, со следующими сообщениями:

[2012-12-06 15:07:18,348] [vmware-tools-windows 9.2.2] Failed to copy file from windows.iso to /usr/lib/vmware/isoimages/windows.iso Traceback (most recent call last): File "/tmp/vmis.KNkJ7S/install/vmware-installer/vmis/core/component.py", line 193, in doit data = fileobj.read(10485760) # Read 10 MB at once. Not too large to fill File "/tmp/vmis.KNkJ7S/install/vmware-installer/python/lib/gzip.py", line 227, in read self._read(readsize) File "/tmp/vmis.KNkJ7S/install/vmware-installer/python/lib/gzip.py", line 292, in _read self._read_eof() File "/tmp/vmis.KNkJ7S/install/vmware-installer/python/lib/gzip.py", line 311, in _read_eof raise IOError, "CRC check failed" IOError: CRC check failed [2012-12-06 15:07:18,365] [vmware-tools-windows 9.2.2] Installation failed, rolling back installation. 

Я думал, что это может быть потому, что загруженный файл был поврежден, потому что его контрольные суммы с использованием MD5 и SHA1 отличались от тех, которые указаны на сайте загрузки. После удаления файла, его повторной загрузки и запуска так, как он должен быть запущен, все прошло нормально.

Так что мой вопрос здесь просто из любопытства. Может быть, установка флага исполняемого файла привела к сбою проверки CRC?

0

1 ответ на вопрос

1
jaume

Нет, когда вы устанавливаете флаг исполняемого файла, изменяется только файловый индекс, в котором хранится эта информация .

Содержимое файла остается неизменным, как и контрольная сумма.

Вы говорите, что контрольная сумма MD5 / SHA1 вашего файла и на сайте отличалась, поэтому да, загруженный файл был поврежден . Файл, вероятно, был загружен только частично, что объясняет, почему он изначально работал, но зависал при распаковке.

(Вы можете проверить это сами с помощью простого эксперимента:

# ls -l /bin/gawk -rwxr-xr-x 1 root root 267648 Aug 19 2011 /bin/gawk # sha1sum /bin/gawk d8fcc0aae41635dedb449523989af47f290fe22a /bin/gawk 

Режим 755, контрольная сумма есть d8fcc0aae41635dedb449523989af47f290fe22a.

# stat /bin/gawk (...) Change: 2012-11-07 17:24:49.000000000 +0100 

stat«s Changeпоказывают, что индексный дескриптор последнего изменения месяц назад.

Теперь я меняю режим файла:

# date Thu Dec 6 16:07:48 CET 2012 # chmod 644 /bin/gawk # sha1sum /bin/gawk d8fcc0aae41635dedb449523989af47f290fe22a /bin/gawk # stat /bin/gawk (...) Change: 2012-12-06 16:07:48.000000000 +0100 

Индекс изменился (сравните с dateвыводом России), но контрольная сумма не изменилась.)