ThingWorx Flow > 安裝與組態 > 安裝 ThingWorx Flow > 在 Linux 電腦上無網際網路存取安裝或升級 ThingWorx Flow 的先決條件
在 Linux 電腦上無網際網路存取安裝或升級 ThingWorx Flow 的先決條件
ThingWorx Flow
* 
指示會假設每個步驟都成功完成,然後再進入下一個步驟。
在網際網路連線的機器上
1. 安裝 yum createrepoyum-utils 以啟用 yumdownloader
a. yum install createrepo
b. yum install yum-utils
2. /etc/yum.repos.d 下建立以下三個存放庫
a. rabbitmq_erlang.repo
[rabbitmq_erlang]
name=Erlang repository
baseurl=https://packagecloud.io/rabbitmq/erlang/el/8/$basearch
enabled=1
gpgcheck=0
sslverify=0
skip_if_unavailable=1
b. rabbitmq_server.repo
[rabbitmq_server]
name=RabbitMQ repository
baseurl=https://packagecloud.io/rabbitmq/rabbitmq-server/el/8/$basearch
enabled=1
gpgcheck=0
sslverify=0
skip_if_unavailable=1
c. nginx-repo.repo
[nginx-repo]
name=Nginx repository
baseurl=https://nginx.org/packages/rhel/8/$basearch/
enabled=1
gpgcheck=0
sslverify=0
skip_if_unavailable=1
3. 執行下列指令以取得節點存放庫:
curl -sL https://rpm.nodesource.com/setup_14.x | sudo bash -
這會在 yum.repos.d 中建立下載 nodejs 所需的存放庫
4. 使用 yumdownloader 將下列封裝下載至所需資料夾,而不安裝:
yumdownloader --destdir=/opt/packages/nginx --resolve nginx
yumdownloader --destdir=/opt/packages/erlang erlang
yumdownloader --destdir=/opt/packages/rabbitmq -–resolve rabbitmq-server
yumdownloader --destdir=/opt/packages/nodejs nodejs
* 
Nginx-repo 和 Rabbitmq-server 也有 --resolve 旗標,可啟用相依性下載。
5. 檢查是否已下載 logrotate 封裝作為 rabbitmq-server 下載指令的一部份。
若未下載,請使用下列指令明確下載:
yumdownloader --destdir=/opt/packages/rabbitmq logrotate
6. 針對每個封裝資料夾,使用 createrepo 指令建立存放庫,以取得每個封裝的中繼資料:
createrepo /opt/packages/nginx
createrepo /opt/packages/erlang
createrepo /opt/packages/rabbitmq
createrepo /opt/packages/nodejs
* 
只有當 nginx 下載在 /opt/packages/nginx 下產生多個 rpm 檔案時,才執行步驟 7-9。
7. Nginx 安裝有多個封裝。在無網際網路存取的情況下將存放庫從封裝存放庫轉換為模組存放庫。使用 modulemd-tools 封裝來建立要用來將存放庫轉換為模組存放庫的 modules.yaml 組態檔案。針對各自封裝啟用存放庫:
dnf copr enable frostyx/modulemd-tools-epel
dnf install modulemd-tools
8. 從封裝資料夾執行下列指令,以建立 modules.yaml 檔案:
repo2module --debug --module-name=nginx --module-stream=stable nginx modules.yaml
偵錯旗標會輸出建立 modules.yaml 的路徑。
9. 使用取得的組態 yaml 檔案轉換 nginx 存放庫:
a. 確保 modules.yaml 檔案位於 /opt/packages
b. nginx/repodata 資料夾的內容移至父 nginx 資料夾 mv repodata/*
c. 請從封裝資料夾執行下述指令:
modifyrepo_c --mdtype=modules modules.yaml nginx
這會建立新的 modules.yaml.gz,並詳細說明 repomd.xml
d. 將 repodata 資料夾的所有內容以及新的 gz 檔案移回 nginx/repodata 資料夾,僅保留 nginx repo 資料夾下的 rpm 檔案與 repodata 資料夾。
10. 在無網際網路存取的情況下將封裝資料夾複製到電腦。
在專用於在無網際網路存取情況下安裝 ThingWorx Flow 的伺服器電腦上
1. 確保存在 policycoreutils 封裝:適用於 RHEL 8 以下版本的 policycoreutils-python,或適用於版本 8 及更高版本的 policycoreutils-python-utils。如果封裝不存在,請予以安裝。
使用下列指令來檢查:
yum list --installed | grep policycoreutils
2. 確保已啟用 perl 模組。如果未啟用該模組,請予以啟用。
使用下列指令來檢查:
dnf module list --enabled | grep perl
3. /etc/yum.repos.d 下尋找 AppStream.repo。如果存在,請將其設定為 enabled=0
4. /etc/yum.repos.d 下建立下列存放庫,並使用 file:// 配置 baseurl,以指向本機 rpm 封裝。
a. rabbitmq_erlang.repo
[rabbitmq_erlang]
name=Erlang repository
baseurl=file:///opt/packages/erlang
enabled=1
gpgcheck=0
sslverify=0
skip_if_unavailable=1
b. rabbitmq_server.repo
[rabbitmq_server]
name=RabbitMQ repository
baseurl=file:///opt/packages/rabbitmq
enabled=1
gpgcheck=0
sslverify=0
skip_if_unavailable=1
c. nginx-repo.repo
[nginx-repo]
name=Nginx repository
baseurl=file:///opt/packages/nginx
enabled=1
gpgcheck=0
sslverify=0
skip_if_unavailable=1
d. nodesource-el8.repo
[nodesource]
name=Node.js Packages for Enterprise Linux 8
baseurl=file:///opt/packages/nodejs
enabled=1
gpgcheck=0
sslverify=0
skip_if_unavailable=1
5. 您現在可以執行 ThingWorx Flow 安裝程式。
請參閱在 Microsoft SQL Server上安裝 ThingWorx Flow 中的無網際網路存取安裝
在無網際網路存取情況下於伺服器電腦上升級 ThingWorx Flow 的先決條件:
1. 由於沒有網際網路連線,因此,使用者必須升級所有使用中協力廠商應用程式。欲取得最新版本的協力廠商應用程式,請重複步驟 2- 10,以在網際網路連線的機器上安裝
* 
建議移除之前下載的所有 rpm 檔案 (在網際網路連線的機器上安裝之步驟 4 的結果),以避免混淆。
* 
對於節點升級,您必須針對變更節點安裝程式的任何主要版本核對節點文件集,並相應地更新存放庫 (在此使用步驟 3 中的指令行)。
3. 在此重複步驟 5,以執行 ThingWorx Flow 升級安裝。
疑難排解
1. 必要時,啟用 perl 模組及安裝 policycoreutils 模組需要網際網路連線
2. 您可以將範例 modules.yaml 作為範本使用,而不必使用 modulesmd 工具封裝。modules.yaml 清單以特定 Nginx 版本與 OS 版本為基礎,且可能不適用於不同 OS 上的不同 Nginx 模組版本。如果您要使用提供的檔案,必須編輯檔案底部 artifacts/rpms 下的指定模組
您必須省略副檔名,並在每個項目的檔案版本之前新增版本與冒號。
例如,針對 nginx-1.14.1-9.module_el8.0.0+184+e34fea82.x86_64.rpm 檔案,您必須建立項目:nginx-1:1.14.1-9.module_el8.0.0+184+e34fea82.x86_64
artifacts:
rpms:
- nginx-1:1.14.1-9.module_el8.0.0+184+e34fea82.x86_64
- <same action per rpm file>
版本編號必須取自 yaml 的資料部份
data:
name: nginx
stream: rolling
version: 1
如果需要,請參閱下列連結,以取得詳細資訊:
如何下載及使用 repo2module,並建立 modules.yaml 檔案:https://github.com/rpm-software-management/modulemd-tools#readme
如果根據 modules.yaml 檔案建立模組存放庫:https://docs.fedoraproject.org/en-US/modularity/hosting-modules
3. 使用下列指令來確保已成功建立存放庫:
yum --disablerepo=”*” --enablerepo=”nodesource” list nodejs
yum --disablerepo=”*” --enablerepo=”nginx-repo” list nginx
yum --disablerepo=”*” --enablerepo=”rabbitmq_erlang” list erlang
yum --disablerepo=”*” --enablerepo=”rabbitmq_server” list rabbitmq-server
4. 在重新安裝 ThingWorx Flow (基於任何原因) 的情況下,請確保 nodesource-el8.repo 未收到 .rpmsave 副檔名,使其無法用於下一次安裝。更多資訊請造訪 https://fileinfo.com/extension/rpmsave
module.yaml
---
document: modulemd-defaults
version: 1
data:
module: nginx
stream: rolling
profiles:
rolling: [everything]
...
---
document: modulemd
version: 2
data:
name: nginx
stream: rolling
version: 1
context: abcdef12
summary: <auto-generated module summary>
description: >-
<auto-generated module description>
license:
module:
- MIT
content:
- <FILL THIS IN>
profiles:
everything:
rpms:
- nginx
- nginx-all-modules
- nginx-filesystem
- nginx-mod-http-image-filter
- nginx-mod-http-perl
- nginx-mod-http-xslt-filter
- nginx-mod-mail
- nginx-mod-stream
api:
rpms:
- nginx
- nginx-all-modules
- nginx-filesystem
- nginx-mod-http-image-filter
- nginx-mod-http-perl
- nginx-mod-http-xslt-filter
- nginx-mod-mail
- nginx-mod-stream
components:
rpms:
nginx:
rationale: Present in the repository
artifacts:
rpms:
- nginx-1:1.14.1-9.module_el8.0.0+184+e34fea82.x86_64
- nginx-all-modules-1:1.14.1-9.module_el8.0.0+184+e34fea82.noarch
- nginx-filesystem-1:1.14.1-9.module_el8.0.0+184+e34fea82.noarch
- nginx-mod-http-image-filter-1:1.14.1-9.module_el8.0.0+184+e34fea82.x86_64
- nginx-mod-http-perl-1:1.14.1-9.module_el8.0.0+184+e34fea82.x86_64
- nginx-mod-http-xslt-filter-1:1.14.1-9.module_el8.0.0+184+e34fea82.x86_64
- nginx-mod-mail-1:1.14.1-9.module_el8.0.0+184+e34fea82.x86_64
- nginx-mod-stream-1:1.14.1-9.module_el8.0.0+184+e34fea82.x86_64
...
這是否有幫助?