@@ -50,6 +50,7 @@ export type InstallStepFlags = {
5050 installDocker : InstallFlag
5151 installNvidiaGpu ?: InstallFlag
5252 installHuaweiNpu ?: InstallFlag
53+ installNvidiaCtk ?: InstallFlag
5354}
5455
5556export type SshDeployerStatus = 'idle' | 'failed' | 'installing' | 'completed'
162163
163164nvidia_gpu_present="false"
164165nvidia_gpu_smi_found="false"
166+ nvidia_container_toolkit_found="false"
165167huawei_npu_present="false"
166168huawei_npu_smi_found="false"
167169
@@ -172,6 +174,9 @@ if command -v lspci >/dev/null 2>&1; then
172174 if command -v nvidia-smi >/dev/null 2>&1; then
173175 nvidia_gpu_smi_found="true"
174176 fi
177+ if command -v nvidia-ctk >/dev/null 2>&1; then
178+ nvidia_container_toolkit_found="true"
179+ fi
175180 fi
176181 if echo "$lspci_output" | grep -q "Processing accelerators: Huawei Technologies"; then
177182 huawei_npu_present="true"
@@ -188,6 +193,7 @@ echo "{\
188193\"aria2\":$aria2_found,\
189194\"nvidiaGpu\": $nvidia_gpu_present,\
190195\"nvidiaSmi\": $nvidia_gpu_smi_found,\
196+ \"nvidiaCtk\": $nvidia_container_toolkit_found,\
191197\"huaweiNpu\": $huawei_npu_present,\
192198\"huaweiSmi\": $huawei_npu_smi_found\
193199}"` ,
@@ -205,6 +211,7 @@ echo "{\
205211 aria2 : boolean
206212 nvidiaGpu : boolean
207213 nvidiaSmi : boolean
214+ nvidiaCtk : boolean
208215 huaweiNpu : boolean
209216 huaweiSmi : boolean
210217 }
@@ -213,7 +220,12 @@ echo "{\
213220 installDocker : { planned : ! result . docker , completed : result . docker } ,
214221 installDependencies : { planned : ! dependenciesInstalled , completed : dependenciesInstalled } ,
215222 updateSources : { planned : true , completed : false } , // always update sources
216- ...( result . nvidiaGpu ? { installNvidiaGpu : { planned : ! result . nvidiaSmi , completed : result . nvidiaSmi } } : { } ) ,
223+ ...( result . nvidiaGpu
224+ ? {
225+ installNvidiaGpu : { planned : ! result . nvidiaSmi , completed : result . nvidiaSmi } ,
226+ installNvidiaCtk : { planned : ! result . nvidiaCtk , completed : result . nvidiaCtk } ,
227+ }
228+ : { } ) ,
217229 ...( result . huaweiNpu ? { installHuaweiNpu : { planned : ! result . huaweiSmi , completed : result . huaweiSmi } } : { } ) ,
218230 }
219231 }
@@ -237,13 +249,16 @@ echo "{\
237249 this . beforeInstall ( )
238250 await this . updateSources ( )
239251 await this . installDependencies ( )
252+ await this . installDocker ( )
240253 if ( this . installFlags . installNvidiaGpu ) {
241254 await this . installNvidiaGpu ( )
242255 }
243256 if ( this . installFlags . installHuaweiNpu ) {
244257 await this . installHuaweiNpu ( )
245258 }
246- await this . installDocker ( )
259+ if ( this . installFlags . installNvidiaCtk ) {
260+ await this . installNvidiaContainerToolkit ( )
261+ }
247262 await this . startServices ( )
248263 this . afterInstall ( )
249264 }
@@ -361,6 +376,18 @@ echo "{\
361376 } )
362377 }
363378
379+ private async installNvidiaContainerToolkit ( ) {
380+ if ( ! this . installFlags . installNvidiaCtk ) return
381+ await this . execInstallScript ( {
382+ script : this . pm . installNvidiaContainerToolkit ( ) ,
383+ flag : this . installFlags . installNvidiaCtk ,
384+ initLog : '安装 NVIDIA Container Toolkit' ,
385+ successLog : 'NVIDIA Container Toolkit 安装完成' ,
386+ errorLog : 'NVIDIA Container Toolkit 安装失败' ,
387+ errorMessage : 'NVIDIA Container Toolkit 安装失败,请检查网络连接或手动安装' ,
388+ } )
389+ }
390+
364391 private async installHuaweiNpu ( ) {
365392 if ( ! this . installFlags . installHuaweiNpu ) return
366393 this . pushInfoLog ( '暂不支持华为 NPU 驱动自动安装,请手动安装后重试' , { withNewLine : true } )
0 commit comments