在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