第一步 安裝Linux(Manjaro)用于承載服務(wù)
-
安裝操作系統(tǒng)
Manjaro安裝相對簡單,在官網(wǎng)下載對應(yīng)的鏡像文件(推薦下載 GNOME 版), 然后將鏡像寫入U盤作為啟動盤- Windows可以使用 UltraISO 、rufus 等工具
- Linux/MacOS可以使用dd命令,可參考: 桃月十三筱 - 簡書
寫入完成后將電腦啟動項選擇為U盤, 然后傻瓜式安裝即可.
-
初始化與安裝必要工具
在終端中依次執(zhí)行以下命令:
備注: 為了方便, 后續(xù)編輯文件均使用較為簡單的 nano , 在 nano 中編輯完畢后, 可以使用 Ctrl + O 快捷鍵保存, 使用 Ctrl + X 退出 nano .# 更新鏡像排名 sudo pacman-mirrors -i -c China -m rank # 更新數(shù)據(jù)源 sudo pacman -Syy # 打開文件添加配置 sudo nano /etc/pacman.conf # 在末尾追加以下內(nèi)容 [archlinuxcn] SigLevel = Optional TrustedOnly Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch # 導(dǎo)入GPG Key sudo pacman -Syy sudo pacman -S archlinuxcn-keyring # 安裝ssh并設(shè)置開機啟動 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 # 加入如下內(nèi)容 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官網(wǎng) 下載最新的 JDK 包, 務(wù)必下載 x64 版本的
- 終端執(zhí)行命令
sudo tar -zxvf 壓縮包路徑 -C /opt/
, 將下載的壓縮包解壓到 /opt/ 目錄, - 終端執(zhí)行命令
sudo nano /etc/profile
, 在 /etc/profile 末尾追加以下內(nèi)容: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
- 執(zhí)行
source /etc/profile
更新
- 移除 OpenJDK
-
配置 Android 編譯環(huán)境
因為需要在當(dāng)前環(huán)境編譯 Android 項目,所以需要把 Android 編譯環(huán)境搭建起來, 同時最關(guān)鍵的是能夠下載/更新 AndroidSDK( & NDK) , 以下有兩種方案提供給大家:-
推薦方案(優(yōu)點: 可以直接通過ssh連接編譯機下載/更新, 不用每次都在編譯機旁邊蹲著~)
使用 Android Command Line Tools 維護SDK( & NDK)- 在 AndroidStudio 官網(wǎng), 找到 Command line tools only 標簽, 下載對應(yīng)的 linux 平臺工具
- 下載完畢后, 創(chuàng)建 SDK 存放目錄(例如: /home/user/Android/Sdk ), 將工具中的內(nèi)容解壓到該目錄的 /cmdline-tools/latest/ 中
- 執(zhí)行命令
sudo nano /etc/profile
, 將以下目錄在 /etc/profile 末尾追加以下內(nèi)容: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
命令更新 - 終端執(zhí)行命令 sdkmanager --sdk_root=$ANDROID_HOME --licenses 命令初始化工具, 對后續(xù)所有許可都輸入 y + Enter 同意
- SDK命令行工具的使用說明請參考 官方說明
-
棄用方案(原因: 編譯機搭建完畢后基本不會直接操作它, 圖形界面基本沒用)
使用 AndroidStudio 維護- 下載官方的AndroidStudio AndroidStudio官網(wǎng)
- 下載后解壓文件, 執(zhí)行 ./android_studio/bin/studio.sh 即可開始安裝, 全程圖形界面操作
- 安裝完畢后啟動, 通過右下角的 Configure > SDK Manager 進入管理器, 下載常用的SDK即可, 同時留意對應(yīng)的AndroidSDK目錄位置
-
第二步 在 Linux 中配置 TeamCity 服務(wù)端
選型初期考慮了 TeamCity 與 Jenkins 兩個自動構(gòu)建平臺,綜合對比之下,因為 TeamCity 為 JetBrains 出品,跟 AndroidStudio 是一家,配置相對簡單, 自帶郵件通知功能, 所以選擇了 TeamCity 作為構(gòu)建平臺.
-
安裝外部數(shù)據(jù)庫
按照TeamCity推薦, 我們使用了外部數(shù)據(jù)庫存儲數(shù)據(jù)( postgreSQL )- 執(zhí)行命令
sudo pacman -S postgresql
安裝 - 切換到數(shù)據(jù)庫管理員賬戶
sudo -i -u postgres
- 以 postgres 用戶的身份執(zhí)行初始化命令
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
- 執(zhí)行命令
exit
退出 postgres 用戶 - 執(zhí)行命令
sudo systemctl start postgresql
命令啟動數(shù)據(jù)庫服務(wù) - 執(zhí)行命令
psql
進入數(shù)據(jù)庫編輯模式 - 執(zhí)行命令
CREATE USER user WITH PASSWORD 'password';
創(chuàng)建一個用戶, 請將命令中的 user 和 password 替換為賬號和密碼 - 執(zhí)行命令
quit
退出編輯模式 - 執(zhí)行命令
sudo -i -u postgres
再次切換到數(shù)據(jù)庫管理員賬戶 - 定位到 postgres 用戶的 ~/data/pg_hba.conf 文件, 將文件靠后位置的以下內(nèi)容
local all all trust
更改為
local all all md5 - 執(zhí)行命令
exit
退出 postgres 用戶 - 執(zhí)行命令
sudo systemctl restart postgresql
重啟數(shù)據(jù)庫服務(wù) - 執(zhí)行命令
sudo systemctl enable postgresql
設(shè)置開機啟動數(shù)據(jù)庫服務(wù)
- 執(zhí)行命令
-
安裝TeamCity
- 在 官網(wǎng) 下載對應(yīng)服務(wù)端包
- 將下載的壓縮包解壓至 /usr/local/program/teamcity (需要創(chuàng)建對應(yīng)目錄)
- 在解壓目錄中執(zhí)行
sudo ./bin/runAll.sh start
啟動服務(wù) - 服務(wù)成功啟動后, 在瀏覽器訪問 http://localhost:8111 進入 TeamCity 管理端
- 初始化時配置數(shù)據(jù)庫為 postgreSQL ,并配置相關(guān)項
- 首次登陸時可以創(chuàng)建 TeamCity 管理員賬戶, 請務(wù)必 記住管理員密碼 !!
- 配置 TeamCity 服務(wù)開機啟動
在 /etc/systemd/system/ 中添加啟動服務(wù)文件 teamcity.service , 在文件中添加如下內(nèi)容:
注意: 其中的 JAVA_HOME避诽、ANDROID_HOME 與 ANDROID_SDK_ROOT 等環(huán)境變量, 需要自行填寫正確的絕對路徑[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
- 執(zhí)行
sudo systemctl daemon-reload
刷新服務(wù)列表, 再調(diào)用sudo systemctl enable teamcity.service
配置開機啟動.
結(jié)語
至此 TeamCity 服務(wù)已經(jīng)安裝完畢, 可以愉快的使用啦, 如果搭建過程中遇到什么問題, 可以留言, 我會盡可能回復(fù)的~
如果上述步驟有什么欠妥的地方, 也請評論告知, 以免誤導(dǎo)他人~
后續(xù)可能會更新一些 TeamCity 的使用說明, 歡迎持續(xù)關(guān)注~
以上.