我让CentOS Linux release 7.9.2009 (Core)在VirtualBox中运行,这是由Vagrant 2.2.19构建的,Ansible 2.9.25安装了所有的约束。在机器上安装了:
gcc 9.3.0
python 3.6.8
node.js 16.13.1
npm 8.1.2当ansible执行npm install时,我会犯g++: error: unrecognized command line option ‘-std=gnu++14’错误。我在这里看到了很多问题,在这里,答案告诉我把gcc升级到>= 4.9版。但我已经有了,我还在犯一个错误。
但是,有一个解决方案,它允许我运行npm install
sudo yum install -y centos-release-scl
sudo yum install -y devtoolset-9-gcc*
scl enable devtoolset-9 bash
npm install但是,在我通过CentOS登录到vagrant ssh之后,我必须手动运行它。我对这个解决方法不满意,因为它是手动的,npm istall必须以编程方式运行,因此它不能解决我的问题。
我尝试过从ansible npm install中执行scl中的playbook.yml
- name: Install centos-release-scl
shell: yum install -y centos-release-scl
become: yes
- name: Install devtoolset-9
shell: yum install -y devtoolset-9-gcc*
become: yes
- name: install packages based on package.json
shell: |
scl enable devtoolset-9 bash
npm install
become: yes但没起作用。
是否有一种方法可以通过npm install编程地运行ansible而不出错?
发布于 2022-05-02 19:47:08
你可以坚持gcc 4.8.5,但将评级下调至NodeJS 14 (如https://github.com/systemd/node-sd-notify/issues/29#issuecomment-1040909033中所指出的)。
注意:您可以在https://github.com/nodesource/distributions/blob/master/README.md#enterprise-linux-based-distributions下载https://github.com/nodesource/distributions/blob/master/README.md#enterprise-linux-based-distributions 14。
https://stackoverflow.com/questions/70681713
复制相似问题