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