问题描述
我正在尝试在CentOS系统上安装Devstack。我已经执行了运行stack.sh的必要设置,但是当我运行它时,出现以下故障:
Installing collected packages: PyYAML,zipp,importlib-Metadata,stevedore,colorama,pyperclip,cmd2,pyparsing,cliff,future,stestr,os-testr
Attempting uninstall: PyYAML
Found existing installation: PyYAML 5.3
ERROR: Cannot uninstall 'PyYAML'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.
+inc/python:pip_install:1 exit_trap
+./stack.sh:exit_trap:489 local r=1
++./stack.sh:exit_trap:490 jobs -p
+./stack.sh:exit_trap:490 jobs=
+./stack.sh:exit_trap:493 [[ -n '' ]]
+./stack.sh:exit_trap:499 '[' -f '' ']'
+./stack.sh:exit_trap:504 kill_spinner
+./stack.sh:kill_spinner:399 '[' '!' -z '' ']'
+./stack.sh:exit_trap:506 [[ 1 -ne 0 ]]
+./stack.sh:exit_trap:507 echo 'Error on exit'
Error on exit
+./stack.sh:exit_trap:509 type -p generate-subunit
+./stack.sh:exit_trap:512 [[ -z /opt/stack/logs ]]
+./stack.sh:exit_trap:515 /usr/bin/python3.6 /opt/stack/devstack/tools/worlddump.py -d /opt/stack/logs
ebtables v1.8.4 (nf_tables): table `broute' is incompatible,use 'nft' tool.
+./stack.sh:exit_trap:524 exit 1
在Internet上进行研究后,我了解到,当python的pip3逗号尝试卸载使用distutils安装的某些东西(显然包括PyYAML)时,显然会发生此故障。我还看到在stack.sh PyYAML的某处安装了PyYAML,然后尝试将其卸载失败!
我还查看了Devstack随附的setup.py脚本,但是该脚本显然不使用distutils。在PyYAML安装过程中,已在其他地方使用了它,但是找不到它的位置。
更糟糕的是,有一些解决方法(包括对PIP使用--ignore-installed选项),但是我看不到将选项放置在stack.sh或我见过的任何其他文件中的位置。
就目前情况而言,stack.sh似乎无法使用。由于这个问题,它无法安装Devstack。
有没有人找到一种安装Devstack并解决此问题的方法?有替代stack.sh的方法吗?要开发堆栈?
解决方法
我找到了解决问题的方法:
请勿使用Devstack。使用Packstack。
我什至为Devstack发布了关于此问题的错误报告。似乎它不会在不久的将来得到修复。因此,那些寻求创建开发安装的用户应该使用Packstack。我能够按照以下提供的说明安装和运行带有Packstack的Openstack:
https://www.linuxtechi.com/install-openstack-centos-8-with-packstack/