今天在搭建性能环境时,在svn up更新的时候报错“svn: Can't open file '.svn/lock': Permission denied”, 这是为什么呢?
回顾下我的操作步骤是:
1.checkout一份文件到本地,第一次checkout的时候会提示输入SVN的账号和密码,我输入的SVN的账号是yihan。用的命令为:
sudo svn co svn路径
这里用的yihan的账号获取的svn代码,但是目录下文件的所有者变成了root.
2.部署应用,用admin账号执行部署脚本,此时会执行svn up.执行的命令为:
sudo -u admin -H ./build.sh
但是发现svn up的时候会报错误,提示:没有权限写入或者读取“.svn/lock”文件。
查找资料,才知道原来是权限的问题。
我checkout下来的文件所有者成了root,但是svn up时,用的admin账号。此时admin账号不能对root账号下的文件进行更新操作。
解决办法,
第一种方法是用具有root权限的账号给.svn受权限,让admin对该文件夹具有写权限。然后在svn up的时候就可以。
第二种方法是把.svn的所有者修改给admin用户,svn up的时候也是OK的。
我用的方法是:
sudo chown admin:admin . -R //把目录的所有者修改成admin
所以需要注意,在下载代码时,用admin账号下载:
sudo -u admin svn co svn路径
这样用admin权限去执行部署脚本,svn up时就不会报错了。
回顾下我的操作步骤是:
1.checkout一份文件到本地,第一次checkout的时候会提示输入SVN的账号和密码,我输入的SVN的账号是yihan。用的命令为:
sudo svn co svn路径
这里用的yihan的账号获取的svn代码,但是目录下文件的所有者变成了root.
2.部署应用,用admin账号执行部署脚本,此时会执行svn up.执行的命令为:
sudo -u admin -H ./build.sh
但是发现svn up的时候会报错误,提示:没有权限写入或者读取“.svn/lock”文件。
查找资料,才知道原来是权限的问题。
我checkout下来的文件所有者成了root,但是svn up时,用的admin账号。此时admin账号不能对root账号下的文件进行更新操作。
解决办法,
第一种方法是用具有root权限的账号给.svn受权限,让admin对该文件夹具有写权限。然后在svn up的时候就可以。
第二种方法是把.svn的所有者修改给admin用户,svn up的时候也是OK的。
我用的方法是:
sudo chown admin:admin . -R //把目录的所有者修改成admin
所以需要注意,在下载代码时,用admin账号下载:
sudo -u admin svn co svn路径
这样用admin权限去执行部署脚本,svn up时就不会报错了。