在Ubuntu 20.04上安装Nexus Repository Manager

欢迎来到我们的教程,了解如何在Ubuntu 20.04上安装Nexus仓库管理器。 Nexus是全球排名第一的构建工件存储库管理器。有两种版本的Nexus信息库管理器:

  • 专业版:借助HA和支持来普遍管理二进制文件和工件。
  • OSS版:普遍免费管理二进制文件和工件。

在本教程中,我们将处理Nexus存储库管理器的OSS版本。

在Ubuntu 20.04上安装Nexus Repository Manager

按照本指南中提供的步骤在Ubuntu 20.04上安装Nexus仓库管理器。

系统要求

请确保您的系统满足最低要求,然后才能继续在Nexus系统要求页面上概述的Ubuntu 20.04上安装Nexus仓库管理器,下面提供了链接。

运行系统更新

更新系统软件包缓存;

apt update

在Ubuntu 20.04上安装Java

Nexus存储库管理器需要Java 8 Runtime Environment(JRE)。您可以安装完整的JDK或仅安装JRE。

您只需运行以下命令即可在Ubuntu 20.04上安装Java 8。

apt update

然后安装Java 8;

apt install openjdk-8-jdk

确认已安装的Java版本;

java -version
openjdk version "1.8.0_282"
OpenJDK Runtime Environment (build 1.8.0_282-8u282-b08-0ubuntu1~20.04-b08)
OpenJDK 64-Bit Server VM (build 25.282-b08, mixed mode)

创建专用的Nexus系统帐户

为了安全起见,Nexus Repository Manager不应以 root 用户。而是为Nexus创建一个系统帐户;

useradd -M -d /opt/nexus -s /bin/bash -r nexus

允许 nexus 用户使用无密码的sudo运行所有命令。

echo "nexus   ALL=(ALL)       NOPASSWD: ALL" > /etc/sudoers.d/nexus

下载Nexus Repository OSS Tarball

接下来,导航至 Nexus储存库OSS下载页面,注册一个帐户并下载Unix tarball的Nexus信息库OSS。

您可以简单地获取链接并使用wget命令拉动tarball,如下所示。请注意,这会下载Nexus的当前稳定发行版, 3.29.2-02,截至撰写本文为止。请确保从下载页面获取最新版本的链接。

wget https://sonatype-download.global.ssl.fastly.net/repository/downloads-prod-group/3/nexus-3.29.2-02-unix.tar.gz

在Ubuntu 20.04上安装Nexus Repository Manager

提取Nexus Repository OSS tarball

导航至下载Nexus tarball的目录,然后将其解压缩到 nexus 用户主目录,在本指南中为 /opt/nexus

mkdir /opt/nexus
tar xzf nexus-3.29.2-02-unix.tar.gz -C /opt/nexus --strip-components=1

检查/ opt / nexus目录的内容;

ls /opt/nexus
bin  deploy  etc  lib  nexus3  NOTICE.txt  OSS-LICENSE.txt  PRO-LICENSE.txt  public  system

设置nexus目录的适当所有权;

chown -R nexus: /opt/nexus

调整Nexus内存堆大小

Nexus的默认最小JVM堆为2037MB,建议最大为4G。如果内存不足,可以通过编辑文件来减少内存 /opt/nexus/bin/nexus.vmoptions 并设置较低的值(用于演示)。

vim /opt/nexus/bin/nexus.vmoptions

替换行的默认值;

-Xms2703m
-Xmx2703m
-XX:MaxDirectMemorySize=2703m
...

例如,将其设置为1024MB;

-Xms1024m
-Xmx1024m
-XX:MaxDirectMemorySize=1024m

进行更改后,保存并退出文件。

在Ubuntu 20.04上运行Nexus Repository

Nexus在以下位置提供了启动脚本 /opt/nexus/bin/nexus

要以独立模式运行Nexus,可以运行此命令。但是,您需要确保Nexus以nexus用户身份运行。

因此,编辑文件 /opt/nexus/bin/nexus.rc 然后取消注释 #run_as_user="" 并添加nexus作为值。

sed -i 's/#run_as_user=""/run_as_user="nexus"/' /opt/nexus/bin/nexus.rc

将Sonatype Work目录(Nexus数据目录)的位置更改为nexus用户有权写的位置。

例如,在我们的设置中,我们将Nexus的主目录设置为 /opt/nexus 并且授予了该目录的nexus用户所有权。

默认情况下,sonatype-work数据目录被上移一个目录,因此,预期将在/ opt下创建该目录,该目录的用户没有写权限。

因此,请编辑/opt/nexus/bin/nexus.vm选项并调整Nexus目录的路径(在以下设置中,该目录将从 ../sonatype-work./sonatype-work)。

vim /opt/nexus/bin/nexus.vmoptions
-XX:LogFile=./sonatype-work/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=./sonatype-work/nexus3
-Dkaraf.log=./sonatype-work/nexus3/log
-Djava.io.tmpdir=./sonatype-work/nexus3/tmp
...

接下来,您可以运行Nexus;

sudo -u nexus /opt/nexus/bin/nexus start

Nexus可能需要一些时间才能启动。启动时,将原木拖尾。

