设置开发环境

1引言

本文提供以下发行版Linux的开发环境搭建方法:

  • Ubuntu 14.04

  • Ubuntu 13.10

  • Ubuntu 12.10

  • Ubuntu 12.04

  • openSUSE 13.1

  • openSUSE 12.3

  • openSUSE 12.2

  • Fedora 20

  • Fedora 19

  • CentOS 6

  • Debian 7

    :所有Tizen平台工具,包括Git的编译系统(GBS),镜像创建(MIC)和bmap-tools,都支持这些主流的Linux发行版本的官方支持。 CentOS是一个例外,不提供官方支持。

2获取Gerrit权限

本节介绍如何获取Gerrit权限,包含内容如下:

  • 如何注册tizen.org的账户
  • 如何为Gerrit的访问配置Secure Shell(SSH)
  • 如何配置 Git

2.1注册账户

根据以下步骤注册账户获取tizen.org的访问权限:

  1. 打开注册页面。

  2. 填写所有强制性的内容和其他需要的信息,然后点击注册

    Gerrit会发送一封验证邮件到用户提供的邮箱地址。

  3. 按照验证邮件中介绍的去进行验证,修改密码并获得tizen.org的权限。

    :如果点击验证邮件中的链接后出现错误信息,请复制该链接到浏览器地址栏中。

到此,访问Tizen Gerrit的准备工作已经完成,第2.2节中将实际使用Tizen Gerrit。

2.2 为Gerrit配置SSH

要配置 Gerrit 访问的 SSH,请执行以下步骤:

  1. 通过执行下面的命令生成 RSA 密钥:

    $ ssh-keygen [-t rsa] [-C "<Comments>"]
    

    注: "[-t rsa]" 和 "[-C "<Comments>"]" 都是ssh-keygen命令的参数。

    如果没有指定秘钥的类型,ssh-keygen命令会产生RSA类型的秘钥用于SSH协议2的链接,因此请使用"[-t rsa]"参数来指定秘钥类型。

    对于 RSA 密钥,如果在未添加任何注释的情况下调用,当生成密钥时,ssh-keygen 命令将注释初始化为"<user>@<host>",从而使"[-C"<Comments>"]"为可选。 尽管如此,仍建议添加此参数,因为修改措辞的注释可以帮助更好地识别密钥。

    请按照下面的屏幕提示来指定保存密钥的目的地文件。 当直接按下ENTER时,将会使用默认值"/home/<User>/.ssh/id_rsa",如圆括号内所示。

    Enter file in which to save the key (/home/<User>/.ssh/id_rsa):
    

    然后按照以下屏幕提示设置一个密码短语。 直接按 ENTER 键指示没有密码短语,如括号中所示。

    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    

    到此,SSH秘钥成功生成。

  2. 创建一个SSH配置文件"~/.ssh/config",按需添加以下内容的某一条:

    • Ubuntu, openSUSE, CentOS,和Debian

      Host tizen review.tizen.org
      Hostname review.tizen.org
      IdentityFile ~/.ssh/id_rsa
      User <Gerrit_Username>
      Port 29418
      # Add the line below when using proxy, otherwise, skip it.
      # ProxyCommand nc -X5 -x <Proxy Address>:<Port> %h %p
      
    • Fedora

      Host tizen review.tizen.org
      Hostname review.tizen.org
      IdentityFile ~/.ssh/id_rsa
      User <Gerrit_Username>
      Port 29418
      # Add the line below when using proxy, otherwise, skip it.
      # ProxyCommand nc --proxy-type socks4 --proxy <Proxy Address>:<Port> %h %p
      
    注意:
    • "tizen" 和"review.tizen.org" 都是主机名的别称,"tizen"是为了简化初始化git仓库和克隆指定Tizen项目的命令,"review.tizen.org"是为了同步整个Tizen 源代码时使用manifest.xml 和 _remote.xml。
    • ~/.ssh/config不能被其他用户改写。 使用命令'$ chmod o-w ~/.ssh/config'去掉写权限。 关于ssh_config的更多详细信息,请参考 man ssh_config。
  3. 拷贝 ~/.ssh/id_rsa.pub中的所有文本,包括以下内容:

    • "ssh-rsa" lead
    • SSH public key
    • e-mail address tail
  4. 登陆Tizen Gerrit并更新秘钥。

    1. 在Gerrit网页上,点击右上角的用户名(右边的一个反向的三形),然后击设置进入设置页面。
    2. 击左边的SSH Public Keys按钮,粘贴第3步中拷贝的内容到SSH Public Key框中,再点击添加按钮。
  5. 通过执行以下命令来验证 SSH 连接:

    $ ssh tizen
    

    下面的消息表明已成功建立 SSH 连接。

    **** Welcome to Gerrit Code Review ****
    ...
    

