LoginSignup
1
1

More than 5 years have passed since last update.

RaspberryPi2にArchivaセットアップしたメモ

Last updated at Posted at 2015-10-12

RaspberryPi2

Raspbianインストール

NOOBSを使えば特に問題なくできるはず
(SDカードの相性が悪くなければ・・・)

  1. SDFomatterをセットアップしておき、SDカードをフォーマット。

  2. NOOBSをダウンロードして、フォーマットしたSDカードに展開。

  3. ラズパイにSDカード挿して起動。

NOOBSの起動時に言語を選択できるが
日本語を選択すると文字化けするのでそのまま英語でいったほうがいい。

キーボードの設定もできる。
こちらは素直にjpで。

raspi-config

Raspbianインストール後のリブートで起動するraspi-configで少し設定。

  • Boot Options
    Consoleを選択。

  • Internationalisation Options > Change Locale
    ja_JP.UTF-8 UTF-8を追加。
    デフォルトもja_JP.UTF-8 UTF-8に。

  • Internationalisation Options > Change Timezone
    AsiaTokyo

  • Advanced Options > SSH
    Enableに。

  • Advanced Options > Memory Split
    16に。

0でもいいような気がするが
選択できる値として示されているものの最小値が16なので。

設定後、再起動。
以降SSHで。

デフォルトでユーザpi、パスワードraspberryでログインできるはず。
NOPASSWDでsudoできる。

準備

# pi@raspberrypi
sudo su - 

# root@raspberrypi
apt-get update
apt-get upgrade

# archiva用のユーザ作っとく
adduser archiva

Tomcat

スタンドアロン版(Jetty)はARMのwrapperが入ってなかったので
war版を使うことにして、とりあえずTomcat入れる。

ArchivaのドキュメントにはTomcat8の記載がない。
ver7のほうが安全かも。

# archiva@raspberrypi
cd ~

wget http://ftp.meisei-u.ac.jp/mirror/apache/dist/tomcat/tomcat-8/v8.0.27/bin/apache-tomcat-8.0.27.tar.gz

wget https://www.apache.org/dist/tomcat/tomcat-8/v8.0.27/bin/apache-tomcat-8.0.27.tar.gz.md5

diff <(md5sum apache-tomcat-8.0.27.tar.gz) apache-tomcat-8.0.27.tar.gz.md5

改行がないとか、「*」の有無とか差分が出るが、ハッシュが一致してればOK。

tar xzf apache-tomcat-8.0.27.tar.gz 

rm apache-tomcat-8.0.27.tar.gz
rm apache-tomcat-8.0.27.tar.gz.md5

