Debianにhudsonいれてみる。

以前に話を聞く機会があって、いつかいれたいとおもってたのを試してみる。

20100501追記
現在は、ここにインストールの方法が書いてある。
キーの登録とかも書いてあるので便利
http://hudson-ci.org/debian/
でもよくみたら、置いてあるバージョンが1.352までだったので、
1.355など新しいのを使ってみたい場合は、
http://hudson-labs.org/debian/

いつからかわからないが、デフォルトの起動ポートが8000になっていて、自分的には便利



20080719追記:
debianのパッケージが公開されているので、
http://weblogs.java.net/blog/kohsuke/archive/2008/06/debian_packages.html

deb http://hudson.gotdns.com/debian binary/

sources.listに追加すればよいです。

非常に便利。

以上追記

hudson: an extensible continuous integration engine
https://hudson.dev.java.net/

ここにいって最新の

hudson.war

を、

/var/lib/tomcat5.5/webapp
<||
入れようとしたが、以下のようなエラーがでてはいらず。。。
>||
Sep 29, 2007 4:26:52 PM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Exception sending context initialized event to listener instance of class hudson.WebAppMain
java.lang.ExceptionInInitializerError
        at hudson.WebAppMain.contextInitialized(WebAppMain.java:46)
        at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3764)
        at org.apache.catalina.core.StandardContext.start(StandardContext.java:4216)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:760)
        at org.apache.catalina.core.ContainerBase.access$0(ContainerBase.java:744)
        at org.apache.catalina.core.ContainerBase$PrivilegedAddChild.run(ContainerBase.java:144)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:738)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:544)
        at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:825)
        at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:714)
        at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:490)
        at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)
        at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
        at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1022)
        at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
        at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
        at org.apache.catalina.core.StandardService.start(StandardService.java:448)
        at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.commons.daemon.support.DaemonLoader.start(DaemonLoader.java:177)
Caused by: java.security.AccessControlException: access denied (java.lang.RuntimePermission accessDeclaredMembers)
        at java.security.AccessControlContext.checkPermission(AccessControlContext.java:323)
        at java.security.AccessController.checkPermission(AccessController.java:546)
        at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
        at java.lang.SecurityManager.checkMemberAccess(SecurityManager.java:1662)
        at java.lang.Class.checkMemberAccess(Class.java:2157)
        at java.lang.Class.getDeclaredFields(Class.java:1742)
        at com.thoughtworks.xstream.core.JVM.<clinit>(JVM.java:24)
        ... 32 more
Sep 29, 2007 4:26:52 PM org.apache.catalina.core.StandardContext listenerStop
SEVERE: Exception sending context destroyed event to listener instance of class hudson.WebAppMain
java.lang.NoClassDefFoundError: Could not initialize class com.thoughtworks.xstream.core.JVM
        at com.thoughtworks.xstream.XStream.<init>(XStream.java:275)
        at com.thoughtworks.xstream.XStream.<init>(XStream.java:299)
        at hudson.util.XStream2.<init>(XStream2.java:19)
        at hudson.model.Hudson.<clinit>(Hudson.java:1878)
        at hudson.WebAppMain.contextDestroyed(WebAppMain.java:198)
        at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:3805)
        at org.apache.catalina.core.StandardContext.stop(StandardContext.java:4357)
        at org.apache.catalina.core.StandardContext.start(StandardContext.java:4246)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:760)
        at org.apache.catalina.core.ContainerBase.access$0(ContainerBase.java:744)
        at org.apache.catalina.core.ContainerBase$PrivilegedAddChild.run(ContainerBase.java:144)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:738)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:544)
        at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:825)
        at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:714)
        at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:490)
        at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)
        at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
        at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1022)
        at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
        at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
        at org.apache.catalina.core.StandardService.start(StandardService.java:448)
        at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.commons.daemon.support.DaemonLoader.start(DaemonLoader.java:177)

とりあえず、本家のメーリングリストアーカイブdebianで検索して
https://hudson.dev.java.net/servlets/ReadMsg?list=users&msgNo=219

 /etc/tomcat5.5/policy.d/04hudson.policy

みたいのをつくって

grant {
  permission java.security.AllPermission;
  permission java.lang.RuntimePermission "createClassLoader";
};

と、書いてtomcatを再起動したら、hudsonの画面はでてきた。

しかし、書き込み権限がないってことで、とりあえず書き込めるところを作って以下のオプションつけて立ち上げ直す。

-DHUDSON_HOME=/home/hogehoge/hudson_home

なんとか起動したみたい。

ただ、policyの設定の仕方がこれでいいのだろうか???

あと、かわぐちさんの次の発表資料もおもしろかったです

定時退社のために Java
http://sdc.sun.co.jp/java/event/lecture/JMAR001-05.pdf