在 openSUSE 上从头开始构建 python 3.6.3
Posted
技术标签:
【中文标题】在 openSUSE 上从头开始构建 python 3.6.3【英文标题】:building python 3.6.3 from scratch on openSUSE 【发布时间】:2017-11-16 06:02:58 【问题描述】:我一直很难在 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 =10.7 (arc4random_buf): HAVE_ARC4RANDOM_BUF, * BSD / macOS
我用谷歌搜索过,但我还没有看到有关此错误的信息。
最后一点。我尝试了 ./configure 的各种排列,删除了各种功能标志,但始终保留前缀
有人可以建议为什么这会失败吗? (以及如何解决它)这是我第一次发生这种情况,我非常怀疑我忘记安装某些东西,但是 expat 和 libexpat 都在那里。
谢谢
【问题讨论】:
该错误基本上表明您没有可用的强熵源:这些用于随机数生成(反过来,用于加密、散列等)。看看这个,也许:github.com/spack/spack/issues/4943 我试过这个,同时安装了 libbsd 和 libbsd-devel,但我仍然遇到完全相同的问题。 【参考方案1】:好的,所以这个答案是一种解决方法,为了我的需要,它就足够了。 我记得 SUSE 有一个开放的构建服务(ROCKS \m/ - https://build.opensuse.org/)
从那里,我找到了一些有进取心的开发人员,他们为 Python 3.6.3 创建了一个 repo(我将向他们发送一封电子邮件,以了解他们是如何做到的)
但添加 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 存储库:Python 3.6.3 repo on OBS
【讨论】:
以上是关于在 openSUSE 上从头开始构建 python 3.6.3的主要内容,如果未能解决你的问题,请参考以下文章