This commit is contained in:
2025-11-24 23:21:19 +08:00
parent 38b93a1115
commit 0193a8947f
3 changed files with 527 additions and 111 deletions

140
next/next安装.md Normal file
View File

@@ -0,0 +1,140 @@
1、下载压缩包并解压
```gitlab
cd /data/
wget https://download.sonatype.com/nexus/3/nexus-3.86.2-01-linux-x86_64.tar.gz
tar -zxf nexus-3.86.2-01-linux-x86_64.tar.gz
mv nexus-3.86.2-01-linux-x86_64 nexus
```
2、创建nexus用户、给权限、更改脚本使用nexus用户
```gitlab
useradd -M -r -s /bin/false nexus
chown -R nexus:nexus /data/nexus
cd /data/nexus
vim /data/nexus/bin/nexus
# user to execute as; optional but recommended to set
run_as_user='nexus'
```
3、创建systemctl
```gitlab
vim /etc/systemd/system/nexus.service
[Unit]
Description=Nexus Repository Manager
After=network.target
[Service]
Type=forking
LimitNOFILE=65536
User=nexus
Group=nexus
ExecStart=/data/nexus/bin/nexus start
ExecStop=/data/nexus/bin/nexus stop
Restart=on-abort
# JVM 内存你可根据机器调整 (默认 2G),在 nexus.vmoptions 修改,这里的路径要跟随实际解压出来的路径,或者是用本机的
Environment=JAVA_HOME=/data/nexus/jdk/temurin_17.0.13_11_linux_x86_64/jdk-17.0.13+11Environment=JAVA_HOME=/data/nexus/jdk
Environment=RUN_AS_USER=nexus
[Install]
WantedBy=multi-user.target
```
4、重载systemctl、启动、查看日志
```gitlab
systemctl daemon-reload
systemctl start nexus
systemctl status nexus -l
# 日志
tail -f /data/sonatype-work/nexus3/log/nexus.log
# 如果报错执行5/data/nexus/bin/nexus: line 175: /data/sonatype-work/nexus3/nexus.pid: Permission denied
```
5、给工作目录权限
```gitlab
chown -R nexus:nexus /data/nexus
chown -R nexus:nexus /data/sonatype-work
chmod -R 755 /data/sonatype-work
# 重启查看
systemctl restart nexus
systemctl status nexus -l
# 端口占用8081
ss -ntl | grep 8081
# 自启
systemctl enable nexus
```
6、账号密码
```gitlab
默认账号admin
密码cat /data/sonatype-work/nexus3/admin.password
```
---
扩展
```gitlab
# Nexus 3 有两个目录:程序目录 + 数据目录
NEXUS_HOME程序目录 存放程序文件、脚本、jar /data/nexus/
NEXUS_DATA数据目录 存放仓库数据、配置、日志 /data/sonatype-work/nexus3/
/data/nexus/ # 下载官方tar包解压后改名的目录
├── bin/ # nexus 启动脚本
├── etc/ # 配置文件
├── deploy/
├── jdk/
├── *.txt
/data/sonatype-work/nexus3/ # 所有仓库的数据(比如 Maven 私服上传的 artifacts都存这里
├── blobs/ # 仓库文件,所有上传的 jar 包都在这
├── db/ # 配置数据库
├── etc/ # 配置
├── log/ # 日志
├── cache/
└── nexus.pid # PID 文件
```
---
异常
```gitlab
查看日志报错:
tail -f /data/sonatype-work/nexus3/log/nexus.log
2025-11-21 12:06:34,120+0800 WARN [Timer-0] *SYSTEM java.util.prefs - Couldn't flush user prefs: java.util.prefs.BackingStoreException: Couldn't get file lock.
2025-11-21 12:06:38,968+0800 INFO [qtp2016701496-114] *UNKNOWN org.apache.shiro.session.mgt.AbstractValidatingSessionManager - Enabling session validation scheduler...
2025-11-21 12:06:38,985+0800 INFO [qtp2016701496-114] *UNKNOWN org.sonatype.nexus.internal.security.anonymous.AnonymousManagerImpl - Using default configuration: AnonymousConfigurationData{enabled=true, userId='anonymous', realmName='NexusAuthorizingRealm'}
2025-11-21 12:06:53,592+0800 INFO [quartz-14-thread-4] *TASK org.sonatype.nexus.quartz.internal.task.QuartzTaskInfo - Task 'Malicious Risk On Disk - Auto enable Health Check for proxy repositories on startup' [malicious-risk-on-disk-auto-enable-rhc] state change WAITING -> RUNNING
2025-11-21 12:06:53,594+0800 INFO [quartz-14-thread-4] *TASK com.sonatype.nexus.risk.riskondisk.MaliciousRiskOnDiskAutoEnableRHCTask - Starting malicious-risk-on-disk-auto-enable-rhc task
2025-11-21 12:06:53,594+0800 INFO [quartz-14-thread-4] *TASK com.sonatype.nexus.risk.riskondisk.MaliciousRiskOnDiskAutoEnableRHCTask - Found 2 proxy repositories
2025-11-21 12:06:53,673+0800 INFO [quartz-14-thread-4] *TASK com.sonatype.nexus.risk.riskondisk.MaliciousRiskOnDiskAutoEnableRHCTask - Completed malicious-risk-on-disk-auto-enable-rhc task
2025-11-21 12:06:53,674+0800 INFO [quartz-14-thread-4] *TASK org.sonatype.nexus.quartz.internal.task.QuartzTaskInfo - Task 'Malicious Risk On Disk - Auto enable Health Check for proxy repositories on startup' [malicious-risk-on-disk-auto-enable-rhc] state change RUNNING -> WAITING (OK)
2025-11-21 12:07:04,119+0800 WARN [Timer-0] *SYSTEM java.util.prefs - Could not lock User prefs. Unix error code 2.
2025-11-21 12:07:04,119+0800 WARN [Timer-0] *SYSTEM java.util.prefs - Couldn't flush user prefs: java.util.prefs.BackingStoreException: Couldn't get file lock.
# 因为 Nexus 用 systemd 方式启动时Java 会尝试写入,~/.java/.userPrefs/,但 nexus 用户没有对应目录,或者目录不可写
# 创建的nexus的家目录并给权限
mkdir -p /home/nexus/.java/.userPrefs
chown -R nexus:nexus /home/nexus/.java
# 如果 nexus 用户没有 home
usermod -d /home/nexus nexus
# 重启 nexus 服务
systemctl restart nexus
```