在我的gentoo里试安装roo,喜欢新东西,所以下的是开发版,1.1.0已经不需要ROO_HOME环境变量了
从spring下个zip包解压出来就可以用了,看下面:
ben@ben ~
$ ls /opt/java/spring-roo-1.1.0.M1/
annotations bin bundle cache conf docs legal readme.txt samples
不过全用时发现non-root用户不能正常使用,报错是roo目录下的cache不能访问,所以联想到可能是文件系统访问权限问题,如:
ERROR: Error creating archive. (java.io.FileNotFoundException: /opt/java/spring-roo-1.1.0.M1/cache/bundle22/version0.0/revision.location (Permission denied)) java.io.FileNotFoundException: /opt/java/spring-roo-1.1.0.M1/cache/bundle22/version0.0/revision.location (Permission denied)
我的解决办法是:acl
当然你要知道什么是acl,假设你知道了ACL
我在fstab的opt的defauilts后加上了acl(注意红色部分)
ben@ben ~ $ grep /opt /etc/fstab /dev/vg0/opt /opt ext3 defaults,acl 1 2
顺理成章当然要
sudo mount -o remount /opt
那么...
ben@ben ~ $ mount | grep opt /dev/mapper/vg0-opt on /opt type ext3 (rw,acl )
这样就打开acl了
只要再
ben@ben ~ $ sudo setfacl -d -m u:ben:rwx /opt/java/spring-roo-1.1.0.M1/cache/ ben@ben ~ $ sudo setfacl -R -m u:ben:rwx /opt/java/spring-roo-1.1.0.M1/cache/
验证一下
ben@ben ~ /workspace/rooweb $ getfacl /opt/java/spring-roo-1.1.0.M1/cache/ getfacl: Removing leading '/' from absolute path names # file: opt/java/spring-roo-1.1.0.M1/cache/ # owner: root # group: root user::rwx user:ben:rwx group::r-x mask::rwx other::r-x default:user::rwx default:user:ben:rwx default:group::r-x default:mask::rwx default:other::r-x
cache下的目录应该也需要给ben以rwx权限
再执行一下roo就不会出错了
ben@ben ~ /workspace/rooweb $ roo ____ ____ ____ / __ / __ / __ / /_/ / / / / / / / / _, _/ /_/ / /_/ / /_/ |_|____/____/ 1.1.0.M1 [rev 3a0b8a3] Welcome to Spring Roo. For assistance press TAB or type "hint" then hit ENTER. roo>