Linux 安装 Nexus 中央仓库
一、Nexus 简介
Nexus 是一款由 Sonatype 公司开发的开源软件仓库管理工具,广泛用于企业级开发环境中。Nexus 主要用于管理和存储各种类型的软件包和依赖项,支持多种流行的软件包格式,如 Maven、npm、NuGet、Docker 等。通过 Nexus,开发团队可以更高效地管理和分发软件包,提高开发和部署的效率。
1.1 nexus 主要功能
1.多仓库支持:
- Maven:支持 Maven 仓库,可以托管私有的 Maven 包。
- npm:支持 npm 仓库,可以托管私有的 npm 包。
- NuGet:支持 NuGet 仓库,可以托管私有的 NuGet 包。
- Docker:支持 Docker 仓库,可以托管私有的 Docker 镜像。
- 其他:还支持其他多种仓库格式,如 PyPI、RubyGems、Debian、Yum 等。
2.统一管理:Nexus 提供了一个统一的界面来管理所有的仓库,简化了多仓库的管理工作。
3.私有仓库:可以创建私有仓库,用于存储和分发内部开发的软件包,提高代码的安全性和可控性。
4.代理仓库:支持代理公共仓库,如 Maven Central、npmjs.com 等,缓存远程仓库的资源,减少对外部网络的依赖,提高构建速度。
5.虚拟仓库:虚拟仓库可以聚合多个仓库,简化依赖解析过程,开发人员只需要配置一个仓库地址即可。
6.权限管理:提供细粒度的权限管理,可以为不同的用户和角色分配不同的权限,确保仓库的安全性。
7.集成支持:支持与多种持续集成和持续交付(CI/CD)工具集成,如 Jenkins、GitLab CI、CircleCI 等。
8.安全性和合规性:提供安全扫描功能,帮助检测和修复软件包中的漏洞。支持审计日志,记录仓库的所有操作,便于追踪和审计。
9.高可用性和扩展性:支持集群部署,提高系统的高可用性和扩展性。
1.2 nexus 版本
Nexus 提供两个主要版本:
- Nexus Repository OSS(开源版):
- 免费使用,包含基本的仓库管理和分发功能。
- 适合中小型企业和个人开发者使用。
- Nexus Repository Pro(专业版):
- 商业版,提供更多的高级功能,如安全扫描、审计日志、集群支持等。
- 适合大型企业和需要更高安全性和管理功能的企业使用。
二、官网下载
需要依赖 JDK8 以上
- 依次选择 Sonatype Nexus Repository -> Product Information -> Download
- 选择 3.54.1-01 的版本,也可以直接选择最新版本
三、Linux 安装
3.1 部署安装
tar
解压到指定目录
# tar 解压到 /usr/local
[root@linux-1 software]# tar -zxvf nexus-3.54.1-01-unix.tar.gz -C /usr/local/
# 重命名 进入/usr/local
[root@linux-1 local]# mv nexus-3.54.1-01/ nexus
- 查看安装目录下的文件
[root@linux-1 nexus]# ls
bin deploy etc lib NOTICE.txt OSS-LICENSE.txt PRO-LICENSE.txt public replicator system
- 修改
nexus-default.properties
配置文件
# 进入/usr/local/nexus/etc 目录下
[root@linux-1 etc]# ls
fabric jetty karaf logback nexus-default.properties ssl
# 修改 nexus-default.properties 配置文件端口 16000
[root@linux-1 etc]# vim nexus-default.properties
## DO NOT EDIT - CUSTOMIZATIONS BELONG IN $data-dir/etc/nexus.properties
##
# Jetty section
application-port=16000
application-host=0.0.0.0
nexus-args=${jetty.etc}/jetty.xml,${jetty.etc}/jetty-http.xml,${jetty.etc}/jetty-requestlog.xml
nexus-context-path=/
# Nexus section
nexus-edition=nexus-pro-edition
nexus-features=\
nexus-pro-feature
nexus.hazelcast.discovery.isEnabled=true
Tip
阿里云 安全组开放端口16000,防火墙也要开放端口16000
3.2 nexus 启动
- 进入
/usr/local/nexus/bin
目录下 启动 nexus
[root@linux-1 bin]# ./nexus start 是后台启动,日志以文件形式保存;
[root@linux-1 bin]# ./nexus run 是当前进程启动,直接打印在控制台;
[root@linux-1 bin]# ./nexus stop 是停止服务;
[root@linux-1 bin]# ./nexus restart 是重启服务;
[root@linux-1 bin]# ./nexus status 是查看服务状态
- 日志目录
[root@linux-1 bin]# cd /usr/local/sonatype-work/nexus3/log
- root user 问题
解决方案
- vim 修改 /usr/local/nexus/bin/nexus 脚本
# 把run_as_root改为 false
- 使用run 命令启动
jvm 内存不够用,需要修改 nexus.vmoptions 的参数
解决 jvm 问题
# 修改nexus.vmoptions的 xms、xmx、MaxDirectMemorySize的大小
[root@linux-1 bin]# ls
contrib nexus nexus.rc nexus.vmoptions
[root@linux-1 bin]# vim nexus.vmoptions
#-Xms128m
#-Xmx512m
#-XX:MaxDirectMemorySize=512m
- 后台启动 nexus
[root@linux-1 bin]# ./nexus start
- 访问地址:http://ip:16000/