分步说明:如何将 Linux-Ubuntu 实例配置为通过 Codebeamer 运行
本指南介绍用于设置和配置干净 Ubuntu 实例和
Codebeamer 的步骤。如需了解
Codebeamer 版本支持的 Ubuntu 版本,请查阅
PTC Release Advisor。
在其他 Linux 分发版中,安装步骤类似。
安装 Ubuntu 包
建议更新可用包。
更新所有 Ubuntu 包
$ sudo apt-get update
$ sudo apt-get upgrade
安装 Java
Codebeamer 需要安装 java 才能运行。请知晓,不同版本的
Codebeamer 可能需要并支持不同版本的 Java。如需了解您的安装所需的 JDK 版本,请查阅
PTC Release Advisor。有关 JDK 安装的信息,请参阅特定 JDK 厂商的指导原则。
安装 Apache
可以使用以下命令安装 Apache 和相关包:
sudo apt-get install apache2 libapache2-mod-jk
|
Codebeamer 不需要 Apache。但是,要通过 http 和/或 https 协议访问托管 Subversion 存储库,必须安装 Apache。
|
区域设置
Codebeamer 需要区域设置 en_US.UTF-8。
使用下面的命令,可以检查此区域设置是否可用:
$ locale -a | grep -i 'en_US.UTF.*8'
如果上述命令未返回任何内容,下面的命令可以创建区域设置 en_US.UTF-8:
$ sudo locale-gen en_US.UTF-8
$ sudo update-locale en_US.UTF-8
安装 SCM 工具
仅应安装您计划使用的 SCM (源代码管理) 工具。
Subversion
$ sudo apt-get install subversion subversion-tools libapache2-svn
然后,通过以下命令验证安装:
$ svn --version
Git
$ sudo apt-get install git-core
然后,使用以下命令验证安装:
$ git --version
Mercurial
$ sudo apt-get install mercurial
然后,使用以下命令验证安装:
$ hg --version
Sshpass
要通过 ssh 访问远程存储库,安装 Sshpass 会非常有用。
$ sudo apt-get install sshpass
然后,使用以下命令验证安装:
$ sshpass -V
安装 PhantomJS
PhantomJS 用于将图表导出到 MS-Word。PTC 建议安装最新版本的 PhantomJS,网址为
http://phantomjs.org/download.html。
以下命令用于从分发版安装 PhantomJS:
$ sudo apt-get install phantomjs
|
 deb 包维护者已发布 PhantomJS 2.1.1,该版本不适用于 headless 环境。
