---
# System prepended metadata

title: 使用OTA程序做全廠更新

---

# 使用OTA程序做全廠更新

## 目的

機台可以通過線上更新,未來只要在將新軟件(core/skin/manager)上傳至OTA Server之後，所有機台只要透過重啟的方式就可以進行軟件更新

### 第一次執行前準備事項：
請依照本機的系統執行底下操作，確保可以進行操作：# 執行命令前，請先安裝 Git (確保可執行 git 指令)
例: 您的本機若為MacOS
> $ brew install git
> 
例: 您的本機若為Ubuntu
> $ sudo apt install git

### A.將新軟件上傳至Server步驟：
#### Step1. 在本機上將欲上傳之軟件進行檔名更新:
core的軟件原始檔名如下：
> zhap_core_nanping_capacitor_wire_components-20xx.xx.xx-cp36-cp36m-linux_x86_64.whl
> 
請改成
> zhap_core-latest-cp36-cp36m-linux_x86_64.whl

skin的軟件原始檔名如下：
> setup_skin_general_xxxxxx_no_password.sh
> 
請改成
> setup_skin_general_latest.sh

manager的軟件原始檔名如下：
> manager_server
> 
不用改,仍保持
> manager_server

#### Step2.底下分別說明三個軟件如何上傳至Server
2.1 上傳  zhap_core 
2.1.1 本機上輸入底下命令：
> $ git clone https://<gitlab_ip_domain>/<廠商帳號>/zhap_core.git

Ex:
> $ git clone https://update.aizhenhai.com/nanping_nantong_capacitor_wire_components/zhap_core.git

#### 註: 上面那行如果無法連，可改用下面這行試試 (其它 project 以此類推)
> git clone https://<廠商帳號>@<gitlab_ip_domain>/<廠商帳號>/zhap_core.git

Ex:
> $ git clone https://nanping_nantong_capacitor_wire_components@update.aizhenhai.com/nanping_nantong_capacitor_wire_components/zhap_core.git

![](https://upload.cc/i1/2021/07/13/0WgELl.png)


完成後如下圖所示.

![](https://upload.cc/i1/2021/07/13/wstILX.png)


2.1.2 繼續於本機上輸入底下命令：
> $ cd zhap_core
 
#### 註1.上傳 zhap_core-latest-cp36-cp36m-linux_x86_64.whl 檔 (其它檔案、檔名無作用)
> $ cp /path/to/zhap_core-latest-cp36-cp36m-linux_x86_64.whl .
#### 註2.這裡的/path/to/是指本機存放檔案的路徑
> $ git add zhap_core-latest-cp36-cp36m-linux_x86_64.whl
> $ git commit -am "Update: <更新內容隨你打>"  
#### 註3.更新的內容可以用於網站上做確認是否有上傳成功
> $ git push

完成後如下圖所示.

![](https://upload.cc/i1/2021/07/13/M265WT.png)


2.2 上傳zhap_skin
2.2.1 本機上輸入底下命令： 
> $ git clone https://nanping_nantong_capacitor_wire_components@update.aizhenhai.com/nanping_nantong_capacitor_wire_components/zhap_skin.git

![](https://upload.cc/i1/2021/07/13/awqXYg.png)



完成後如上圖所示.

2.2.2 繼續於本機上輸入底下命令：
> $ cd zhap_skin
> $ cp /path/to/setup_skin_general_latest.sh .
#### 註1.上傳 setup_skin_general_latest.sh 檔 (其它檔案、檔名無作用)
#### 註2.這裡的/path/to/是指本機存放檔案的路徑
> $ git add setup_skin_general_latest.sh
> $ git commit -am "Update: <更新內容隨你打>"
#### 註3.更新的內容可以用於網站上做確認是否有上傳成功
> $ git push

完成後如下圖所示.

![](https://upload.cc/i1/2021/07/13/riBZNM.png)

2.3上傳 zhap_manager
2.3.1 本機上輸入底下命令：
> $ git clone https://nanping_nantong_capacitor_wire_components@update.aizhenhai.com/nanping_nantong_capacitor_wire_components/zhap_manager.git

完成後如下圖所示.

![](https://upload.cc/i1/2021/07/13/OGBsv1.png)

2.3.2 繼續於本機上輸入底下命令：

> $ cd zhap_manager
> $ cp /path/to/manager_server .
> $ cp /path/to/rec_expiry .
#### 註1.上傳 manager_server, rec_expiry 檔 (其它檔名無作用)
#### 註2.這裡的/path/to/是指本機存放檔案的路徑
#### 註3.rec_expiry一般來說不會更新,有必要更新會特別提醒
> $ git add manager_server      
#### manager_server 執行檔
> $ git add rec_expiry       
#### rec_expiry 執行檔,有更新才需做
> $ git commit -am "Update: <更新內容隨你打>"
#### 更新的內容可以用於網站上做確認是否有上傳成功
> $ git push

完成後如下圖所示.

![](https://upload.cc/i1/2021/07/13/mxgpEq.png)

2.4 確認軟件是否均已上傳
2.4.1進入
> https://update.aizhenhai.com/

![](https://upload.cc/i1/2021/07/13/WucFCg.png)
帳號/密碼請洽相關人員


2.4.2 登入後可以看見3個project表示core/skin/manager,並可以個別點進去看到你剛剛上傳的檔案是否有成功

![](https://upload.cc/i1/2021/07/13/QPXAGm.png)

![](https://upload.cc/i1/2021/07/13/Eh9ivM.png)

![](https://upload.cc/i1/2021/07/13/mlc5QK.png)

![](https://upload.cc/i1/2021/07/13/9Ix8Hl.png)



### B.如何將機台進行軟件更新：
通常在機台在進行第一次檢測系統安裝時，皆會安裝ota安裝包，請見`“導針檢測系統安裝手冊(離線版本)“`step4，安裝完畢後，在機台的`/opt/zhenhai/ota`路徑下會產生兩個腳本(`ota_client.sh`/`ota_download.sh`)
```
OTA的工作原理是:
每隔兩小時，背景程式便會自動到ota server上查詢是否有最新軟件的存在，若有，則下載最新軟件，並於下次開機時執行該 service 「一次」，就是去做更新的動作.
因此更新時，需要預留一段時間(先等ota_download.sh下載軟件),然後再進行電腦重啟,才會成功更新.
```

如果要在機器運作時手動進行更新時，則要先下底下命令，先下載ota server上最新軟件
> $ bash ./ota_download.sh

再進行軟件更新的動作
> $ sudo service zhap_ota restart

#### C.注意事項：

1.若使用git clone上傳更新軟件失敗，遇到底下問題時:
```
! [rejected]        master -> master (fetch first)
error: 推送一些引用到 'https://update.aizhenhai.com/Zhenhai/zhap_core.git' 失敗
提示：因為遠端版本庫包含您本機尚不存在的提交，而導致更新被拒絕。這通常是因為另外
提示：一個版本庫已向該引用進行了推送。再次推送前，您可能需要先整合遠端變更
提示：（如 'git pull ...'）。
提示：詳見 'git push --help' 中的 'Note about fast-forwards' 小節。
```

解決辦法： 
將git clone所產生的zhap_core整個刪掉(ex: /Users/Mac/zhap_core)，再重新執行一次


2.若機台重啟時不想執行ota軟件更新，則可以對機台`/opt/zhenhai/ota`底下的腳本改檔名(原始檔名分別為`ota_client.sh`/`ota_download.sh`)
Ex:
> $ sudo mv ota_client.sh ota_client_off.sh 
> 
完成後如下圖
![](https://upload.cc/i1/2021/07/13/pTwl6G.png)
