在安装仓库之前,需要首先确定服务器上已经安装了 Java。
建议是用 11 以上的版本。11 版本是最低的需求。
我们的安装版本是 11。
![2022-10-18_15-10-21 CentOS 上安装 Sonatype Nexus 仓库_.net](//dev-img.mos.moduyun.com/20231025/92f528e7-06e7-4d08-b457-25e1dd0e0cdf.png)
下载文件
我们会把文件安装到 /opt 目录下,下载文件后解压。
![2022-10-18_15-13-59 CentOS 上安装 Sonatype Nexus 仓库_java_02](//dev-img.mos.moduyun.com/20231025/5de072af-f157-4913-b14d-28314583bcb8.png)
重命名文件夹
有 2 个文件夹需要重命名。
mv nexus-3.42.0-01/ nexus
mv
![2022-10-18_15-16-40 CentOS 上安装 Sonatype Nexus 仓库_.net_03](//dev-img.mos.moduyun.com/20231025/4042d042-574a-4b46-ad65-47c300cbeab6.png)
重命名后的文件夹如上图。
设置运行的用户权限
我们将会使用 nexus 用户来运行。
依次运行下面的命令:
useradd --system --no-create-home nexus
chown -R nexus:nexus /opt/nexus
chown
来对需要运行的用户进行赋权。
![2022-10-18_15-19-02 CentOS 上安装 Sonatype Nexus 仓库_.net_04](//dev-img.mos.moduyun.com/20231025/4dd41439-956e-4b00-b6b4-3a365fba1251.png)
修改数据文件路径
因为我们对数据文件进行了重命名了,所以我们需要修改数据文件的路径。
vim /opt/nexus/bin/nexus.vmoptions
然后保存退出。
-Xms2703m
-Xmx2703m
-XX:MaxDirectMemorySize=2703m
-XX:+UnlockDiagnosticVMOptions
-XX:+LogVMOutput
-XX:LogFile=../nexusdata/nexus3/log/jvm.log
-XX:-OmitStackTraceInFastThrow
-Djava.net.preferIPv4Stack=true
-Dkaraf.home=.
-Dkaraf.base=.
-Dkaraf.etc=etc/karaf
-Djava.util.logging.config.file=etc/karaf/java.util.logging.properties
-Dkaraf.data=../nexusdata/nexus3
-Dkaraf.log=../nexusdata/nexus3/log
-Djava.io.tmpdir=../nexusdata/nexus3/tmp
-Dkaraf.startLocalConsole=false
-Djdk.tls.ephemeralDHKeySize=2048
## additional vmoptions needed for Java9+
## --add-reads=java.xml=java.logging
# --add-exports=java.base/org.apache.karaf.specs.locator=java.xml,ALL-UNNAMED
# --patch-module java.base=${KARAF_HOME}/lib/endorsed/org.apache.karaf.specs.locator-4.3.6.jar
# --patch-module java.xml=${KARAF_HOME}/lib/endorsed/org.apache.karaf.specs.java.xml-4.3.6.jar
# --add-opens java.base/java.security=ALL-UNNAMED
# --add-opens java.base/java.net=ALL-UNNAMED
# --add-opens java.base/java.lang=ALL-UNNAMED
# --add-opens java.base/java.util=ALL-UNNAMED
# --add-opens java.naming/javax.naming.spi=ALL-UNNAMED
# --add-opens java.rmi/sun.rmi.transport.tcp=ALL-UNNAMED
# --add-exports=java.base/sun.net.www.protocol.http=ALL-UNNAMED
# --add-exports=java.base/sun.net.www.protocol.https=ALL-UNNAMED
# --add-exports=java.base/sun.net.www.protocol.jar=ALL-UNNAMED
# --add-exports=jdk.xml.dom/org.w3c.dom.html=ALL-UNNAMED
# --add-exports=jdk.naming.rmi/com.sun.jndi.url.rmi=ALL-UNNAMED
# --add-exports java.security.sasl/com.sun.security.sasl=ALL-UNNAMED
## comment out this vmoption when using Java9+
#
-Djava.endorsed.dirs=lib/endorsed
![2022-10-18_15-21-57 CentOS 上安装 Sonatype Nexus 仓库_xml_05](//dev-img.mos.moduyun.com/20231025/f81c871f-c07c-4ef1-b26b-ebb4e64ed167.png)
如果你的数据文件在不同路径的话,这里也可以进行配置。
编辑 nexus.rc 文件
因为我们的运行用户名修改了,所以这个文件也需要进行修改。
/opt/nexus/bin/nexus.rc
将这行取消注释,修改为下面的内容。
run_as_user="nexus"
![2022-10-18_15-24-48 CentOS 上安装 Sonatype Nexus 仓库_java_06](//dev-img.mos.moduyun.com/20231025/1ef39508-9f91-4bb9-8514-d7524cf24b0b.png)
修改服务端地址和端口
运行下面的命令:
vi /opt/nexus/etc/nexus-default.properties
将端口修改为 9090, 当然你也可以不修改这个端口,主要是为了避免和系统中的其他端口冲突。
地址修改为 127.0.0.1
![2022-10-18_15-27-41 CentOS 上安装 Sonatype Nexus 仓库_java_07](//dev-img.mos.moduyun.com/20231025/aa80f698-207a-47b3-b207-b456fec897dd.png)
修改后的端口和地址如上图。
修改用户打开文件限制
因为进程有打开文件的限制。
在文件的最后添加下面的内容。
nexus - nofile 65536
使用命令打开文件。
vi /etc/security/limits.conf
在文件的最后添加上面的内容。
![2022-10-18_15-30-42 CentOS 上安装 Sonatype Nexus 仓库_java_08](//dev-img.mos.moduyun.com/20231025/e2a28ac7-5a5c-42a0-b52a-62a53d678f6d.png)
设置 Nexus 为服务
使用命令编辑下面的文件:
vi /etc/systemd/system/nexus.service
将下面的内容复制到这个文件中。
[Unit]
Description=Nexus Service
After=syslog.target network.target
[Service]
Type=forking
LimitNOFILE=65536
ExecStart=/opt/nexus/bin/nexus start
ExecStop=/opt/nexus/bin/nexus stop
User=nexus
Group=nexus
Restart=on-failure
[Install]
WantedBy=multi-user.target
![2022-10-18_15-33-54 CentOS 上安装 Sonatype Nexus 仓库_java_09](//dev-img.mos.moduyun.com/20231025/0a9ec994-899b-499e-a536-09ecf7490c5a.png)
然后将上面的文件保存退出。
将服务设置开机启动,并且启动 nexus 服务。
依次运行下面的命名:
systemctl daemon-reload
systemctl enable
![2022-10-18_15-35-45 CentOS 上安装 Sonatype Nexus 仓库_xml_10](//dev-img.mos.moduyun.com/20231025/f55623cb-79b7-4882-93cf-7a4ccdfbe747.png)
启动服务
输入下面的命令来启动服务。
查看服务启动状态
运行下面的命令来查看服务启动的状态。
![2022-10-18_15-38-34 CentOS 上安装 Sonatype Nexus 仓库_xml_11](//dev-img.mos.moduyun.com/20231025/5f7a9c81-d923-4930-9b46-b5f0be86e0ab.png)
查看端口状态,如果正常启动端口应该会显示被占用。
![2022-10-18_15-40-10 CentOS 上安装 Sonatype Nexus 仓库_java_12](//dev-img.mos.moduyun.com/20231025/a517008d-8caf-4930-960a-d43b230d1fed.png)
上面显示 9090 端口被占用。
需要注意的是,第一次启动比较耗时,需要耐心等待。
校验安装
如果你没有安装反向代理,并且没有防火墙的话。
通过 9090 端口,应该就可以正常访问了。
如果能看到下面的界面,则说明安装已经成功了。
![2022-10-18_15-58-25 CentOS 上安装 Sonatype Nexus 仓库_xml_13](//dev-img.mos.moduyun.com/20231025/4eead15d-bff3-452a-9fa9-7c4044567483.png)
https://www.ossez.com/t/centos-sonatype-nexus/14153