|
要解决此问题,请按照以下说明进行操作
1. 下载并安装 PhantomJS 二进制文件。
wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2
bzip2 -d phantomjs-2.1.1-linux-x86_64.tar.bz2
tar -xvf phantomjs-2.1.1-linux-x86_64.tar
cp phantomjs-2.1.1-linux-x86_64/bin/phantomjs /usr/local/bin/phantomjs
这将覆盖 PhantomJS 现有安装。
2. 如果要保留包维护版本,将新文件复制到另一个位置:
cp phantomjs-2.1.1-linux-x86_64/bin/phantomjs /usr/local/bin/phantomjs
确保更新您的系统 PATH 以最先找到 /usr/local/bin/。
3. 更新启动脚本 ~/CB/bin/cb 并添加以下行 (如果不存在):
export QT_QPA_PLATFORM=offscreen
4. 重新启动 Codebeamer。
:
安装 Latex
某些 Wiki 插件使用外部程序来呈现文档。这些程序可通过以下命令进行安装:
$ sudo apt-get install texlive-latex-base imagemagick
可选 Ubuntu 清理
建议保持 Ubuntu 干净,应仅在服务器上运行真正需要的操作系统服务。任何服务 (如 FTP 服务器或 SMTP/邮件服务器) 都可能存在被黑客攻击的风险,尤其是在公共站点上,非所需服务只会浪费资源。
因此,建议移除此类服务。例如,可通过执行以下操作来移除 Exim4 SMTP 服务器:
$ sudo apt-get remove exim4 exim4-base exim4-config exim4-daemon-light
安装 LibreOffice 以从 MS-Word 导入
LibreOffice 可通过以下命令进行安装:
$ sudo apt install libreoffice unoconv
|
Codebeamer 使用 LibreOffice/OpenOffice 从 MS-Word 文档导入某些图像格式,但是不需要安装 Libre Office/OpenOffice。
|
确保 "soffice.bin" 位于 PATH 上,且 Codebeamer 的系统用户可以运行它。
如果已安装 OpenOffice,应在安装 LibreOffice 之前使用以下命令将其移除:
$ sudo apt-get remove openoffice*
安装 Codebeamer
创建 Linux 用户以运行 Codebeamer
PTC 建议创建一个专用登录帐户来运行 Codebeamer。在本指南中将使用 codebeamer。可以创建用户作为:
$ sudo adduser --ingroup www-data codebeamer
Adding user `codebeamer' ...
Adding new group `codebeamer' (1002) ...
Adding new user `codebeamer' (1002) with group `codebeamer' ...
Creating home directory `/home/codebeamer' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for codebeamer
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n] y
选项 --ingroup www-data 确保 Codebeamer 帐户属于组 Apache。如果需要通过 http/https 协议支持托管 Subversion 存储库,这一点很重要。
下面给出的命令可用于向 Codebeamer 用户授予执行 sudo 命令的访问权限。
|
 不需要向 Codebeamer 授予 sudo 的使用权。但是,本指南假定 Codebeamer 已具有 sudo 访问权限。
|
$ sudo usermod -a -G sudo codebeamer
下载并安装 Codebeamer
1. 以 codebeamer 用户身份登录。
$ su - codebeamer
3. 执行 sh "./CB-...-linux.bin" 开始安装并按照说明进行操作。
|
 如需列出安装选项,可以使用 --help 参数来运行安装程序。
|
如果出现故障,可在 /install_dir/tomcat/logs 目录下找到日志文件。
完成安装
在完成安装脚本后,使用安装结束时提供的 URL 来启动浏览器。例如:http://localhost:8080。
在浏览器中,分步向导将引导您完成安装过程。
Codebeamer 安装路径
Codebeamer 安装脚本使用默认安装目录中的 Codebeamer 版本。例如:/home/codebeamer/CB-8.0.0,这也是推荐操作。
其他配置文件 (例如:Apache) 使用具有完整路径的 Codebeamer 配置文件。可以创建一个与 Codebeamer 路径无关的路径,从而降低配置文件与 Codebeamer 安装目录路径的依存性,以避免在升级 Codebeamer 后修改这些文件。Linux 支持可变链接,此类可变链接有助于使用与 Codebeamer 版本无关的路径。可以使用以下命令创建此类可变链接:
$ ln -s /home/codebeamer/CB-8.0.0 /home/codebeamer/CB
在脚本和配置路径中,/home/codebeamer/CB 现在可用作 Codebeamer 安装目录。升级 Codebeamer 后,只有此可变链接必须重新定义。
添加 Codebeamer 服务 (自动启动)
配置 Apache 以为 Codebeamer 请求提供服务
建议将 Apache 服务器置于 Codebeamer 前面,以为 http 请求提供服务。要进行配置,请执行以下所述步骤:
1. 编辑 $CB_HOME/tomcat/conf/server.xml,并通过激活以下部分来启用 AJP (Apache Tomcat Connector):
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443"
URIEncoding="UTF-8"
acceptCount="200"
maxPostSize="-1"
enableLookups="false"
connectionTimeout="80000"
executor="tomcatThreadPool"
></Connector>
2. 以 root 用户身份创建 "/etc/apache2/workers.properties" 文件,并在其中包含此内容。有关详情,请参阅:Tomcat 工作器:
worker.list=ajp13
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13
worker.ajp13.socket_keepalive=true
worker.ajp13.lbfactor=1
worker.ajp13.connection_pool_size=30
worker.ajp13.connect_timeout=5000
worker.ajp13.prepost_timeout=5000
3. 以 root 用户身份使用以下内容创建/覆盖文件 "/etc/apache2/mods-available/jk.conf":
JkWorkersFile /etc/apache2/workers.properties
JkLogFile /var/log/apache2/mod_jk.log
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
# for correct URI encoding
JkOptions +ForwardURICompatUnparsed
JkMount /cb ajp13
JkMount /cb/* ajp13
4. 启用 mod_jk:
$ sudo a2enmod jk
确保默认 Apache 站点不存在:
$ sudo a2dissite 000-default
|
 必须禁用 mod_evasive Apache 模块才能确保 remote-api 和 webdav 正常运行。
|
$ sudo rm /etc/apache2/mods-enabled/mod-evasive.load
以下命令可用于启动 Apache:
$ sudo service apache2 start
现在,Codebeamer 应可通过 Apache 进行访问,例如:http://hostname/cb。
配置 Apache 以为托管的 Subversion 存储库提供服务
以 root 用户身份使用下列内容创建/覆盖文件 "/etc/apache2/mods-available/cb_svn.load":
LoadModule dav_svn_module modules/mod_dav_svn.so
# It might be necessary that you have to add the line below to "/etc/sysconfig/apache2"
#APACHE_SERVER_FLAGS=" -D SVN_AUTHZ"
LoadModule authz_svn_module modules/mod_authz_svn.so
#Use the line below if apache cannot load modules/mod_authz_svn.so.
#LoadModule authz_svn_module /usr/lib/apache2/modules/mod_authz_svn.so
# You can find mysql_auth_module at: http://modauthmysql.sourceforge.net
# or http://www.gknw.net/development/apache/httpd-2.0/win32/modules/
# Warning: Comment this line OUT if you would like to use mysql_auth_module!
# LoadModule mysql_auth_module modules/mod_auth_mysql.so
# These modules are necessary to use basic authentication from a file
# managed by Codebeamer
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule authz_user_module modules/mod_authz_user.so
以 root 用户身份使用下列内容创建/覆盖文件 "/etc/apache2/mods-available/cb_svn.conf":
<Location /svn>
DAV svn
AuthUserFile "/home/codebeamer/CB/repository/.htaccess"
SVNParentPath "/home/codebeamer/CB/repository/svn/"
# AuthBasicAuthoritative Off # http://httpd.apache.org/docs/2.2/mod/mod_auth_basic.html
# SVNListParentPath on
AuthzSVNAccessFile "/home/codebeamer/CB/repository/acl.svn"
# SVNPathAuthz off
AuthType Basic
AuthName "Subversion Repository"
Require valid-user
</Location>
以下命令可用于激活配置:
$ sudo a2enmod cb_svn
需要通过以下命令重新启动 Apache:
$ sudo service apache2 restart