sgykfjsm.github.com

Sonatype Nexusの始め方

自前でmavenリポジトリを運用する場合に、リポジトリ運用を楽にしてくれるソフトウェアがいくつかある。 今回はおそらく良く使われているであろうSonatype NexusのOSS版でmavenリポジトリを始める方法をメモする。

ソフトウェアのダウンロード

http://www.sonatype.org/nexus/go/からtarかzipをダウンロードする。

wgetなどではダウンロードできないので、事前にダウンロードしておく必要がある。ダウンロードしたら、展開する。

1
2
3
4
$ tar zxf ./nexus-2.11.2-06-bundle.tar.gz
$ sudo mv ./nexus-2.11.2-06 /usr/local/
$ sudo ln -sv /usr/local/nexus-2.11.2-06 /usr/local/nexus
`/usr/local/nexus' -> `/usr/local/nexus-2.11.2-06'

設定

nexusを始める前に3.7. Configuring Nexus as a Serviceに書かれている設定を行う。なぜなら、配置した場所でnexusを起動するにはroot権限が必要だが、rootでサービスを起動させるのは推奨されていないから。

1
2
3
4
5
6
7
8
$ sudo useradd nexus -s /bin/false
$ id nexus
uid=501(nexus) gid=501(nexus) groups=501(nexus)
$ sudo cp /usr/local/nexus/bin/nexus /etc/init.d/nexus
$ sudo chmod 755 /etc/init.d/nexus
$ sudo chown root /etc/init.d/nexus
$ ls -l /etc/init.d/nexus
-rwxr-xr-x 1 root root 14601 2015-04-21 00:56 /etc/init.d/nexus```

PIDファイルとlockファイルの配置場所の準備と、nexus関連のディレクトリの所有者をnexusユーザに変える。

1
2
3
4
5
6
$ sudo mkdir -pv -m 755 nexus
mkdir: created directory `nexus’
$ sudo chown -R nexus:nexus /usr/local/nexus-2.11.2-06
$ sudo mkdir -pv /var/lock/nexus
mkdir: created directory `/var/lock/nexus'
$ sudo chown nexus:nexus /var/lock/nexus

設定ファイルを修正する。

1
2
3
4
5
6
7
8
9
$ sudo cp -p /usr/local/nexus/conf/nexus.properties /usr/local/nexus/conf/nexus.properties.org
$ sudo vim /usr/local/nexus/conf/nexus.properties
$ diff /usr/local/nexus/conf/nexus.properties.org /usr/local/nexus/conf/nexus.properties
18a19
> bundleBasedir="/usr/local/nexus”
25c26
< nexus-work=${bundleBasedir}/../sonatype-work/nexus
---
> nexus-work=${bundleBasedir}/sonatype-work/nexus

起動スクリプトを修正する。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
$ sudo vim /etc/init.d/nexus

$ diff /usr/local/nexus/bin/nexus /etc/init.d/nexus
11a12,15
> JAVA_HOME=/usr/lib/jvm/java-1.8.0
> PATH="${JAVA_HOME}/bin:${PATH}"
> export JAVA_HOME
> export PATH
14c18
< NEXUS_HOME=".."
---
> NEXUS_HOME="/usr/local/nexus"
23c27
< #RUN_AS_USER=
---
> RUN_AS_USER="nexus"
34c38
< #PIDDIR="."
---
> PIDDIR="/var/run/nexus"
212c216
< LOCKDIR="/var/lock/subsys"
---
> LOCKDIR="/var/lock/nexus"
552c556
< exit 0
\ No newline at end of file
---
> exit 0

serviceに登録する。

1
2
3
4
5
$ cd /etc/init.d/
$ sudo chkconfig --add nexus
$ sudo chkconfig --levels 345 nexus on
$ sudo chkconfig --list nexus
nexus 0:off 1:off 2:on 3:on 4:on 5:on 6:off

起動する。

1
2
3
$ sudo service nexus start
Starting Nexus OSS...
Started Nexus OSS.

起動が正常にできることを確認できたら、ログインを試す。インストール直後に管理者権限でログインするにはadmin/admin123でログインすれば良い。ログイン後は以下の点を確認し、必要に応じて変更する。

  • AdministratorのパスワードやE-mail Addressを変更する。
  • SMTPの設定を変更する。
  • デフォルトのProxyの設定を変更する。
  • Maven CentralやApache Snapshot、Codehause Snapshotなどの大手リポジトリが保持するカタログINDEXをローカルにダウンロード出来るようにする。
  • deployユーザ