넥서스 저장소 설치


0. 넥서스 저장소 란?

Nexus Repository는 Maven에서 사용할 수 있는 오픈 소스 저장소 중 하나입니다.

외부 리포지토리 접근이 어려운 경우 넥서스 리포지토리를 사내 리포지토리로 사용할 수 있으며, 팀에서 자주 사용하는 라이브러리를 넥서스 리포지토리에 업로드하여 팀 간에 공유할 수 있습니다.

Nexus Repository는 Docker 및 Helm과 같은 다양한 유형도 지원합니다.



1. 구성 요소 및 Nexus Repository 설치 파일 다운로드

Nexus Repository 설치를 거친 구성 요소는 다음과 같습니다.

버전
우분투(OS) 18.04(x64)
연결점 3.45.0-01
자바 1.8

설치할 Nexus 버전(3.45.0-01)에는 Java 8 버전이 필요합니다.


넥서스 저장소 설치 1
Nexus 공식 페이지 화면 – 필요한 Java 버전

먼저 원하는 버전의 Nexus Repository 파일을 다운로드합니다.

https://help.sonatype.com/repomanager3/product-information/download/download-archives—repository-manager-3

아카이브 다운로드 – Repository Manager 3

Nexus Repository OSS는 Sonatype, Inc.와 Sencha Inc. 간에 합의된 FLOSS 예외에 따라 Sencha Ext JS와 함께 배포됩니다.

Sencha Ext JS는 GPL v3에 따라 라이선스가 부여되며 비공개 소스 작업의 일부로 재배포할 수 없습니다.

help.sonatype.com


넥서스 저장소 설치 2
넥서스 공식 페이지 화면 – 넥서스 저장소 파일 다운로드

Ubuntu 가상 머신에서 다양한 버전의 Java를 사용하기 위해 Binary로 설치를 진행했습니다.


Binary 설치가 필요 없다면 apt를 이용하여 Java 설치를 진행하셔도 무방합니다 🙂


2. Java 및 Nexus 리포지토리 설치

nexus는 루트 사용자로 실행하는 것을 권장하지 않기 때문에, 연결점 사용자를 추가합니다.

$ sudo adduser nexus

$ visudo

## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
nexus   ALL=(ALL)       NOPASSWD:ALL

선택한 경로에 Nexus Repository 파일의 압축을 풉니다.

나의 경우에는 /고르다 경로에 위치.

이전에 만든 연결점 사용자 권한을 변경하십시오.

$ tar -xzvf nexus-3.45.0-01-unix.tar.gz

$ ls -al
drwxr-xr-x 10 root root      4096 Apr 15 06:33 nexus-3.45.0-01
-rw-r--r--  1 root root 210211563 Dec 27 22:59 nexus-3.45.0-01-unix.tar.gz
drwxr-xr-x  3 root root      4096 Apr 15 06:33 sonatype-work

$ mv nexus-3.45.0-01 /opt/nexus
$ mv sonatype-work /opt

$ chown -R nexus:nexus /opt/nexus
$ chown -R nexus:nexus /opt/sonatype-work

$ ls -l
drwxr-xr-x 10 nexus nexus 4096 Apr 15 06:33 nexus
drwxr-xr-x  3 nexus nexus 4096 Apr 15 06:33 sonatype-work

jdk가 설치된 경로를 확인하여 JAVA_HOME 환경변수 등록 후 연결점 사용자 계정의 ~/.bashrc 파일에서 등록을 진행해주세요!

Java Binary 설치를 진행하시려면 아래 글을 참고해주세요 🙂

더보기

Java 바이너리 파일 압축 해제를 진행합니다.

$ tar -xzvf jdk-8u361-linux-x64.tar.gz

# Nexus 설치 경로에 Java Binary 파일을 옮겨서 사용할 예정입니다 !
$ mv jdk1.8.0_361/ /opt/nexus/ $ chown -R nexus:nexus /opt/nexus/jdk1.8.0_361 $ java -version Command 'java' not found, but can be installed with: apt install default-jre apt install openjdk-11-jre-headless apt install openjdk-8-jre-headless # nexus 계정으로 접속하여 ~/.bashrc 파일에 Java 환경변수를 등록합니다.

$ su - nexus $ vi ~/.bashrc export JAVA_HOME=/opt/nexus/jdk1.8.0_361 # Java Binary 파일의 경로 입력 export PATH="$PATH:$JAVA_HOME/bin" $ source ~/.bashrc $ java -version java version "1.8.0_361" Java(TM) SE Runtime Environment (build 1.8.0_361-b09) Java HotSpot(TM) 64-Bit Server VM (build 25.361-b09, mixed mode)

3. 넥서스 설정

Nexus가 실행 중일 때 사용자를 nexus로 설정하려면 /opt/nexus/bin/nexus.rc 파일을 편집합니다.

vi /opt/nexus/bin/nexus.rc
# run_as_user="" 부분의 앞에 주석을 꼭 제거한 후 저장해주세요. !
run_as_user="nexus" $ cat /opt/nexus/bin/nexus.rc run_as_user="nexus"

넥서스 포트 설정 /opt/nexus/etc/nexus-default.properties 파일에서 할 수 있습니다.

$ vi /opt/nexus/etc/nexus-default.properties

... 생략 ...
## DO NOT EDIT - CUSTOMIZATIONS BELONG IN $data-dir/etc/nexus.properties
##
# Jetty section
application-port=8081 # Port 설정 부분 !
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=/

부팅 시 자동으로 시작되는 Ubuntu 가상 머신 /etc/init.d에 등록하십시오.

$ sudo ln -s /opt/nexus/bin/nexus /etc/init.d/nexus

넥서스 실행 후 연결이 정상인지 확인!

$ /etc/init.d/nexus start
Starting nexus

$ netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -
tcp        0      0 0.0.0.0:8081            0.0.0.0:*               LISTEN      13546/java
tcp        0      0 127.0.0.1:32851         0.0.0.0:*               LISTEN      13546/java
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      -
tcp6       0      0 :::22                   :::*                    LISTEN      -

$ curl -v http://localhost:8081
* Rebuilt URL to: http://localhost:8081/
*   Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to localhost (127.0.0.1) port 8081 (#0)
> GET / HTTP/1.1
> Host: localhost:8081
> User-Agent: curl/7.58.0
> Accept: */*
>
< HTTP/1.1 200
< Date: Sat, 15 Apr 2023 07:06:56 GMT
< Server: Nexus/3.45.0-01 (OSS)
< X-Content-Type-Options: nosniff
< X-Frame-Options: DENY
< X-XSS-Protection: 1; mode=block
< Content-Type: text/html
< Last-Modified: Sat, 15 Apr 2023 07:06:56 GMT
< Pragma: no-cache
< Cache-Control: no-cache, no-store, max-age=0, must-revalidate, post-check=0, pre-check=0
< Expires: 0
< Content-Length: 8920
<
... 생략 ...

브라우저를 사용하여 Nexus에 연결하여 확인하십시오. 🙂


넥서스 저장소 설치 4
넥서스 메인화면

Nexus에 관리자로 로그인하기 위한 초기 비밀번호는 /opt/sonatype-work/nexus3/admin.password에서 찾을 수 있습니다!

아이디 : 관리자

비밀번호 :

$ cat /opt/sonatype-work/nexus3/admin.password
c439bacf-2d4a-4200-a696-5478da9f08d2