安装克隆时不支持的哈希类型

Posted

技术标签:

【中文标题】安装克隆时不支持的哈希类型【英文标题】:unsupported hash type when installing plone 【发布时间】:2012-07-11 12:53:24 【问题描述】:

我尝试安装plone,但在运行脚本 install.sh 时出现问题。以下是错误详情:

raise ValueError('unsupported hash type %s' % name)
ValueError: unsupported hash type sha256
ERROR:root:code for hash sha384 was not found
ValueError: unsupported hash type sha512

我在一个论坛上读到,这个错误可能是由与操作系统上的 python 版本不兼容的 Plone 版本引起的。但是,plone官网是这样说的:

Plone Unified Installer 是一个源安装工具包,用于安装 Plone 及其在大多数类 Unix 平台上的源代码依赖项。这 套件包括 Plone、Zope 和 Python。 Python 的安装方式是 不会改变或干扰您的系统 Python。

所以我不知道如何解决这个问题。

【问题讨论】:

【参考方案1】:

这不是 Plone 独有的问题。

Python 将 OpenSSL 用于 hashlib module,并且您系统上的 OpenSSL 库不提供它需要的函数。 通常默认情况下应该存在 sha256、sha384 和 sha512 算法,但它们不在您的系统上,和/或 python 链接到错误的系统库。

如何解决这个问题取决于您的操作系统,您没有提供任何详细信息。您可以检查安装程序的要求列表,并仔细检查您是否拥有所需的一切。

【讨论】:

我有同样的问题,我没有找到任何解决方案。如何解决这个错误?????? 在运行 plone install.sh 之前安装你的发行版 openssl-dev 包。 这里需要什么? lib文件或头文件或两者兼而有之?以及如何确定 Python 正在寻找的文件是什么? 从另一个 SO 答案中学习:ldd /path/to/your/pythonlib/lib-dynload/_hashlib.so,你会看到一些像 libssllibcrypto 这样的 .so 文件丢失了。跨度> @andy: ldd 不能在 Windows 或 Mac 上运行。这取决于您的 Linux 发行版如何纠正这些依赖关系。【参考方案2】:

正如@Martijn 所解释的,openssl 没有所需的哈希函数。因此,将其卸载并使用其他库,例如 libressl。我做了以下,它在 Mac El Capitan 上工作:

   brew uninstall openssl@1.1
   brew install libressl
   brew uninstall python2
   brew install python2

【讨论】:

brew upgrade libressl 为我工作,所以这个python -c "import hashlib;" 不会抛出任何关于缺少 md5、sha512 等的错误。

以上是关于安装克隆时不支持的哈希类型的主要内容,如果未能解决你的问题,请参考以下文章

使用 web api 上传时不支持的媒体类型

响应 JSON 错误 - 使用 Eloquent 时不支持类型

通过邮递员点击我的JAVA api时不支持的媒体类型

“使用邮递员放入适应性时不支持的媒体类型

nvcc 致命:安装 cuda9.0 时不支持 gpu 架构“compute_20”

在VMware安装64位CentOS时不支持全虚拟化该怎么办