Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2358876
  • 博文数量: 527
  • 博客积分: 10343
  • 博客等级: 上将
  • 技术积分: 5565
  • 用 户 组: 普通用户
  • 注册时间: 2005-07-26 23:05
文章分类

全部博文(527)

文章存档

2014年(4)

2012年(13)

2011年(19)

2010年(91)

2009年(136)

2008年(142)

2007年(80)

2006年(29)

2005年(13)

我的朋友

分类: WINDOWS

2007-11-29 14:02:35

我个人的经验: sourceforge 并不易用, 理解并且能按它的一套规则行事不是一件简单的事, 我指的是在上面开个项目. 不是仅仅下载点东西什么的.

要在上面开个项目, 必需先注册一个帐号, 这里不包括注册帐号的部分.

* 首先, 注册完帐号你会有一个 username@users.sourceforge.net 的邮件帐号, 注意, 阴谋已经开始了, sourceforge 明确说, 它不提供 POP, IMAP, SMTP等等传统邮件协议的支持, 不知道它这算是哪门子邮件, 注册这个邮件帐号之外, 你还得额外提供一个真正的邮件帐号, 比如你的163邮件地址. 这个地址用于把发到 username@users.sourceforge.net的信转发给你, 仅仅收个邮件, 你得绕过这么迂回的一个弯子

* 它提供的CVS 服务: 分两类,

    一类是给普通用户用的, 用pserver协议即可, 用户名是 anonymous, 没有密码, 如果提示要密码直接回车即可. 当然访问是只读的.
   
    另一类是给开发者的, 必需通过 ext 协议(使用ssh)才能使用, 而且还必需先生成一对key, 一公一私, 把公钥存到 shell.sf.net 你的用户目录下的 authoried_keys 文件中. 我的情况用 cygwin / ssh. 根据它网站上的帮助, 用
ssh-keygen -t dsa -C "slimzhao@shell.sf.net"

这里有一个容易出问题的地方, 命令运行之后说 key 保存在 ~/.ssh 目录下, 你用 echo ~/ 查看, 它报告用户目录是:
/c/Documents and Settings/zhao
但这个目录下却没有 .ssh 子目录.

实际保存的位置是
C:\cygwin\home\zhao\.ssh
下面, 也就是说, ssh-gen 所理解的 ~/ 目录与 bash所认为的不一样.

* Import 项目
  cvs -t -d :ext:slimzhao@nethelpanywhere.cvs.sf.net/cvsroot/nethelpanywhere import -m '' -C . Slimzhao INIT
  这里又要小心了, /cvsroot/nethelpanywhere 中的 nethelpanywhere 是你的项目名, sf的术语是项目的unix name,  用在很多地方,  比如你项目的主页, 新建项目后它会以此名字给你一个 CVS的主目录, 也就是 /cvsroot/nethelpanywhere, 这下面你有写权限, 如果用 /cvsroot 命令会失败, 因为没有写权限, 同时那个 . 的参数是必需的, 否则cvs import 认为命令参数不够, 因为sf已经替你建立了项目名的目录, 所以不需要再开个目录来存放源代码, 直接用"."代表当前目录.
 
  cvs的 import 命令的后三个参数很难懂, Slimzhao是厂商tag, INIT是 release tag, 还必需指定.

* 注意你不需要运行 cvs init命令. sf已经做好了

* 登录sf提供的shell
  用 putty也可以.
  这里用 cygwin/bash/ssh , 注意不要被帮助里面说的必需生成 key 什么的搞晕, 那是针对你用cvs的, 用 ssh 登录一个交互式的shell 时那并不是必需的, 没有的话它会提示你要用户名密码.

  在它的网站上用户配置中可以选择你希望登录的shell 类型, bash有两个, 一个是bash, 一个是bash2, 不要误以为bash就是bash 1 版本了, 它实际上是版本3(我目前的情况), bash2 这个名字几乎一定会误导你这么理解bash. 可恶!

  登录 ssh之后最主要的事就是维护项目网页, 在 /home/groups/n/ne/nethelpanywhere 下, 命名规则是你的项目 unit 名先按第一个字母分类出一个目录, 再接前两个字母分类出一个子目录.
 
* 关于文本编辑, vim 和 emacs两大神器都提供了.

* 关于在windows/dos 下登录远程 sf主机, 切切注意终端类型, 否则仅仅用一下文本编辑器都会让你死的很难看, 如果先进bash, 再用ssh, 远程查看TERM 环境变量是 cygwin, 此时用文本编辑器没有问题.

* 在cygwin中使用 openssh
  注意它的安装程序可以识别出 openssh所要依赖的其它项目, 从而会自动安装那些要依赖的项目, 但是, 它不会识别出所依赖的项目版本不足的情况, 比如我新安装的 openssh要求 openssl 的0.9.8 版本, 但系统里已经安装了 openssl 的0.9.7 版, 这样安装后的 ssh不能正确执行, 最糟糕的是, 在bash中执行这个命令, 失败时不会有任何提示, 你只能通过echo $? 知道失败, 而只有退回到 cmd.exe的提示符下运行, 才会告诉你所依赖的 cygcrypto-0.9.8.dll 不存在. 如下:
看到了吧, 第一次 ssh 命令找不到, 我跑去安装 openssh, 因为上述原因, 没有更新相应的 openssl版本, 所以第二次运行 ssh没有给我任何结果, 在cmd.exe 提示符下运行时才出现这个对话框, 这是cygwin 下程序的一个通病, 就是在 bash下运行程序时对错误三缄其口. 严重违反"没有消息就是好消息"的原则.

* 向/从远程系统 copy 文件
  用 scp
  用 rsync via ssh
  用 ssh host "commandline" 运行一个命令

* 对 ssh 的简单理解.
  不真正理解这个东西, 简单的使用可以这样: 在本地用 ssh-gen 之类的工具生成一对 key, 一公一私, 私钥保存在你自己电脑上, 公钥上传到你要登录的远程机器上, 一般是其 .ssh 目录下的一个 authorized_keys 文件中, 该文件是文本文件, 一行一个公钥, 用 file这样的工具看该文件类型时, 它会很贴心地说:
.ssh/authorized_keys: ASCII text, with very long lines

  如果你从多个地点登录同一个远程系统, 比如从家里和办公室的电脑上, 可以共享同一对的key, 也可以生成多个, 生成多个时, 多对key中的公钥一行一个都放在那个 authorized_keys 文件中, 远程系统的ssh 服务器会根据你的登录名, .ssh 固定目录名和 authorized_keys 这个固定文件名找到该文件.

* 用putty的 工具也可, 但putty想文件上传/下载文件还得另开一个工具, 所以还是用 cygwin/openssh
sf 推荐都用 ssh2, 说安全得多, 另外私钥要点那个按钮保存起来, 公钥可以保存, 也可以直接 paste到 sf 提供的网页 form中去, 注意上面显示公钥的那个只读的文字框, 看着折行了, 其实是长长的一行.
Key passphrase和 Confirm passphrase可以为空.

* 明确声称不支持 telnet 和 ftp




阅读(1626) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~