Die Regeln, wann welche Pakete installiert werden müssen, sind manchmal kompliziert und verwirrend. Die Skripte DownloadUpdates.cmd (unter Windows) und DownloadUpdates.sh (unter Linux) verwenden beide
hashdeep, um Prüfsummen in verschiedenen Formaten zu berechnen.
Bei Debian 7 Wheezy wurde das
Binary hashdeep mit dem
Paket md5deep installiert:
Paket: md5deep (4.2-1)Recursively compute hashsums or piecewise hashings
Md5deep is a set of tools to compute md5, sha-1, sha-256, tiger, whirlpool hashsums of arbitrary number of files recursively.
—
https://packages.debian.org/wheezy/md5deep
Dieses Paket md5deep installiert mehrere Binaries: hashdeep, md5deep, sha1deep, sha256deep, tigerdeep, whirlpooldeep
Liste der Dateien in Paket md5deep in wheezy für Architektur i386/usr/bin/hashdeep
/usr/bin/md5deep
/usr/bin/sha1deep
/usr/bin/sha256deep
/usr/bin/tigerdeep
/usr/bin/whirlpooldeep
/usr/share/doc/md5deep/FILEFORMAT
/usr/share/doc/md5deep/NEWS.gz
/usr/share/doc/md5deep/README.gz
/usr/share/doc/md5deep/TODO.gz
/usr/share/doc/md5deep/changelog.Debian.gz
/usr/share/doc/md5deep/changelog.gz
/usr/share/doc/md5deep/copyright
/usr/share/man/man1/hashdeep.1.gz
/usr/share/man/man1/md5deep.1.gz
/usr/share/man/man1/sha1deep.1.gz
/usr/share/man/man1/sha256deep.1.gz
/usr/share/man/man1/tigerdeep.1.gz
/usr/share/man/man1/whirlpooldeep.1.gz
—
https://packages.debian.org/wheezy/i386 ... p/filelist
Bei Debian 8 Jessie sieht es zunächst genauso aus:
Paket: md5deep (4.2-1)Recursively compute hashsums or piecewise hashings
Md5deep is a set of tools to compute md5, sha-1, sha-256, tiger, whirlpool hashsums of arbitrary number of files recursively.
—
https://packages.debian.org/jessie/md5deepListe der Dateien in Paket md5deep in jessie für Architektur i386/usr/bin/hashdeep
/usr/bin/md5deep
/usr/bin/sha1deep
/usr/bin/sha256deep
/usr/bin/tigerdeep
/usr/bin/whirlpooldeep
/usr/share/doc/md5deep/FILEFORMAT
/usr/share/doc/md5deep/NEWS.gz
/usr/share/doc/md5deep/README.gz
/usr/share/doc/md5deep/TODO.gz
/usr/share/doc/md5deep/changelog.Debian.gz
/usr/share/doc/md5deep/changelog.gz
/usr/share/doc/md5deep/copyright
/usr/share/man/man1/hashdeep.1.gz
/usr/share/man/man1/md5deep.1.gz
/usr/share/man/man1/sha1deep.1.gz
/usr/share/man/man1/sha256deep.1.gz
/usr/share/man/man1/tigerdeep.1.gz
/usr/share/man/man1/whirlpooldeep.1.gz
—
https://packages.debian.org/jessie/i386 ... p/filelist
hashdeep kann mehrere Hashfunktionen verwenden und die meisten anderen Binaries (md5deep, sha1deep, sha256deep, tigerdeep, whirlpooldeep) wohl ersetzen.
Es scheint so, dass genau das in den Jessie-Backports gemacht wurde. Das Paket md5deep ist jetzt nur noch ein Übergangspaket:
Dafür gibt es ein neues Paket hashdeep, das nur noch das Binary hashdeep enthält:
Paket: hashdeep (4.4-1~bpo8+1)recursively compute hashsums or piecewise hashings
hashdeep is a set of tools to compute MD5, SHA1, SHA256, tiger and whirlpool hashsums of arbitrary number of files recursively.
—
https://packages.debian.org/jessie-backports/hashdeepListe der Dateien in Paket hashdeep in jessie-backports für Architektur i386/usr/bin/hashdeep
/usr/share/doc/hashdeep/FILEFORMAT
/usr/share/doc/hashdeep/NEWS.gz
/usr/share/doc/hashdeep/README.Debian
/usr/share/doc/hashdeep/README.md.gz
/usr/share/doc/hashdeep/TODO.gz
/usr/share/doc/hashdeep/changelog.Debian.gz
/usr/share/doc/hashdeep/changelog.gz
/usr/share/doc/hashdeep/copyright
/usr/share/man/man1/hashdeep.1.gz
—
https://packages.debian.org/jessie-back ... p/filelist
Die Regel für DownloadUpdates.sh sollte dann sein: Wenn das Binary hashdeep nicht gefunden wird, installiere das Paket:
- md5deep für Debian 7 Wheezy
- md5deep für Debian 8 Jessie
- hashdeep für Debian 8 Jessie-Backports
Die Regel im Skript DownloadUpdates.sh ist aber:
- Code: Select all
for Datei in cabextract md5deep
do
Nomiss=$(which $Datei 2>/dev/null)
test -x "$Nomiss" && continue
cat << END
Please install $Datei
Command in Fedora:
yum install $Datei
Command in Debian:
apt-get install $Datei
Command in SuSE:
zypper install $Datei
END
Missing=1
done
Das ist schon im Ansatz falsch, da dabei auf das Binary md5deep getestet wird. Das Binary md5deep wird aber überhaupt nicht gebraucht.
Vielleicht hat das früher so funktioniert, weil mit dem Paket md5deep eben
beide Binaries installiert wurden: Wenn md5deep installiert ist, dann muss auch hashdeep installiert sein. Aber so funktioniert das nicht mehr, da es md5deep nicht mehr gibt.
Die Regel im Skript könnte jetzt eher lauten:
- Code: Select all
if ! which hashdeep > /dev/null; then
echo "Please install the binary hashdeep,"
echo "- from package md5deep for Debian 7 Wheezy"
echo "- from package md5deep for Debian 8 Jessie"
echo "- from package hashdeep for Debian 8 Jessie-Backports"
echo "Otherwise, install the binary hashdeep, wherever is comes from"
fi
(Das soll allerdings noch kein vollständiger Patch sein.)
Eine gute Hilfe ist auch das Paket command-not-found, das einen Handler für bash installiert, um nach fehlenden Programmen zu suchen:
Paket: command-not-found (0.2.38-1)Schlägt in interaktiven Bash-Sitzungen Paketinstallationen vor
Dieses Paket installiert einen Handler für command_not_found, der nach aktuell nicht installierten, aber in den Depots verfügbaren Programmen sucht.
—
https://packages.debian.org/jessie/command-not-found
Dann kann man einfach den Namen auf der Kommandozeile eingeben. Wenn hashdeep nicht installiert ist, bekommt man zum Beispiel diesen Hinweis (unter Debian 7 Wheezy):
- Code: Select all
~$ hashdeep
The program 'hashdeep' is currently not installed. To run 'hashdeep' please ask your administrator to install the package 'md5deep'
hashdeep: command not found