yufan.me/source/_posts/2015-10-26.md
2024-06-14 02:15:18 +08:00

4.7 KiB
Raw Blame History

title tags categories permalink featureImage id updated date
Nexus升级小记
学习
Nexus
Maven
学习 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的配置文件覆盖最新版,毫无问题。