feat: support installation on Ubuntu 25.04 (#1870)

This commit is contained in:
dkeven 2025-09-25 11:17:13 +08:00 committed by GitHub
parent 77c4decaad
commit 74ee951758
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 12 additions and 3 deletions

View file

@ -54,6 +54,7 @@ const (
Ubuntu20 UbuntuVersion = "20."
Ubuntu22 UbuntuVersion = "22."
Ubuntu24 UbuntuVersion = "24."
Ubuntu25 UbuntuVersion = "25."
Debian9 DebianVersion = "9"
Debian10 DebianVersion = "10"
@ -134,7 +135,7 @@ func (s *SystemInfo) IsSupport() error {
//}
if s.IsUbuntu() {
if !s.IsUbuntuVersionEqual(Ubuntu22) && !s.IsUbuntuVersionEqual(Ubuntu24) {
if !s.IsUbuntuVersionEqual(Ubuntu22) && !s.IsUbuntuVersionEqual(Ubuntu24) && !s.IsUbuntuVersionEqual(Ubuntu25) {
return fmt.Errorf("unsupported ubuntu os version '%s'", s.GetOsVersion())
}
}

View file

@ -78,7 +78,7 @@ func (t *InstallCudaDeps) Execute(runtime connector.Runtime) error {
switch {
case systemInfo.IsUbuntu():
cudaKeyringVersion = v1alpha2.CudaKeyringVersion1_0
if systemInfo.IsUbuntuVersionEqual(connector.Ubuntu24) {
if systemInfo.IsUbuntuVersionEqual(connector.Ubuntu24) || systemInfo.IsUbuntuVersionEqual(connector.Ubuntu25) {
cudaKeyringVersion = v1alpha2.CudaKeyringVersion1_1
osVersion = "24.04"
} else if systemInfo.IsUbuntuVersionEqual(connector.Ubuntu22) {
@ -173,7 +173,11 @@ func (t *UpdateNvidiaContainerToolkitSource) Execute(runtime connector.Runtime)
return fmt.Errorf("Failed to find %s binary in %s", gpgkey.Filename, keyPath)
}
cmd = fmt.Sprintf("apt-key add %s", keyPath)
if _, err := runtime.GetRunner().SudoCmd("install -d -m 0755 /usr/share/keyrings", false, true); err != nil {
return err
}
keyringPath := "/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg"
cmd = fmt.Sprintf("gpg --batch --yes --dearmor -o %s %s", keyringPath, keyPath)
if _, err := runtime.GetRunner().SudoCmd(cmd, false, true); err != nil {
return err
}
@ -201,6 +205,10 @@ func (t *UpdateNvidiaContainerToolkitSource) Execute(runtime connector.Runtime)
return err
}
if _, err := runtime.GetRunner().SudoCmd(fmt.Sprintf("sed -i 's#^deb https://#deb [signed-by=%s] https://#' %s", keyringPath, dstPath), false, true); err != nil {
return err
}
mirrorRepo := os.Getenv(common.ENV_NVIDIA_CONTAINER_REPO_MIRROR)
if mirrorRepo == "" {
return nil