本文主要是介绍在ubuntu环境下对nexus进行安装,操作完毕之后登陆 host_ip:8081可以访问nexus。
在本次安装过程中,使用的ubuntu版本为16.04.1 LTS,nexus版本为nexus-3.5-0-02-unix.tar.gz
由于项目的需求,在此安装之前都已经安装完毕Java和Maven,其中java版本为1.8.0_65,并没有使用openjdk, Maven的版本为3.3.9
在网上看到其他同学提到安装nexus之前首先要安装完毕java和Maven。 对于是否需要Maven在官方的文档中并没有说明,但是强调是一定要安装java,并且要注意java的版本要与nexus的版本相匹配,并且不能使用openjdk。
首先使用root用户在/usr/local下创建文件夹nexus。 mkdir -p /usr/local/nexus 。 然后将下载的nexus安装包解压到创建的文件夹下面, tar -zxf uexus-3.5-0-02-unix.tar.gz -C /usr/local/nexus , 解压完毕之后在/usr/local/nexus目录下会有2个文件夹,分别为nexus-3.5.0-02 和 sonatype-work
接着创建一个uexus的系统用户,(后续尝试过使用root用户来启动nexus,会给出明确的提示说当前用户为root,不建议这样使用),从使用管理的角度来说,也不建议由root用户的方式来执行很多操作。 useradd nexus --shell /bin/bash 检查/etc/passwd 看看用户是否创建成功。然后可以设置 /usr/local/nexus为nexus的主目录。 先 使用命令chown -R nexus:nexus /usr/local/nexus 来设置这个文件的属性,然后在/etc/passwd文件中将用户nexus用户的主目录变更为 /usr/local/nexus。更改 /usr/local/nexus的所有者和组之后,一定要到nexus-3.5.0-02 和 sonatype-work文件下确认修改已经成功,否则后面运行时可能会出现 权限不足的提示。
为了避免出现其它的问题,如果可以的话建议将防火墙关闭。 ubuntu下关闭防火墙的操作请大家自行搜索。
接着切换到nexus用户。
然后到nexus-3.5.0-02 目录下启动nexus。 之前有的介绍说是执行./bin/nexus start命令,但是这个命令执行完毕之后出现Starting nexus提示, 接着再用./bin/nexus status命令出现nexus is stopped的提示。 实际上启动需要运行的命令是 ./bin/nexus run
运行的结果如下:
nexus@mediwiki:~/nexus-3.5.0-02$ ./bin/nexus run
2017-08-23 14:11:19,912+0800 WARN [FelixStartLevel] *SYSTEM uk.org.lidalia.sysoutslf4j.context.SysOutOverSLF4JInitialiser - Your logging framework class org.ops4j.pax.logging.slf4j.Slf4jLogger is not known - if it needs access to the standard println methods on the console you will need to register it by calling registerLoggingSystemPackage
...
2017-08-23 14:11:19,922+0800 INFO [FelixStartLevel] *SYSTEM org.sonatype.nexus.bootstrap.ConfigurationBuilder - Properties:
2017-08-23 14:11:19,923+0800 INFO [FelixStartLevel] *SYSTEM org.sonatype.nexus.bootstrap.ConfigurationBuilder - application-host='10.0.1.200'
2017-08-23 14:11:19,923+0800 INFO [FelixStartLevel] *SYSTEM org.sonatype.nexus.bootstrap.ConfigurationBuilder - application-port='8081'
...
从日志中可以看到host使用的IP以及端口。
当看到如下提示的时候,就可以登录了
2017-08-23 14:11:30,228+0800 INFO [jetty-main-1] *SYSTEM org.eclipse.jetty.server.ServerConnector - Started ServerConnector@1436aa33{HTTP/1.1,[http/1.1]}{10.0.1.200:8081}
2017-08-23 14:11:30,228+0800 INFO [jetty-main-1] *SYSTEM org.eclipse.jetty.server.Server - Started @11722ms
2017-08-23 14:11:30,228+0800 INFO [jetty-main-1] *SYSTEM org.sonatype.nexus.bootstrap.jetty.JettyServer -
-------------------------------------------------
Started Sonatype Nexus OSS 3.5.0-02
-------------------------------------------------
登陆的时候为10.0.1.200:8081,并不是有些资料中所说的默认地址为host-ip:8081/nexus
登录之后日志中会出现
2017-08-23 14:11:55,653+0800 INFO [qtp1162315005-53] *UNKNOWN org.apache.shiro.session.mgt.AbstractValidatingSessionManager - Enabling session validation scheduler...
2017-08-23 14:11:55,660+0800 INFO [qtp1162315005-53] *UNKNOWN org.sonatype.nexus.internal.security.anonymous.AnonymousManagerImpl - Using default configuration: AnonymousConfiguration{enabled=true, userId='anonymous', realmName='NexusAuthorizingRealm'}
但是目前还没有发现对登录有什么影响。
使用默认的用户名和密码admin/admin123登录之后,就可以使用了。
这篇文章讲述的内容比较简单,并没有涉及到将nexus设置为一个服务实现开机自启动等操作,以及nexus的使用等。