tail -f /opt/nexus/sonatype-work/nexus3/log/nexus.log
2021-02-15 17:10:56,914+0000 INFO  [jetty-main-1]  *SYSTEM org.sonatype.nexus.siesta.SiestaServlet - Initialized
2021-02-15 17:10:56,920+0000 INFO  [jetty-main-1]  *SYSTEM org.sonatype.nexus.repository.httpbridge.internal.ViewServlet - Initialized
2021-02-15 17:10:56,962+0000 INFO  [jetty-main-1]  *SYSTEM org.eclipse.jetty.server.handler.ContextHandler - Started [email protected]{Sonatype Nexus,/,file:///opt/nexus/public/,AVAILABLE}
2021-02-15 17:10:57,082+0000 INFO  [jetty-main-1]  *SYSTEM org.eclipse.jetty.server.AbstractConnector - Started [email protected]{HTTP/1.1, (http/1.1)}{0.0.0.0:8081}
2021-02-15 17:10:57,083+0000 INFO  [jetty-main-1]  *SYSTEM org.eclipse.jetty.server.Server - Started @182105ms
2021-02-15 17:10:57,083+0000 INFO  [jetty-main-1]  *SYSTEM org.sonatype.nexus.bootstrap.jetty.JettyServer - 
-------------------------------------------------

Started Sonatype Nexus OSS 3.29.2-02

-------------------------------------------------

Nexus默认监听TCP端口8081;

netstat -altnp | grep :8081
tcp        0      0 0.0.0.0:8081            0.0.0.0:*               LISTEN      2113/java

您现在应该可以从浏览器访问Nexus网络界面。

创建Nexus Repository Systemd服务

为了轻松管理Nexus信息库服务,请为其创建一个systemd服务单元,如下所示;

cat > /etc/systemd/system/nexus.service << 'EOL'
[Unit]
Description=nexus service
After=network.target

[Service]
Type=forking
LimitNOFILE=65536
ExecStart=/opt/nexus/bin/nexus start
ExecStop=/opt/nexus/bin/nexus stop
User=nexus
Restart=on-abort

[Install]
WantedBy=multi-user.target
EOL

接下来,如果您已经使用上面的启动脚本启动了Nexus,请停止它。

/opt/nexus/bin/nexus stop

重新加载systemd管理器配置;

systemctl daemon-reload

启动并启用Nexus服务,以在系统重启时运行;

systemctl enable --now nexus.service

检查服务状态;

systemctl status nexus
● nexus.service - nexus service
     Loaded: loaded (/etc/systemd/system/nexus.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2021-02-15 17:14:49 UTC; 5s ago
    Process: 67085 ExecStart=/opt/nexus/bin/nexus start (code=exited, status=0/SUCCESS)
   Main PID: 67277 (java)
      Tasks: 41 (limit: 4620)
     Memory: 442.9M
     CGroup: /system.slice/nexus.service
             └─67277 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java -server -Dinstall4j.jvmDir=/usr/lib/jvm/java-8-openjdk-amd64/jre -Dexe4j.moduleName=/opt/nexus/bin/nexu>

Feb 15 17:14:48 ubuntu20 systemd[1]: Starting nexus service...
Feb 15 17:14:49 ubuntu20 nexus[67085]: Starting nexus
Feb 15 17:14:49 ubuntu20 systemd[1]: Started nexus service.

您还可以检查日志以进行验证;

tail -f /opt/nexus/sonatype-work/nexus3/log/nexus.log

访问Nexus存储库Web界面

您现在可以使用以下地址从浏览器访问Nexus存储库 http://server-IP-or-resolvable-hostname:8081

如果UFW正在运行,则需要打开端口8081以允许外部访问。

ufw allow 8081/tcp

接下来,您可以从浏览器访问。这样的界面应该欢迎您。

在Ubuntu 20.04上安装Nexus Repository Manager

设置Nexus信息库管理器

点击右上角的登录按钮。登录为 admin。密码位于文件上, /opt/nexus/sonatype-work/nexus3/admin.password。要获取密码,只需打印文件内容即可。

cat /opt/nexus/sonatype-work/nexus3/admin.password

在Ubuntu 20.04上安装Nexus Repository Manager

登录后,单击 下一个 继续设置Nexus。

  1. 重置Nexus存储库管理员密码
  2. 配置匿名访问。您可以要求用户进行身份验证,然后才能浏览存储库,从而选择禁用对Nexus安全存储库的匿名访问。
  3. 完成设置

您可以通过点击齿轮图标来访问Nexus资源库管理器设置;

在Ubuntu 20.04上安装Nexus Repository Manager

您可以浏览设置并进行调整以满足您的需求。

这标志着本教程有关如何在Ubuntu 20.04上安装Nexus仓库管理器的结尾。

进一步阅读

在Nexus Repository Manager 3文档页面上详细了解Nexus及其设置。

Nexus Repository Manager 3文档页面

其他教程

在Debian 10上安装和设置GVM 20.08

在Ubuntu 20.04上安装Signal Messenger

在Ubuntu 20.04上安装NoMachine

在Ubuntu 20.04上安装和设置GVM 20.08

在Debian 10上安装Nexus Repository Manager

Sidebar