mv apache-tomcat-8.0.27/* ~/
rm -r apache-tomcat-8.0.27

mv ~/conf/tomcat-users.xml ~/conf/tomcat-users.xml.org

cat <<'EOF'> ~/conf/tomcat-users.xml
<?xml version="1.0" encoding="utf-8"?>
<tomcat-users>
  <role rolename="manager-gui"/>
  <role rolename="manager-script"/>
  <role rolename="manager-jmx"/>
  <role rolename="manager-status"/>
  <user username="tomcat" password="tomcat" roles="manager-gui,manager-script,manager-jmx,manager-status"/>
</tomcat-users>
EOF

ユーザ名とパスワードが一緒で全権付与。
実験用の環境なので手抜きしているが、良い子は真似してはいけない。

cat <<'EOF'> ~/bin/setenv.sh
export JAVA_HOME=$(update-alternatives --query java | grep -e '^Value' | awk '{print $2}' | sed -e s:/jre/bin/java$::g)
EOF

setenv.shにぐちゃぐちゃ書いているが、
使いたいバージョンのJAVA_HOMEを設定すればいいと思う。

# 起動
~/bin/startup.sh

# 停止
~/bin/shutdown.sh

http://{ラズパイのIP}:8080/で、あの可愛げのない猫が出てくればOK。

Archiva

ここからが本番。

この辺を参考に。
https://archiva.apache.org/docs/2.2.0/adminguide/webapp.html

こっちのWikiも参考に。
https://cwiki.apache.org/confluence/display/ARCHIVA/Archiva+on+Tomcat

# archiva@raspberrypi
mkdir ~/archiva
cd ~/archiva

wget http://ftp.jaist.ac.jp/pub/apache/archiva/2.2.0/binaries/apache-archiva-2.2.0.war

wget http://www.apache.org/dist/archiva/2.2.0/binaries/apache-archiva-2.2.0.war.md5

diff <(md5sum apache-archiva-2.2.0.war) apache-archiva-2.2.0.war.md5

rm apache-archiva-2.2.0.war.md5

cat <<'EOF'> ~/conf/Catalina/localhost/archiva.xml
<?xml version="1.0" encoding="UTF-8"?>
<Context
    path="/archiva"
    docBase="${catalina.home}/archiva/apache-archiva-2.2.0.war">
  <Resource
      name="jdbc/users"
      auth="Container"
      type="javax.sql.DataSource"
      username="sa"
      password=""
      driverClassName="org.apache.derby.jdbc.EmbeddedDriver"
      url="jdbc:derby:${catalina.home}/archiva/database/users;create=true"/>
  <Resource
      name="jdbc/archiva"
      auth="Container"
      type="javax.sql.DataSource"
      username="sa"
      password=""
      driverClassName="org.apache.derby.jdbc.EmbeddedDriver"
      url="jdbc:derby:${catalina.home}/archiva/database/archiva;create=true"/>
  <Resource
      name="mail/Session"
      auth="Container"
      type="javax.mail.Session"
      mail.smtp.host="localhost"/>
</Context>
EOF

ArchivaのドキュメントではdocBaseapache-archiva-1.1.warになっているが
ダウンロードしたバージョンに合わせて修正。

DataSourceのurlも修正。

Wikiの方を見るとjdbc/archivaも必要らしい。

cd ~/lib

#wget http://central.maven.org/maven2/org/apache/derby/derby/10.1.3.1/derby-10.1.3.1.jar
#wget http://central.maven.org/maven2/org/apache/derby/derbytools/10.1.3.1/derbytools-10.1.3.1.jar
wget http://central.maven.org/maven2/org/apache/derby/derby/10.12.1.1/derby-10.12.1.1.jar
wget http://central.maven.org/maven2/org/apache/derby/derbytools/10.12.1.1/derbytools-10.12.1.1.jar
wget http://central.maven.org/maven2/javax/activation/activation/1.1/activation-1.1.jar
wget http://central.maven.org/maven2/javax/mail/mail/1.4/mail-1.4.jar

依存ライブラリをゲット。
めんどくさい・・・sbtやgradle、mavenのありがたみを実感。

Wikiによるとderbytoolsも必要。

Archivaのドキュメントには

Install derby-10.1.3.1.jar (or later), activation-1.1.jar and mail-1.4.jar into the Tomcat 5.5 common/lib or Tomcat 6.0 lib directory.

との記載があるが derby-10.1.3.1.jarだと

nested exception is java.lang.AbstractMethodError: org.apache.derby.impl.jdbc.EmbedConnection30.isValid(I)Z

と怒られて動かない。

Tomcat8にしたせいだろうか・・・?

derby-10.1.3.1.jarを解凍してjavapで見てみると確かにそんなメソッドはない。
or laterだそうなので、最新を入れとく。

cat <<'EOF'>> ~bin/setenv.sh
export CATALINA_OPTS="-Dappserver.home=$CATALINA_HOME -Dappserver.base=$CATALINA_HOME"
EOF

先にJAVA_HOMEが設定してあるので、追記でリダイレクト。

準備完了。
Tomcatを起動。

~/bin/startup.sh

# 事件が起こらないことを祈って...。
tail -f ~/logs/catalina.out

# archiva.logはTomcat起動直後はまだログファイルがない。すこし待ってから。
tail -f ~/logs/archiva.log

こんなの↓が出て少し気になるが、WARNだし、とりあえず放置。

java.sql.SQLSyntaxErrorException: 'DROP FUNCTION' cannot be performed on 'JPOX_MATCHES' because it does not exist.

http://{ラズパイのIP}:8080/archivaにアクセスし、無事トップページが出ればOK。


このあと管理者ユーザの設定などが必要だが、とりあえずセットアップまで。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1