第一步 安装Linux(Manjaro)用于承载服务
-
安装操作系统
Manjaro安装相对简单,在官网下载对应的镜像文件(推荐下载 GNOME 版), 然后将镜像写入U盘作为启动盘- Windows可以使用 UltraISO 、rufus 等工具
- Linux/MacOS可以使用dd命令,可参考: 桃月十三筱 -
写入完成后将电脑启动项选择为U盘, 然后傻瓜式安装即可.
-
初始化与安装必要工具
在终端中依次执行以下命令:
备注: 为了方便, 后续编辑文件均使用较为简单的 nano , 在 nano 中编辑完毕后, 可以使用 Ctrl + O 快捷键保存, 使用 Ctrl + X 退出 nano .# 更新镜像排名 sudo pacman-mirrors -i -c China -m rank # 更新数据源 sudo pacman -Syy # 打开文件添加配置 sudo nano /etc/pacman.conf # 在末尾追加以下内容 [archlinuxcn] SigLevel = Optional TrustedOnly Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch # 导入GPG Key sudo pacman -Syy sudo pacman -S archlinuxcn-keyring # 安装ssh并设置开机启动 sudo pacman -Syy openssh sudo systemctl start sshd.service sudo systemctl enable sshd.service # 然后可以选择性安装部分软件 # 安装Chrome sudo pacman -S google-chrome # 安装Google拼音输入法 sudo pacman -S fcitx-im #默认全部安装 sudo pacman -S fcitx-configtool sudo pacman -S fcitx-googlepinyin # 添加输入法配置 sudo nano ~/.xprofile # 加入如下内容 export GTK_IM_MODULE=fcitx export QT_IM_MODULE=fcitx export XMODIFIERS="@im=fcitx"
以上操作参考自: Ferhat_ - / 八稚女 - CSDN 感谢!
-
移除 OpenJDK, 安装 OracleJDK
- 移除 OpenJDK
sudo pacman -R jdk8-openjdk sudo pacman -R jre8-openjdk sudo pacman -R jre8-openjdk-headless
- 从 Oracle官网 下载最新的 JDK 包, 务必下载 x64 版本的
- 终端执行命令
sudo tar -zxvf 压缩包路径 -C /opt/
, 将下载的压缩包解压到 /opt/ 目录, - 终端执行命令
sudo nano /etc/profile
, 在 /etc/profile 末尾追加以下内容:export JAVA_HOME=JDK解压路径(例如:/opt/jdk1.8.0_251) export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
- 执行
source /etc/profile
更新
- 移除 OpenJDK
-
配置 Android 编译环境
因为需要在当前环境编译 Android 项目,所以需要把 Android 编译环境搭建起来, 同时最关键的是能够下载/更新 AndroidSDK( & NDK) , 以下有两种方案提供给大家:-
推荐方案(优点: 可以直接通过ssh连接编译机下载/更新, 不用每次都在编译机旁边蹲着~)
使用 Android Command Line Tools 维护SDK( & NDK)- 在 AndroidStudio 官网, 找到 Command line tools only 标签, 下载对应的 linux 平台工具
- 下载完毕后, 创建 SDK 存放目录(例如: /home/user/Android/Sdk ), 将工具中的内容解压到该目录的 /cmdline-tools/latest/ 中
- 执行命令
sudo nano /etc/profile
, 将以下目录在 /etc/profile 末尾追加以下内容:export ANDROID_HOME=/home/user/Android/Sdk export ANDROID_SDK_ROOT=$ANDROID_HOME export ANDROID_PLATFORM_TOOLS=$ANDROID_HOME/platform-tools export ANDROID_SDK_TOOLS=$ANDROID_HOME/cmdline-tools/latest export PATH=$PATH:$ANDROID_SDK_TOOLS/bin
- 声明完毕使用
source /etc/profile
命令更新 - 终端执行命令 sdkmanager --sdk_root=$ANDROID_HOME --licenses 命令初始化工具, 对后续所有许可都输入 y + Enter 同意
- SDK命令行工具的使用说明请参考 官方说明
-
弃用方案(原因: 编译机搭建完毕后基本不会直接操作它, 图形界面基本没用)
使用 AndroidStudio 维护- 下载官方的AndroidStudio AndroidStudio官网
- 下载后解压文件, 执行 ./android_studio/bin/studio.sh 即可开始安装, 全程图形界面操作
- 安装完毕后启动, 通过右下角的 Configure > SDK Manager 进入管理器, 下载常用的SDK即可, 同时留意对应的AndroidSDK目录位置
-
第二步 在 Linux 中配置 TeamCity 服务端
选型初期考虑了 TeamCity 与 Jenkins 两个自动构建平台,综合对比之下,因为 TeamCity 为 JetBrains 出品,跟 AndroidStudio 是一家,配置相对简单, 自带邮件通知功能, 所以选择了 TeamCity 作为构建平台.
-
安装外部数据库
按照TeamCity推荐, 我们使用了外部数据库存储数据( postgreSQL )- 执行命令
sudo pacman -S postgresql
安装 - 切换到数据库管理员账户
sudo -i -u postgres
- 以 postgres 用户的身份执行初始化命令
initdb --locale en_US.UTF-8 -D '/var/lib/postgres/data'~
- 定位到该用户的 ~/data/postgresql.conf 文件, 参考官方手册的推荐配置进行修改:
- 修改 shared_buffers = 512MB
- 修改 max_wal_size = 1500MB
- 修改 checkpoint_completion_target=0.9
- 修改 synchronous_commit=off
- 执行命令
exit
退出 postgres 用户 - 执行命令
sudo systemctl start postgresql
命令启动数据库服务 - 执行命令
psql
进入数据库编辑模式 - 执行命令
CREATE USER user WITH PASSWORD 'password';
创建一个用户, 请将命令中的 user 和 password 替换为账号和密码 - 执行命令
quit
退出编辑模式 - 执行命令
sudo -i -u postgres
再次切换到数据库管理员账户 - 定位到 postgres 用户的 ~/data/pg_hba.conf 文件, 将文件靠后位置的以下内容
local all all trust
更改为
local all all md5 - 执行命令
exit
退出 postgres 用户 - 执行命令
sudo systemctl restart postgresql
重启数据库服务 - 执行命令
sudo systemctl enable postgresql
设置开机启动数据库服务
- 执行命令
-
安装TeamCity
- 在 官网 下载对应服务端包
- 将下载的压缩包解压至 /usr/local/program/teamcity (需要创建对应目录)
- 在解压目录中执行
sudo ./bin/runAll.sh start
启动服务 - 服务成功启动后, 在浏览器访问 http://localhost:8111 进入 TeamCity 管理端
- 初始化时配置数据库为 postgreSQL ,并配置相关项
- 首次登陆时可以创建 TeamCity 管理员账户, 请务必 记住管理员密码 !!
- 配置 TeamCity 服务开机启动
在 /etc/systemd/system/ 中添加启动服务文件 teamcity.service , 在文件中添加如下内容:
注意: 其中的 JAVA_HOME、ANDROID_HOME 与 ANDROID_SDK_ROOT 等环境变量, 需要自行填写正确的绝对路径[Unit] Description=start teamcity service After=network.target [Service] Type=forking Environment=JAVA_HOME=/opt/jdk1.8.0_251 Environment=ANDROID_HOME=/home/user/Android/Sdk Environment=ANDROID_SDK_ROOT=/home/user/Android/Sdk ExecStart=/usr/local/program/teamcity/bin/runAll.sh start ExecReload=/usr/local/program/teamcity/bin/runAll.sh restart ExecStop=/usr/local/program/teamcity/bin/runAll.sh stop [Install] WantedBy=multi-user.target
- 执行
sudo systemctl daemon-reload
刷新服务列表, 再调用sudo systemctl enable teamcity.service
配置开机启动.
结语
至此 TeamCity 服务已经安装完毕, 可以愉快的使用啦, 如果搭建过程中遇到什么问题, 可以留言, 我会尽可能回复的~
如果上述步骤有什么欠妥的地方, 也请评论告知, 以免误导他人~
后续可能会更新一些 TeamCity 的使用说明, 欢迎持续关注~
以上.