我在openSUSE LEAP 42.3上从源代码构建python 3.6.3时遇到了困难。
当我开始配置构建时,我运行了:
./configure --prefix=/opt/python3.6 --with-pydebug --enable-optimizations --enable-shared
并在另一个演绎中
./configure --prefix=/opt/python3.6 --with-pydebug --enable-optimizations --enable-shared --with-system-expat --with-system-ffi
在两者之前,CXX定义为
CXX = "/usr/bin/g++"
配置顺利(或似乎)然后当我开始制作时,在取得一些成功后,它总是会失败:
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -std = c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -I。 -I./Include -DPy_BUILD_CORE -I./Modules/expat -DHAVE_EXPAT_CONFIG_H -DUSE_PYEXPAT_CAPI -c ./Modules/expat/xmlparse.c -o Modules / xmlparse.o ./Modules/expat/xmlparse.c:92:3:错误:#error您不支持任何高质量熵源 启用。对于最终用户的安全性,这可能不是您想要的。 您的选择包括:* Linux + glibc> = 2.25(getrandom): HAVE_GETRANDOM,* Linux + glibc< 2.25(系统调用SYS_getrandom): HAVE_SYSCALL_GETRANDOM,* BSD / macOS> = 10.7(arc4random_buf): HAVE_ARC4RANDOM_BUF,* BSD / macOS< 10.7(arc4random): HAVE_ARC4RANDOM,* libbsd(arc4random_buf):HAVE_ARC4RANDOM_BUF + HAVE_LIBBSD,* libbsd(arc4random):HAVE_ARC4RANDOM + HAVE_LIBBSD,* Linux / BSD / macOS(/ dev / urandom):XML_DEV_URANDOM * Windows (RtlGenRandom):_ WIN32。如果坚持不使用任何这些,请绕过 定义XML_POOR_ENTROPY时出现此错误;你被警告了。如果你 有理由修补此检测代码或需要更改 构建系统,请打开一个bug。谢谢!
我用谷歌搜索,我还没有看到这个错误。
最后一点。我尝试了./configure的各种排列,删除了各种功能标志,但总是保留前缀
有人可以建议为什么这会失败? (以及如何修复它)这是第一次发生在我身上,我非常强烈地怀疑我忘了安装一些东西,但expat和libexpat都在那里。
我的谢谢
答案 0 :(得分:1)
好的,所以这个答案是一个解决方法,为了我的需要,它就足够了。 我记得SUSE有一个开放的构建服务(ROCKS \ m / - https://build.opensuse.org/)
从那里,我找到了一些有进取心的开发人员为Python 3.6.3创建了一个回购(我将给他们发送一封电子邮件,以了解他们是如何做到的)
但是添加repo [http://download.opensuse.org/repositories/devel:/languages:/python/openSUSE_Leap_42.3/]然后进行repo特定发行版升级(zypper dup --repo python3.6.3)这是一个简单的问题
为了更加安全,我创建了一个btrfs快照,所以如果事情横向发展我可以回滚......他们没有,我是一个快乐的露营者。
Python 3.6.3 repo:Python 3.6.3 repo on OBS