4.7 KiB
title | tags | categories | permalink | featureImage | id | updated | date | |||
---|---|---|---|---|---|---|---|---|---|---|
Nexus升级小记 |
|
学习 | upgrade-nexus-from-old-install | https://cat.yufan.me/cats/2015102601.jpg | 143 | 2016-01-11 00:31:01 | 2015-10-26 05:03:07 |
一、前言:
公司的Maven私服Nexus版本为1.9.2,因为版本过老,前端页面在OSX10.11的Safari 9已经完全没法显示。查看官网文档,得出是extjs的BUG,解决方式只有升级Nexus版本。
但是Nexus 1.9.2版为2011年版本,之后的Nexus变化极大,比如,已经不再支持JDK6运行,运行容器换成了Jetty。通过参考对比最新版和之前版本的配置,踩过无数雷区,成功升级Nexus版本,故在此记录。
二、准备工作:
首先,我们需要下载最新的JDK7,和最新的Nexus版本,写下此文时最新版是2.11.4-01。然而,因为Nexus版本过老,我们还需要一个中间版本,此处我们选择Nexus 2.7.0。
Nexus 的所有版本可以在此处 http://www.sonatype.org/nexus/archived/ 下载,按照版本跨度,选一个中间版和一个最新版。对于中间版本选取,可以参考此文 https://support.sonatype.com/entries/21701998-nexus-upgrade-notes
我们可以看到,所有的 1.x 的版本,都可以直接升级到2.7.x 版本。这是因为,最新的Nexus中,配置文件有了极大的改变,所以会在升级后的第一运行时,升级配置文件。2.7.x版本是最后一个支持1.x版本配置文件升级的版本。
三、安装:
1、解压 nexus-2.7.0-bundle.tar.gz,我们得到两个文件,一个 nexus-2.7.0-06,一个sonatype-work。将 nexus-2.7.0-06 移动至我们的安装路径。比如此处,我们放在/usr/local/nexus
,旧的安装路径为/usr/local/tomcat
。
wget https://sonatype-download.global.ssl.fastly.net/nexus/oss/nexus-2.7.0-bundle.tar.gz
tar xvzf nexus-2.7.0-bundle.tar.gz
rm -rf sonatype-work
mv nexus-2.7.0-06 /usr/local/nexus
2、修改配置文件,首先,我们备份默认配置文件。然后将原有tomcat下的配置文件拷贝过来,进行修改替换。
cd /usr/local/nexus/conf
mv nexus.properties nexus.properties.bak
cp /usr/local/tomcat/webapps/nexus/WEB-INF/plexus.properties nexus.properties
3、修改新的配置文件,修改方式如下:
application-port=8080
application-host=0.0.0.0
runtime=${basedir}/runtime
runtime=${bundleBasedir}/nexus/WEB-INF
apps=${runtime}/apps
nexus-work=${user.home}/sonatype-work/nexus
nexus-app=${runtime}/apps/nexus
webapp=${runtime}/apps/nexus/webapp
nexus-webapp=${bundleBasedir}/nexus
webapp-context-path=/nexus
nexus-webapp-context-path=/nexus
security-xml-file=${nexus-work}/conf/security.xml
application-conf=${nexus-work}/conf
runtime-tmp=${runtime}/tmp
jetty.xml=${basedir}/conf/jetty.xml
上面红色部分为需要基于原有的配置修改的内容。黑色部分为原有的配置,保持不变。蓝色部分为新增的配置。画删除线的为原有的旧配置,现在不需要。
4、修改启动脚本,设定启动用户、安装路径、程序PID路径
cd /usr/local/nexus/bin
sed -i "s/NEXUS_HOME=\"..\"/NEXUS_HOME=\"\/usr\/local\/nexus\"/g" nexus
sed -i "s/#RUN_AS_USER=/RUN_AS_USER=ci/g" nexus
sed -i "s/#PIDDIR=\".\"/PIDDIR=\"\/home\/ci\/sonatype-work\/nexus\"/g" nexus
此处设置了Nexus的默认安装路径和启动用户,Nexus官方不建议使用root帐号启动Nexus,否则会有安全问题并显示警告,所以我们此处制定用户为 ci。
5、创建 ci 用户,此处为旧的安装升级,已经存在,所以无需创建,只需分配权限。
chown -R ci:ci /home/ci/sonatype-work
chown -R ci:ci /usr/local/nexus
6、安装JDK7,修改JAVA_HOME变量,指向新的JDK
wget http://xxx.xxx.xxx/xxx/jdk-7u80-linux-x64.gz
tar xvzf jdk-7u80-linux-x64.gz
mv jdk1.7.0_80 /opt (路径自拟)
touch /home/ci/.bash_profile
echo "export JAVA_HOME=/opt/jdk1.7.0_80" >> /home/ci/.bash_profile
7、使用 ci 用户登录服务器,关闭旧的 Nexus 进程,运行新的 Nexus
cd /usr/local/nexus/bin
./nexus start
./nexus console
启动出现问题时,运行console的那个命令查看原因,因为涉及到配置文件升级,需要一会。我们可以去泡杯茶,回来的时候,Nexus已经升级完毕。
8、对于最新版的 Nexus,重复如上步骤,由于2.x之后的版本配置文件完全一致,我们可以直接拿2.7的配置文件覆盖最新版,毫无问题。