2.3 为Gerrit配置Git

Git需要知道用户名和邮件地址去确定每个提交的作者。 如果Git找不到用户名或者邮箱地址,用户可能会遇到一些奇怪的警告。

此配置操作要求开发人员访问。 此外,邮箱地址和注册信息匹配,可以帮助Git识别用户。

要配置 Gerrit 访问的 Git,请执行以下步骤:

  1. 通过执行以下命令设置用户名称:

    $ git config --global user.name <First_Name Last_Name>
    
  2. 执行以下命令设置邮箱地址:

    $ git config --global user.email "<E-mail_Address>"
    

    注:使用 GIT_AUTHOR_NAME 和 GIT_AUTHOR_EMAIL 环境变量是另一种解决方案。 设置这些变量后则覆盖所有的配置设置。

3

本节介绍如何使用网络代理。

:如果你经常追踪其他git仓库,你的~/.ssh/config 中又没有专用的'ProxyCommand' 或者使用"git://" or "http://"方式时,代理是非常有用的。

3.1 配置代理

要通过 Linux shell 提示配置代理服务器,请执行以下步骤:

  1. 打开.bashrc 文件,设置http_proxy, ftp_proxy, https_proxy, 和no_proxy 环境变量值,如下:

    export http_proxy=<Proxy_Address>:<Port>
    export ftp_proxy=$http_proxy
    export https_proxy=<Proxy_Address>:<Port>
    export no_proxy=<Internal_Address>
    
  2. 打开 /etc/sudoers,按照如下内容设置环境变量值:

    Defaults env_keep="http_proxy https_proxy no_proxy"
    

    :如果env_keep已经在/etc/sudoers中定义过,使用 "+=" 替换"=" 。

3.2 通过代理配置Git

为了可以通过代理访问Git,执行以下操作:

  1. 通过使用文本编辑器在"/usr/local/bin" 目录创建一个名为"git-proxy"的脚本。

    下面是一个使用vim的例子:

    $ sudo vim /usr/local/bin/git-proxy
    
  2. 添加下面的内容,并保存该文件。

    #!/bin/bash
     
    PROXY=<Proxy_Address>
    PORT=<Port>
     
    case $1 in
    # list git servers here that you do not want to use
    # the proxy with, separated by a pipe character '|' as below:
     
    review.tizen.org)
    METHOD="-X connect"
    ;;
    *)
    METHOD="-X 5 -x ${PROXY}:${PORT}"
    #The line above is applicable to Ubuntu and openSUSE.
    #For Fedora, use the variation below since it only supports socks v4.
    #METHOD="-X 4 -x ${PROXY}:${PORT}"
    ;;
    esac
     
    nc $METHOD $*
    
  3. 更改 git-proxy 脚本的属性,通过执行下面的命令使其可执行:

    $ sudo chmod +x /usr/local/bin/git-proxy
    
  4. 通过在.bashrc 文件中添加下面的内容设置 GIT_PROXY_COMMAND 和 GIT_PROXY_IGNORE 环境变量。

    export GIT_PROXY_COMMAND=/usr/local/bin/git-proxy
    export GIT_PROXY_IGNORE=<Internal_Address>
    
  5. 执行以下命令重新加载环境变量:

    $ source ~/.bashrc