简述如何在sourceforge.net上构建项目
[参考文献] 1 准备 注册SF账户去Sourceforge上注册一个账户。为了便于说明,假设你注册的用户为:sfuser;密码为:sfpassword。 创建SF项目登陆你的SF账户,在你的个人账户中创建一个项目。项目并不是立即创建成功,你需要等待SF批准,如果通过的话,SF会给你发信,里面提供了你的项目的信息:项目名称(假设为sfproject) group id(假设为123456) 主页地址(假设为sfproject.sourceforge.net) cvs(假设为sfproject.cvs.sourceforge.net) 2 主页 我们用winscp来维护我们创建的项目的主页。去winscp.net下载winscp(这篇文章写作时最新为4.1.8),并按照提示安装运行puttygen.exe(位于winscp安装目录下的PuTTY目录中) 点击Generate按钮,同时鼠标在PuTTY程序对话框中随意滑动,以产生一些随机数让PuTTY生成ssh key(持续滑动鼠标,直到进度条消失)。 Key comment可以设为你在SF的邮箱以帮助记忆:
[email protected] Key passphase设置ssh key的保护密码:sshkeypassphase 点击Save public key保存SSH key的public key(假设为c:\sf\pub) 点击Save private key保存SSH key的private key(假设为c:\sf\pri.ppk) 注意对话框上部的"Public key for pasting into OpenSSH autorized_keys file:"下面的只读编辑框,里面的东西要用来配置SF账户 到目前为止,SSH key产生好了。设置SF账户(sfuser)的ssh public key 用账户、密码登陆Sourceforge 点击Account Options 找到Host Access Information部分,可以看到Number of SSH Shared Keys on file,默认为0个。编辑SSH public key,在打开的页面中的编辑框中拷入PuTTY对话框上部的"Public key for pasting into OpenSSH autorized_keys file:"下面的只读编辑框中的全部文字,不要添加也不要漏掉。如果puttygen.exe已经被你关掉了,那么重新启动,选择界面上的Load,把刚才保存的SSH key重新加载进来。 运行WinSCP.exe上传主页文件 程序设置如下:
点击Login连接服务器,连接过程中会要求输入ssh Key passphase。登陆成功之后,弹出FTP管理界面,用过其它FTP工具的话,很容易就可以熟悉。可以看到你的home目录下有三个目录: cgi-bin htdocs persistent 如果你上传一个index.htm文件到htdocs目录下,那么你访问你的项目主页sfproject.sourceforge.net 时就能看到你上传的这个页面了(注意: SF要求每一个页面都有SF的logo)。如果你只想自己编辑、上传html文件到htdocs目录,那么主页部分就OK了。如果你想让自己的主页看起来像NSIS 一样,那么你还需要在自己的主页上布置MediaWiki 布置MediaWiki 和上面的过程比起来,这一步稍稍有点复杂。参考Sourceforge:Running MediaWiki on Sourceforge 和MediaWiki:Running MediaWiki on Sourceforge 上的说明。简述步骤如下: SF数据库设置用账户、密码登陆Sourceforge,进入你的工程sfproject 点击Admin/shell/DB/Web,在打开的页面中点击Manage Project Databases 设置readonly,readwrite,admin密码,密码设置成功之后,你就可以用mysql数据库了 s123456ro:passworddb s123456rw:passworddb s123456admin:passworddb 之所以你的数据库用户名以s开头,那是因为我们假设的你的项目名称sfproject第一个字母是s,实际请况取决于你的项目。s后面的123456是你的group id。 创建mysql数据库 用管理员账户s123456admin登陆
https://mysql-s.sourceforge.net/ 这里mysql-s后面的"-s"之所以是"-s",也是因为你的项目名称sfproject第一个字母是s,根据实际情况修改。创建数据库s123456_wikidb MediaWiki 去MediaWiki下载mediawiki,有各种版本,我下载的是较小的1.6.12,对php的要求也较低解压缩得到的压缩文件(mediawiki-1.6.12.tar.gz)(比如c:\sf\mediawiki-1.6.12) 把c:\sf\mediawiki-1.6.12目录中的所有文件都用winscp上传到主页服务器上htdocs/wiki目录中,注意不要拷贝images目录,这个目录之后会特别创建用winscp在persistent目录中创建sessions目录,修改它的权限为所有人rwx 用winscp在wiki目录中创建sessions的符号链接(symbol link) 进入htdocs/wiki目录点击winscp菜单栏/Files/new/link 同样的方法在persistent目录中创建images,在wiki目录中创建images的符号链接;把c:\sf\mediawiki-1.6.12目录下的images中的文件拷贝到persistent/images目录中编辑文件wiki/config/index.php 进入wiki/config,在文件index.php上右键单击选Edit,注释掉如下几行: if( !is_writable( "." ) ) { dieout( "<h2>Can't write config file, aborting</h2> <p>In order to configure the wiki you have to make the <tt>config</tt> subdirectory writable by the web server. Once configuration is done you'll move the created <tt>LocalSettings.php</tt> to the parent directory, and for added safety you can then remove the <tt>config</tt> subdirectory entirely.</p> <p>To make the directory writable on a Unix/Linux system:</p> <pre> cd <i>/path/to/wiki</i> chmod a+w config </pre>" ); } 这个函数大概在156行。在浏览器中打开sfproject.sourceforge.net/wiki安装MediaWiki,配置参数 * Wiki name: sfproject * Contact e-mail:
[email protected] * Admin username : WikiSysop * Password : password * Shared memory caching: No-caching * E-mail (general):disabled * mysql: mysql-s * Database name: s12345_wikidb * DB username : s12345admin * DB password: passworddb 如果一切正确的话,MediaWiki的配置结果会显示在网页上,在wiki目录中创建LocalSettings.php把配置结果拷贝到里面。在ini_set那行后面添加 session_save_path("/home/groups/s/sf/sfproject/htdocs/wiki/sessions/"); 添加Sourdeforge logo 修改文件wiki/includes/Skin.php function getPoweredBy() { global $wgStylePath; $url = htmlspecialchars( "$wgStylePath/common/images/poweredby_mediawiki_88x31.png" ); $sf = '<a href="
http://sourceforge.net"><img src="
http://sflogo.sourceforge.net/sflogo.php?group_id=123456&type=1 " width="88" height="31" border="0" alt="SourceForge.net Logo" /></a>'; $img = '<a href="
http://www.mediawiki.org/"><img src="'.$url.'" alt="MediaWiki" /></a>'.$sf; return $img; } 这个函数大概在973行,把其中的group_id "123456"替换成你自己的group_id 在浏览器中打开sfproject.sourceforge.net/wiki(你可能需要刷新一下),可以看到你的wiki已经可以正常访问。可以参照MediaWiki上的文档修改定制你的wiki 3 CVS 去wincvs.org 下载winscp(我下载的是WinCvs2_0_2-4),并安装打开wincvs,在菜单/Admin/Preferences.../CVS中设置本地的目录,比如c:\sf\sfproject 如果你希望用命令行模式,那么去python.org 下载python并安装(2.1版本以上,个人认为最好2.6版本以上) 菜单/Admin/Preferences.../wincvs页面中设置python和tcl的路径菜单/Admin/Login,CVSROOT 编辑框中输入: ssh:
[email protected] :22/cvsroot/sfproject 具体设置可以参考Sourceforge: WinCvs instructions 如果wincvs返回值是 ***** CVS exited normally with code 0 ***** 那么说明设置连接正确,你就可以进行cvs操作了。 Checkout cvs服务器上的整个项目 在WinCvs的output窗口(默认位于下方)中,输入"cvs checkout .",以把cvs服务器上的文件都下载到本地工作目录中(c:\sf\sfproject)。完成之后你的工作目录里面就会产生CVSROOT目录,接下来你就可以进行cvs操作了。 4 程序&代码发布 到了这一步,程序的发布应该不是问题了,有问题参看sourceforge上的说明 。