GNU/Linux用户如何使用GRO,cnix有一篇说明, 我按照自己的使用方法,对其中没提到的部分进行一些补充。
Linux发行版中使用的SSH通常为OpenSSH,它支持SSH1和SSH2。 GRO使用的SSH支持SSH2(GRO项目确认邮件里面仍写着只支持SSH1),所以上传的public key建议使用dsa。
在自己机器上生成SSH2 key可以用下面命令:
$ ssh-keygen -t dsa
如果是生成SSH1 key,应使用下面命令:
$ ssh-keygen -t rsa1
GRO的Shell出于安全考虑没有开放,但我们可以用它来测试上传的SSH key是否生效。
比如,键入下面命令:
$ ssh jungle@gro.clinux.org
如果显示如下信息,则表明Key已经生效。
Congratulations! If you see this info, you have putty correctly configurated! You need not login. Please go directly trying your CVS client. Connection gro.clinux.org closed.
现在的Linux系统下默认CVS_RSH=ssh,如果你没有设置CVS_RSH,可以省掉export CVS_RSH=ssh这一步。
新项目创建以后,首先需要导入项目,因为GRO的源码库是空的(实际里面有一个CVSROOT目录,但由于权限限制,无法检出)。
例如,我是这样导入cvsdoc的:
$ cd cvsdoc $ cvs -z3 -d :ext:jungle@cvs.cvsdoc-zh.gro.clinux.org:/cvs/cvsdoc-zh import cvsdoc jungle init
导入成功之后(可以通过GRO的CVSWEB查看),还需要导出一份到本机的工作目录中。
例如:
$ mkdir gro $ cd gro $ cvs -z3 -d :ext:jungle@cvs.cvsdoc-zh.gro.clinux.org:/cvs/cvsdoc-zh co cvsdoc
GRO提供的主页空间在Linux下用sftp进行管理非常方便,sftp也在OpenSSH包中。
cvsdoc-zh项目建立后,在服务器上的会有一个目录:/home/groups/cvsdoc-zh。里面包括几个子目录:
cgi-bin htdocs incoming log
其中htdocs是放置主页的根目录,incoming为发布软件包必须要使用的临时文件夹。
因为事先上传了SSH key,所以sftp登录GRO的服务器很简单,只需:
$ sftp jungle@gro.clinux.org
用上面命令登录到服务器后,当前目录是用户的HOME目录。 接着我们就可以使用put,get这些ftp的上传、下载命令来更新主页文件了。 当大量文件需要更新时,使用sftp的交互方式并不方便, 这时可以写一个batchfile,用它来自动更新所有文件。
下面是更新cvsdoc-zh的batchfile:sftp2gro,供大家参考:
cd /home/groups/cvsdoc-zh/ put cvsdoc/zh_CN/cvsdoc-zh_gb-v1_12_5_1.tar.gz incoming/ put cvsdoc/zh_CN/cvsdoc-zh_gb-v1_12_5_1.tar.bz2 incoming/ put cvsdoc/zh_CN/cvsdoc-zh_gb-v1_12_5_1.info.tar.bz2 incoming/ put cvsdoc/zh_CN/cvsdoc-zh_gb-v1_12_5_1.zip incoming/ put cvsdoc/zh_TW/cvsdoc-zh_b5-v1_12_5_1.tar.gz incoming/ put cvsdoc/zh_TW/cvsdoc-zh_b5-v1_12_5_1.tar.bz2 incoming/ put cvsdoc/zh_TW/cvsdoc-zh_b5-v1_12_5_1.zip incoming/ put cvsdoc/zh_CN/html/*.html htdocs/cvsdoc/zh_CN/html/ put cvsdoc/zh_TW/html/*.html htdocs/cvsdoc/zh_TW/html/ put *.html htdocs/ put images/* htdocs/images/ put style/*.css htdocs/style/ bye
使用的时候,只需键入:
$ sftp -b sftp2gro jungle@gro.clinux.org
就能自动更新所有文件:-)