想在centos上装个teamcity方便我研究mono...
先安装mono!参考:http://www.cnblogs.com/shanyou/p/3362150.html
teamcity需要一个数据库来保存数据,选用postgresql9.2,yum安装方式:
centos默认安装的pgsql不知道是哪个版本的,但是保险起见,还是手动指定下为好:
先去pgsql的官网找一找自己想要的版本的 repository,在download页面的binary内容中,可以找到一个 repository RPM listing 的链接,就是这了。
找了个9.2的:http://yum.postgresql.org/9.2/redhat/rhel-6-x86_64/pgdg-centos92-9.2-6.noarch.rpm,安装它:
yum install http://yum.postgresql.org/9.2/redhat/rhel-6-x86_64/pgdg-centos92-9.2-6.noarch.rpm
显示complete后就算是指定完毕啦,接着可以开始安装pgsql了:
yum install postgresql92-server postgresql92-contrib
装完后看看是不是成功了:
rpm -qa|grep postgres #-qa:列出所有已安装的包,grep:过滤指定的名字
yum方式安装会自动做完所有事,其中包括一个固定的数据目录,而这个目录当然是在系统磁盘下啦,我们把它改到数据盘去。
文件位置:/etc/init.d/postgresql-9.2,然后修改下面三项,pgdata就是数据目录哦
只要改pgsql前面的目录位置就好了。
首次启动pgsql前需要初始化:
service postgresql-9.2 initdb #初始化的位置就是上图修改的地方
显示 [OK] 后,启动数据库:
service postgresql-9.2 start
如果启动成功了,说明安装是没问题了。接下来把pgsql加入开机启动列表
chkconfig postgresql-9.2 on #加入自动列表
chkconfig --list|grep postgres #看看有没有加成功,如果2,3,4,5都是on就对啦
pgsql在安装完成后会自动建立一个数据库和对应的数据库用户以及一个系统用户,名字都叫:postgres
先把系统用户postgres的密码改一下:
passwd postgres
然后再把数据库用户postgres的密码改一下
su - postgres #切换到postgres用户,因为它能进入psql客户端
psql #打开客户端
然后输入sql语句修改密码:
ALTER USER postgres WITH PASSWORD 'newpasswd';
\q; #退出psql
总感觉用自动建的postgres不舒服,顺便再建一个数据库用户:
#createuser是/usr/pgsql/bin下的一个程序
createuser -P -s newUser #-P:回车后会要求输入密码,-s:管理员权限,newUser:新用户的名字
测试登录新用户:
psql -U newUser -d postgres #-d:登录到哪个数据库
不过你会发现登录不了,因为下面的2步配置还没做
切回系统管理员账户:
su - root
修改pgsql数据库配置实现远程访问,文件路径:%pgdata%/postgresql.conf,改成这样:
这是为了让pgsql监听本地所有的IP。还要改一个配置:%pgdata%/pg_hba.conf
改成md5是为了能够用正确的方式验证。
IP改成全0是表示任何IP都能连接此数据库,如果需要限制只有某IP可以连接,可以改成相应的或者在下面再加一行。
最后重启pgsql使修改生效:
service postgresql-9.2 restart #这时可以试试newUser能不能登录了。
数据库装完了,接着装jdk了,因为teamcity需要。为了稳定,虽然teamcity官方推荐jdk1.7,我还是用jdk1.6为妙,因为1.7似乎和tomcat有点不太搭,一直报什么jvm没找到,但实际上是安装了的,最后也没深究所以没搞清楚为什么。jdk的安装非常简单了,记得装完后把环境变量给设上就好了:
打开 /etc/profile,加入以下几行。记得保存退出后刷新一下使其生效:source /etc/profile
export JAVA_HOME=/usr/java/jdk1.6.0_10 export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:$JAVA_HOME/bin
输入 java -version 看看是不是类似这样的:
接着装svn:yum install subversion mod_dav_svn,我teamcity的vcs就用svn了。
建立一个目录作为svn的根目录:
mkdir repositories
然后随便建一个仓库
svnadmin create suibian
repositories下多了一个suibian目录,我们把suibian/bin下的三个配置文件都复制出来,把它们3都放到repositories下了作为模板,现在修改修改:
passwd文件:这是用户文件,所有用户存储在这里
[users] # harry = harryssecret # sally = sallyssecret admin=adminpwd #账号admin,密码adminpwd
authz文件:定义了用户的权限
[groups] # harry_and_sally = harry,sally # harry_sally_and_joe = harry,sally,&joe administrators=admin,user1 #定义一个组,其中包含admin和user1 [/] #所有根目录,也就是所有仓库的意思 @administrators=rw #r就是可读,w就是可写,所以这句话就是所有仓库administrators组都可读可写 [suibian:/] #suibian仓库的根目录 user1=rw #user1对suibian可读可写 [suibian:/trunk] #suibian仓库的trunk目录 user2=r #user2对suibian/trunk可读
@administrators=w #administrators组可写
svnserve.conf文件:某个仓库的配置文件,这个文件必须放在某个仓库的conf目录下,此文件如被更改需重启svn服务生效。
#匿名用户没有任何权限 anon-access = none #通过授权的用户有写权限 auth-access = write #授权用户的文件路径 password-db = /repositories/passwd #授权规则的文件路径 authz-db = /repositories/authz #仓库的名字 realm = suibian
所有命令都需要顶格写,不然会报错!
启动svn
svnserve -d -r /repositories #把repositories作为根目录启动,所以访问suibian仓库就要这么写:svn://ip/suibian ps -ef|grep svn|grep -v grep #查看是否启动成功
killall svnserve #关闭SVN
关于SVN开机自启动:有一个专门用于开机启动的脚本,位置是/etc/rc.local,直接在里面加上一句:svnserve -d -r /repositories 即可
现在可以装teamcity了,从官网下载linux版本的,是gz格式的!不是j2ee的!我之前下的就是j2ee的war,然后自己装tomcat放进去!没错!!!各种报错!!!那些错误,根本停不下来!!!!!大概也能看的出是tomcat的默认配置不适合teamcity造成cpu100%...然后在网上找解决办法的时候看见有个外国人和我遇见一样的问题,而且还说linux版的没问题,仅仅是j2ee的有问题,我去,看见后立马重置了服务器,喵的搞了3天没搞定不想浪费时间了。所以为了保险,下载linux版的更靠谱,当然了,也可以linux和j2ee的都下载,先试下j2ee的有没有问题,有问题再删了用linux版的。删除的时候记得把/root/.buildServer删了,或者去官网看看安装文档怎么同时装2个。
下载好gz文件后,解压它:
tar -xvzf teamcity.tar.gz
得到一个TeamCity的文件夹,随便移动到哪去,里面已经自带了tomcat,所以我们直接进入bin文件夹运行./runAll.sh start即可启动了。
运行runAll会同时创建一个默认的buildAgent,如果只想启动的话,用./teamcity-server.sh start
访问teamcity开始进行初始配置,一般启动的站点端口是8111,tomcat的配置文件是TeamCity/conf/server.xml,要改端口就改它。
TeamCity有个关键的文件夹,默认叫.BuildServer,这个文件夹里存储了各种配置和用户数据,我把它挪到数据盘去,修改TeamCity/bin/teamcity-server.sh,在里面加一个环境变量:TEAMCITY_DATA_PATH=/mnt/teamcityData,然后重启服务器生效,重启teamCity是没用的哈。
最后要注意一下,build mono,要选mono xbuild,tools不用选。然后如果选的是4.0的话,需要去mono的安装目录下,把4.5下的xbuild.exe啦wsdl.exe啦之类相关的东西,复制到4.0目录下,因为4.0里没有这些东西所以teamcity编译时会报错说找不到xbuild.exe!mono这诡异的BUG不知道是什么情况,单单4.0下缺少文件而teamcity又不能选4.5...