RaspberryPi2
Raspbianインストール
NOOBSを使えば特に問題なくできるはず
(SDカードの相性が悪くなければ・・・)
-
SDFomatterをセットアップしておき、SDカードをフォーマット。
-
NOOBSをダウンロードして、フォーマットしたSDカードに展開。
-
ラズパイに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
Asia
、Tokyo
。 -
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のドキュメントではdocBase
がapache-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
andmail-1.4.jar
into the Tomcat 5.5common/lib
or Tomcat 6.0lib
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。
このあと管理者ユーザの設定などが必要だが、とりあえずセットアップまで。