目录
一. 环境准备
二. 安装jdk
三. 搭建Nexus存储库
四. 使用介绍
一. 环境准备
主机名 | IP | 系统 | 软件版本 | 配置信息 |
nexus | 192.168.226.26 | Rocky_linux9.4 | Nexus Repository 3.70.1 MySQL8.0 jdk-11.0.23 | 2核2G,磁盘20G |
进行时间同步,关闭防火墙和selinux
Java Archive Downloads - Java SE 11 | Oracle 台灣https://www.oracle.com/tw/java/technologies/javase/jdk11-archive-downloads.html
下载 (sonatype.com)https://help.sonatype.com/en/download.html
二. 安装jdk
上传至服务器
[root@nexus ~]# ll
total 164856
-rw-------. 1 root root 815 Jun 6 14:00 anaconda-ks.cfg
-rw-r--r-- 1 root root 168807248 Jul 29 19:31 jdk-11.0.23_linux-x64_bin.rpm
安装jdk
[root@nexus ~]# yum install -y jdk-11.0.23_linux-x64_bin.rpm
验证安装
[root@nexus ~]# java -version
java version "11.0.23" 2024-04-16 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.23+7-LTS-222)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.23+7-LTS-222, mixed mode)
默认的安装目录在/usr/lib/jvm/
[root@nexus jdk-11-oracle-x64]# pwd
/usr/lib/jvm/jdk-11-oracle-x64
[root@nexus jdk-11-oracle-x64]# ll
total 24
-rw-r--r-- 1 root root 160 Mar 12 05:22 README.html
drwxr-xr-x 2 root root 4096 Jul 29 19:33 bin
drwxr-xr-x 4 root root 112 Jul 29 19:33 conf
drwxr-xr-x 3 root root 132 Jul 29 19:33 include
drwxr-xr-x 2 root root 4096 Jul 29 19:33 jmods
drwxr-xr-x 72 root root 4096 Jul 29 19:33 legal
drwxr-xr-x 7 root root 4096 Jul 29 19:33 lib
drwxr-xr-x 3 root root 18 Jul 29 19:33 man
-rw-r--r-- 1 root root 1314 Mar 12 05:22 release
三. 搭建Nexus存储库
[root@nexus ~]# ll
total 414896
-rw-------. 1 root root 815 Jun 6 14:00 anaconda-ks.cfg
-rw-r--r-- 1 root root 168807248 Jul 29 19:31 jdk-11.0.23_linux-x64_bin.rpm
-rw-r--r-- 1 root root 256037663 Jul 29 19:43 nexus-3.70.1-02-java11-unix.tar.gz
解压缩
[root@nexus ~]# tar -zxvf nexus-3.70.1-02-java11-unix.tar.gz -C /opt[root@nexus ~]# ll /opt
total 0
drwxr-xr-x 10 root root 181 Jul 29 19:56 nexus-3.70.1-02
drwxr-xr-x 3 root root 20 Jul 29 19:56 sonatype-work
nexus-3.70.1-02
目录包含了运行 Nexus Repository 所需的所有程序文件和静态资源。
sonatype-work
目录包含了 Nexus Repository 在运行时生成的所有动态数据和用户自定义配置。
创建一个系统用户
[root@nexus ~]# useradd -r nexus
修改属主和属组
[root@nexus ~]# chown -R nexus:nexus /opt/nexus-3.70.1-02/
[root@nexus ~]# chown -R nexus:nexus /opt/sonatype-work
切换到nexus用户
[root@nexus ~]# su -l nexus
进入bin目录
[nexus@nexus root]$ cd /opt/nexus-3.70.1-02/bin/
前台启动,并查看日志,如果要后台启动可以将run替换成start
[nexus@nexus bin]$ ./nexus run
此时,浏览器访问IP+8081端口,例如我这里访问http://192.168.226.26:8081/
点击登录
初始用户名:admin 初始密码:在登录的提示路径文件里,查看后复制粘贴登录
[root@nexus ~]# cat /opt/sonatype-work/nexus3/admin.password
6ec6beee-8c9e-4d24-a0b1-3daf8da5d11c
四. 使用介绍
将其一个一个删除即可。
创建仓库类型为yum ,Nexus 仓库类型包括 Group、Hosted 和 Proxy。
Group(组仓库):用于组织其他仓库,它本身不存储任何软件包。Group 仓库可以包含其他类型的仓库,例如 Hosted 或 Proxy 仓库,以方便管理和访问。
Hosted(宿主仓库):用于存储自己构建或上传的软件包。Hosted 仓库通常用于内部开发团队共享软件包,或者用于存储私有软件包。
Proxy(代理仓库):用于代理其他公共仓库的软件包。Proxy 仓库可以缓存公共仓库中的软件包,以提高下载速度和节省带宽。Proxy 仓库还可以用于管理和控制对公共仓库的访问。
创建仓库
将复制的链接,替换到下述命令中去终端执行,替换的位置见图,可参考我替换好的代码分析
此原理就是将rocky系统原本的源的baseurl全部替换为我们的Nexus存储库的链接
sed -e 's|^mirrorlist=|#mirrorlist=|g' \-e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=http://192.168.226.26:8081/repository/rocky/|g' \-i.bak \/etc/yum.repos.d/rocky*.repodnf makecache
查看刚创建的库
查看刚配置好仓库中的一些包
下载一个软件包
[root@nexus ~]# yum install -y vsftpd
刷新网页再次打开查看
这时,通过对比下载命令执行前后,可以发现配置好后下载包会进行缓存数据
此时,我们回退历史命令,即撤销刚下载vsftpd
[root@nexus ~]# yum history
ID | Command line | Date and time | Action(s) | Altered
------------------------------------------------------------------------------------------------------------------------------------------------------------------6 | install -y vsftpd | 2024-07-29 21:15 | Install | 1 5 | install -y jdk-11.0.23_linux-x64_bin.rpm | 2024-07-29 19:33 | Install | 1 4 | install -y vim wget unzip tar lrzsz | 2024-07-02 17:23 | Install | 7 3 | -y install epel-release | 2024-07-02 17:21 | Install | 1 EE2 | install -y lrzsz | 2024-07-02 17:20 | Install | 1 <1 | | 2024-06-06 13:57 | Install | 336 >E[root@nexus ~]# yum history undo 6
这时,在Nexus存储库中已经有了缓存,这时回退命令后,我们再次重新下载,可以发现下载时间是瞬间就好了
[root@nexus ~]# yum install -y vsftpd
Nexus 存储库管理器的作用是集中管理各种软件包和库文件,从而简化开发和运维团队的工作流程。通过配置 Nexus 存储库并将系统的 .repo
文件的 baseurl
替换为 Nexus 存储库的链接,可以实现以下目的:
-
集中管理依赖项:
- Nexus 作为一个中央存储库,可以存储和管理多个不同来源的包,例如 Maven、npm、NuGet、YUM、Docker 等。这使得开发团队可以集中管理所有的依赖项,从而简化项目的依赖管理。
-
加速构建和部署:
- 通过使用本地的 Nexus 存储库,可以减少对外部网络的依赖,加速构建和部署过程。团队成员可以从本地 Nexus 存储库中快速获取所需的包和依赖项,而无需等待从外部源下载。
-
提高安全性和稳定性:
- Nexus 存储库可以对存储的包和依赖项进行版本控制,确保开发团队使用的是经过验证和安全的版本。此外,Nexus 还可以设置访问权限,确保只有授权人员才能上传和下载包,提升安全性。
-
缓存和镜像功能:
- Nexus 可以作为外部存储库的缓存或镜像。当你配置了阿里云仓库的链接并将
.repo
文件的baseurl
替换为 Nexus 存储库的链接后,Nexus 会在第一次请求时从阿里云仓库获取包并缓存到本地。以后再请求相同的包时,将直接从本地 Nexus 存储库中获取,从而提高下载速度和稳定性。
- Nexus 可以作为外部存储库的缓存或镜像。当你配置了阿里云仓库的链接并将