从源代码在 CentOS 7 上构建 Ambari 2.7.5,2 周前工作,现在失败
Building Ambari 2.7.5 on CentOS 7 from source, Worked 2 weeks ago, now fails
按照此处的说明进行操作:Ambari 2.7.5 installation failure on CentOS 7
我按照完全相同的说明操作,现在从构建的 ambari-admin 部分获取:
[INFO] --- exec-maven-plugin:1.2.1:exec (Bower install) @ ambari-admin ---
bower angular-route#*
bower angular-route#*
bower underscore#1.7.0
bower underscore#1.7.0
bower bootstrap#3.3.7
bower bootstrap#3.3.7
bower angular-mocks#*
bower angular-mocks#*
bower angular#*
bower angular#*
bower font-awesome#4.2.0
bower font-awesome#4.2.0
bower angular-translate#*
bower angular-translate#*
bower chai#1.8.0
bower chai#1.8.0
bower mocha#1.14.0
bower mocha#1.14.0
bower angular-animate#*
bower angular-animate#*
bower angular-bootstrap-toggle-switch#0.5.1
bower angular-bootstrap-toggle-switch#0.5.1
bower restangular#1.4.0
bower restangular#1.4.0
bower commonjs#0.2.0
bower commonjs#0.2.0
bower sinon#1.10.3
bower sinon#1.10.3
bower angular-bootstrap#0.11.0
bower angular-bootstrap#0.11.0
bower angular#>=1.2.26 <1.8
bower angular#>=1.2.26 <1.8
bower lodash#>=1.3.0 <2.5.0
bower lodash#>=1.3.0 <2.5.0
bower angular#>=1
bower angular#>=1
bower jquery#1.9.1 - 3
bower jquery#1.9.1 - 3
bower ECONFLICT Unable to find suitable version for angular
如有必要,我可以提供整个堆栈。
我的问题是:
1. 为什么项目在 2 周前构建并且完全没有任何更改现在会因上述堆栈而失败?
2. 如何解决这个问题?
非常感谢任何意见或帮助。
根据要求,这是我遵循的步骤:
1. Using lxc to create centOS 7 x86_64 environment:
lxc launch images:centos/7/amd64 cent7
2. Attach to that kernal, this logs you in as root in a bash shell
lxc exec cent7 bash
3. Install necessary packages
yum install -y which
yum install -y wget
yum install -y rpm-build*
yum install -y gcc*
yum install -y git*
yum install -y python-devel*
yum install -y maven
(This installs an old version,3.0.5, but takes care of all dependencies such as java)
Get latest version of maven, Ambari build needs at least 3.3.9
mkdir /maven363 ; cd /maven363
wget http://mirror.cogentco.com/pub/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
tar zxf apache-maven-3.6.3-bin.tar.gz
## Setup paths to this maven in .bashrc file
vi ~/.bashrc
export PATH=/maven363/apache-maven-3.6.3/bin:$PATH
export _JAVA_OPTIONS="-Xmx2048m -XX:MaxPermSize=512m -Djava.awt.headless=true"
## Instantiate the above .bashrc changes
. ~/.bashrc
Get python tools for python 2.7
mkdir /PythonTools ; cd /PythonTools/
wget https://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11-py2.7.egg#md5=fe1f997bc722265116870bc7919059ea
sh setuptools-0.6c11-py2.7.egg
4. Get the Ambari source code
mkdir /Ambari275 ; cd /Ambari275
wget https://www-eu.apache.org/dist/ambari/ambari-2.7.5/apache-ambari-2.7.5-src.tar.gz
5. Untar the file
tar zxf apache-ambari-2.7.5-src.tar.gz
6. Fix the ambari-admin pom.xml file to load the correct versions of npm and node.js (This module had compilation errors),
Found fix information here:
cd /Ambari275/apache-ambari-2.7.5-src/ambari-admin
vi pom.xml
From:
<nodeVersion>v4.5.0</nodeVersion>
<npmVersion>2.15.0</npmVersion>
To:
<nodeVersion>v6.17.1</nodeVersion>
<npmVersion>3.10.10</npmVersion>
7. Now follow all instructions here:
https://cwiki.apache.org/confluence/display/AMBARI/Installation+Guide+for+Ambari+2.7.5
Q1:您的构建环境中一定发生了一些变化。无论哪种方式,如果构建环境中的版本不理想,整个项目更深层次的依赖就会发生冲突。
Q2:您正在寻找的解决方案是修改以下文件:
nano ambari-admin/src/main/resources/ui/admin-web/bower.json
内容应该是:
{
"name": "adminconsole",
"private": true,
"dependencies": {
"bootstrap": "3.3.7",
"angular": "1.3.0",
"angular-route": "1.3.0",
"angular-bootstrap": "0.11.0",
"underscore": "1.7.0",
"restangular": "1.4.0",
"angular-bootstrap-toggle-switch": "0.5.1",
"angular-animate": "1.3.0",
"angular-translate": "~2.8.1",
"font-awesome": "4.2.0"
},
"devDependencies": {
"angular-mocks": "1.3.0",
"commonjs": "0.2.0",
"chai": "1.8.0",
"mocha": "1.14.0",
"sinon": "1.10.3"
}
}
并且构建环境有以下版本:
npm -v
6.14.4
node -v
v10.21.0
python -V
Python 2.7.18
mvn -v
Apache Maven 3.6.3
您可能需要试用 angular 版本。我上面发布的片段是今天在不同操作系统 (SUSE / openSUSE) 中对我有用的片段。我在 centos 中没有收到此错误。我撰写并参与了一些最近的 SO 线程,因此从源代码中深入了解 Ambari 2.7.5。
按照此处的说明进行操作:Ambari 2.7.5 installation failure on CentOS 7
我按照完全相同的说明操作,现在从构建的 ambari-admin 部分获取:
[INFO] --- exec-maven-plugin:1.2.1:exec (Bower install) @ ambari-admin ---
bower angular-route#*
bower angular-route#*
bower underscore#1.7.0
bower underscore#1.7.0
bower bootstrap#3.3.7
bower bootstrap#3.3.7
bower angular-mocks#*
bower angular-mocks#*
bower angular#*
bower angular#*
bower font-awesome#4.2.0
bower font-awesome#4.2.0
bower angular-translate#*
bower angular-translate#*
bower chai#1.8.0
bower chai#1.8.0
bower mocha#1.14.0
bower mocha#1.14.0
bower angular-animate#*
bower angular-animate#*
bower angular-bootstrap-toggle-switch#0.5.1
bower angular-bootstrap-toggle-switch#0.5.1
bower restangular#1.4.0
bower restangular#1.4.0
bower commonjs#0.2.0
bower commonjs#0.2.0
bower sinon#1.10.3
bower sinon#1.10.3
bower angular-bootstrap#0.11.0
bower angular-bootstrap#0.11.0
bower angular#>=1.2.26 <1.8
bower angular#>=1.2.26 <1.8
bower lodash#>=1.3.0 <2.5.0
bower lodash#>=1.3.0 <2.5.0
bower angular#>=1
bower angular#>=1
bower jquery#1.9.1 - 3
bower jquery#1.9.1 - 3
bower ECONFLICT Unable to find suitable version for angular
如有必要,我可以提供整个堆栈。
我的问题是: 1. 为什么项目在 2 周前构建并且完全没有任何更改现在会因上述堆栈而失败? 2. 如何解决这个问题?
非常感谢任何意见或帮助。
根据要求,这是我遵循的步骤:
1. Using lxc to create centOS 7 x86_64 environment:
lxc launch images:centos/7/amd64 cent7
2. Attach to that kernal, this logs you in as root in a bash shell
lxc exec cent7 bash
3. Install necessary packages
yum install -y which
yum install -y wget
yum install -y rpm-build*
yum install -y gcc*
yum install -y git*
yum install -y python-devel*
yum install -y maven
(This installs an old version,3.0.5, but takes care of all dependencies such as java)
Get latest version of maven, Ambari build needs at least 3.3.9
mkdir /maven363 ; cd /maven363
wget http://mirror.cogentco.com/pub/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
tar zxf apache-maven-3.6.3-bin.tar.gz
## Setup paths to this maven in .bashrc file
vi ~/.bashrc
export PATH=/maven363/apache-maven-3.6.3/bin:$PATH
export _JAVA_OPTIONS="-Xmx2048m -XX:MaxPermSize=512m -Djava.awt.headless=true"
## Instantiate the above .bashrc changes
. ~/.bashrc
Get python tools for python 2.7
mkdir /PythonTools ; cd /PythonTools/
wget https://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11-py2.7.egg#md5=fe1f997bc722265116870bc7919059ea
sh setuptools-0.6c11-py2.7.egg
4. Get the Ambari source code
mkdir /Ambari275 ; cd /Ambari275
wget https://www-eu.apache.org/dist/ambari/ambari-2.7.5/apache-ambari-2.7.5-src.tar.gz
5. Untar the file
tar zxf apache-ambari-2.7.5-src.tar.gz
6. Fix the ambari-admin pom.xml file to load the correct versions of npm and node.js (This module had compilation errors),
Found fix information here:
cd /Ambari275/apache-ambari-2.7.5-src/ambari-admin
vi pom.xml
From:
<nodeVersion>v4.5.0</nodeVersion>
<npmVersion>2.15.0</npmVersion>
To:
<nodeVersion>v6.17.1</nodeVersion>
<npmVersion>3.10.10</npmVersion>
7. Now follow all instructions here:
https://cwiki.apache.org/confluence/display/AMBARI/Installation+Guide+for+Ambari+2.7.5
Q1:您的构建环境中一定发生了一些变化。无论哪种方式,如果构建环境中的版本不理想,整个项目更深层次的依赖就会发生冲突。
Q2:您正在寻找的解决方案是修改以下文件:
nano ambari-admin/src/main/resources/ui/admin-web/bower.json
内容应该是:
{
"name": "adminconsole",
"private": true,
"dependencies": {
"bootstrap": "3.3.7",
"angular": "1.3.0",
"angular-route": "1.3.0",
"angular-bootstrap": "0.11.0",
"underscore": "1.7.0",
"restangular": "1.4.0",
"angular-bootstrap-toggle-switch": "0.5.1",
"angular-animate": "1.3.0",
"angular-translate": "~2.8.1",
"font-awesome": "4.2.0"
},
"devDependencies": {
"angular-mocks": "1.3.0",
"commonjs": "0.2.0",
"chai": "1.8.0",
"mocha": "1.14.0",
"sinon": "1.10.3"
}
}
并且构建环境有以下版本:
npm -v
6.14.4
node -v
v10.21.0
python -V
Python 2.7.18
mvn -v
Apache Maven 3.6.3
您可能需要试用 angular 版本。我上面发布的片段是今天在不同操作系统 (SUSE / openSUSE) 中对我有用的片段。我在 centos 中没有收到此错误。我撰写并参与了一些最近的 SO 线程,因此从源代码中深入了解 Ambari 2.7.5。