Kann das Setzen des Flags für ausführbare Dateien in einem Installationsskript zum Ausfall der CRC-Prüfung führen?

826
Igor Zinov'yev

Ich habe die VMWare Workstation für Linux auf meinem Ubuntu-Rechner installiert und bin bei der Installation auf ein besonderes Problem gestoßen. Das Installationsprogramm selbst ist eine Art Archiv, das mit einem Makefile gebündelt ist. Dieses Makefile installiert alle benötigten Komponenten. Wenn Sie die Protokolle beurteilen, werden einige Module kompiliert und die CRC der kopierten Dateien überprüft.

Dieses Installationsprogramm sollte folgendermaßen ausgeführt werden:

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

Aber ich habe es beim ersten Mal anders gemacht:

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

Und danach ist die Installation mit den folgenden Meldungen fehlgeschlagen:

[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. 

Ich hatte gedacht, dass dies daran liegen könnte, dass die heruntergeladene Datei beschädigt ist, weil sich ihre Prüfsummen mit MD5 und SHA1 von den auf der Download-Site bereitgestellten unterscheiden. Nachdem die Datei gelöscht, erneut heruntergeladen und so ausgeführt wurde, wie sie ausgeführt werden sollte, war alles in Ordnung.

Daher ist meine Frage hier rein aus Neugierde. Könnte es sein, dass das Setzen des ausführbaren Flags in der Datei dazu geführt hat, dass die CRC-Prüfung fehlgeschlagen ist?

0

1 Antwort auf die Frage

1
jaume

Nein, wenn Sie das ausführbare Flag setzen, ändert sich nur der Datei- Inode, in dem die Informationen gespeichert sind .

Der Inhalt der Datei bleibt unverändert, ebenso die Prüfsumme.

Sie sagen, die MD5 / SHA1-Prüfsumme Ihrer Datei und auf der Website sei unterschiedlich, also war die heruntergeladene Datei beschädigt . Die Datei wurde wahrscheinlich nur teilweise heruntergeladen, was erklären würde, warum sie anfangs funktioniert hat, aber beim Entpacken abgestürzt ist.

(Sie können dies mit einem einfachen Experiment selbst überprüfen:

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

Modus ist 755, Prüfsumme ist d8fcc0aae41635dedb449523989af47f290fe22a.

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

stat's Changezeigen, dass der Inode vor einem Monat zuletzt geändert wurde.

Jetzt ändere ich den Dateimodus:

# 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 

Der Inode hat sich geändert (vergleiche mit dateder Ausgabe von), aber die Prüfsumme nicht.)