最新资讯

  • Ubuntu 20.04 安装Cuda 12.2版本踩坑记录

Ubuntu 20.04 安装Cuda 12.2版本踩坑记录

2025-05-10 16:37:36 0 阅读

Ubuntu 20.04 安装Cuda 12.2版本踩坑记录

文章目录

  • Ubuntu 20.04 安装Cuda 12.2版本踩坑记录
    • 查看Ubuntu版本
    • 不成功的方式:使用deb安装
        • 卸载现有的 NVIDIA 驱动:
        • 安装符合要求的驱动版本:
    • 成功的安装方式:使用runfile安装
      • user账户nvcc不可用解决方法
    • 参考
    • 后记

查看Ubuntu版本

使用下面的命令

lsb_release -a

运行结果

(base) xxx@ubuntu-test:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.5 LTS
Release:        20.04
Codename:       focal
(base) xxx@ubuntu-test:~$ uname -a
Linux ubuntu-test 5.5.10-050510-generic #202003180732 SMP Wed Mar 18 07:35:23 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

这个命令解析:

这条命令 uname -a 输出的信息包含了当前系统的详细信息。我们可以将其分解如下:

  1. 操作系统名称
    • Linux:表示操作系统是 Linux。
  2. 主机名
    • ubuntu-test:表示计算机的主机名。
  3. 内核版本
    • 5.5.10-050510-generic:表示正在使用的 Linux 内核版本是 5.5.10,并且使用的是通用(generic)版本。
  4. 内核构建信息
    • #202003180732:这是内核的构建号,通常包含构建日期和时间。这里显示的是构建的时间戳(2020年3月18日 07:32:23 UTC)。
  5. 内核编译类型
    • SMP:表示内核支持对称多处理(Symmetric Multi-Processing),即系统能够使用多个处理器(或核心)。
  6. 内核编译日期和时间
    • Wed Mar 18 07:35:23 UTC 2020:表示内核编译的日期和时间。
  7. 系统架构
    • x86_64:表示系统架构是 64 位的 x86 架构(即常见的 64 位 Intel 或 AMD 处理器)。
  8. 操作系统架构
    • x86_64:再次表明系统是 64 位的。
  9. 操作系统类型
    • GNU/Linux:表示操作系统是基于 GNU 工具和 Linux 内核构建的 Linux 系统。

综上所述,命令 uname -a 提供了操作系统名称、内核版本、编译信息、主机名、系统架构等关键系统信息。

CUDA Toolkit 12.2 Downloads过程记录。

不成功的方式:使用deb安装

不要使用deb安装,而是使用runfile安装

使用deb (local)安装,遇到很多坑,记录如下,最终也没有安装成功。所以推荐不要使用deb安装。如果不想看debug过程,可以直接跳到下面成功安装的部分:成功的安装方式:使用runfile安装

https://developer.nvidia.com/cuda-12-2-0-download-archive?target_os=Linux&target_arch=x86_64&Distribution=Ubuntu&target_version=20.04&target_type=deb_local

全部命令如下

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/12.2.0/local_installers/cuda-repo-ubuntu2004-12-2-local_12.2.0-535.54.03-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2004-12-2-local_12.2.0-535.54.03-1_amd64.deb
sudo cp /var/cuda-repo-ubuntu2004-12-2-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda

下面是每一步的具体解析:

第一步:

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin

解析:

这条命令 wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin 使用了 wget 工具来从指定的 URL 下载一个文件。让我们解析这个命令的各个部分:

  1. wget
    • 这是一个命令行工具,用于从网络上下载文件。它支持通过 HTTP、HTTPS 和 FTP 协议下载文件。
  2. https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
    • 这是一个 URL,指定了文件的位置。我们可以将其拆解成几个部分:
      • https://:表示通过 HTTPS 协议进行安全连接。
      • developer.download.nvidia.com:这是文件所在的主机名,属于 NVIDIA 的开发者下载站点。
      • compute/cuda/repos/ubuntu2004/x86_64/:这部分表示该文件位于 NVIDIA CUDA 的 Ubuntu 20.04 版本的仓库下,并且是针对 64 位系统的。
      • cuda-ubuntu2004.pin:这是文件名,通常 .pin 文件用于指定软件包的优先级或版本信息。在这种情况下,它可能是用于指定 CUDA 在 Ubuntu 20.04 系统中的软件包版本或优先级。

总结:这条命令的作用是使用 wget 从 NVIDIA 开发者站点下载一个名为 cuda-ubuntu2004.pin 的文件,该文件位于 CUDA 的 Ubuntu 20.04 版本的存储库目录下。

第二步:

sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600

这条命令 sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600 的作用是将文件移动到指定的目录,并且使用了 sudo 提升权限。我们可以详细解析如下:

  1. sudo
    • sudo 是一个用于以超级用户(root)身份运行命令的工具。在这个命令中,sudo 让用户能够有足够的权限来进行文件操作,因为目标目录 /etc/apt/preferences.d/ 通常需要超级用户权限才能写入。
  2. mv
    • mv 是一个用于移动文件或重命名文件的命令。它将 cuda-ubuntu2004.pin 文件从当前目录移动到指定的目录 /etc/apt/preferences.d/ 下,并且可以同时进行重命名。
  3. cuda-ubuntu2004.pin
    • 这是源文件的名称。它是之前下载的 .pin 文件,包含有关 CUDA 软件包的优先级信息。
  4. /etc/apt/preferences.d/cuda-repository-pin-600
    • 这是目标路径,表示将 cuda-ubuntu2004.pin 文件移动到系统的 APT 配置目录中的 preferences.d 子目录下,并将文件重命名为 cuda-repository-pin-600
    • /etc/apt/preferences.d/:这是 APT 配置文件的目录,用于存放与包管理器(APT)相关的首选项文件。preferences.d 目录下的文件用于指定软件包的优先级、版本等细节。
    • cuda-repository-pin-600:这是目标文件的名称,通常 .pin 文件用于指定软件包源的优先级。文件名中的 600 可能是设置此文件优先级的标识符,表示为高优先级(通常 100 表示默认优先级,而 600 表示更高的优先级)。

总结: 这条命令的作用是使用超级用户权限将 cuda-ubuntu2004.pin 文件移动到 /etc/apt/preferences.d/ 目录下,并将其重命名为 cuda-repository-pin-600。这通常是为了配置 CUDA 软件包的优先级,确保在 APT 更新时优先使用指定版本的 CUDA 软件包。

第三步:

wget https://developer.download.nvidia.com/compute/cuda/12.2.0/local_installers/cuda-repo-ubuntu2004-12-2-local_12.2.0-535.54.03-1_amd64.deb

这条命令 wget https://developer.download.nvidia.com/compute/cuda/12.2.0/local_installers/cuda-repo-ubuntu2004-12-2-local_12.2.0-535.54.03-1_amd64.deb 使用了 wget 工具来下载一个 .deb 包文件。下面是对命令的逐部分解析:

  1. wget

    • wget 是一个命令行工具,用于从互联网上下载文件。它支持多种协议(如 HTTP、HTTPS 和 FTP)进行文件传输。
  2. https://developer.download.nvidia.com/compute/cuda/12.2.0/local_installers/cuda-repo-ubuntu2004-12-2-local_12.2.0-535.54.03-1_amd64.deb

    • 这是下载文件的 URL,包含了文件的完整路径。将其分解为以下几个部分:

      • https://:表示通过 HTTPS 协议进行安全的文件传输。

      • developer.download.nvidia.com:这是 NVIDIA 开发者网站的主机名,提供 CUDA 等软件的下载。

      • compute/cuda/12.2.0/:这是文件所在的目录,表示下载的 CUDA 版本是 12.2.0。

      • local_installers/:表示这是一个本地安装程序包,用于在 Ubuntu 2004 系统上安装 CUDA。

      • cuda-repo-ubuntu2004-12-2-local_12.2.0-535.54.03-1_amd64.deb

        :这是下载的文件名,表示这是一个用于 Ubuntu 20.04 (amd64 架构) 的 CUDA 安装包。

        • cuda-repo-ubuntu2004-12-2-local:表明这是 Ubuntu 20.04 系统的 CUDA 本地安装包。
        • 12.2.0-535.54.03-1:表示 CUDA 版本是 12.2.0,且版本的构建号是 535.54.03-1。
        • amd64:表示这是适用于 64 位架构的安装包。
        • .deb:表示这是一个 Debian 包格式文件,通常用于基于 Debian 的系统(如 Ubuntu)安装软件。

总结: 这条命令使用 wget 从 NVIDIA 开发者网站下载适用于 Ubuntu 20.04 系统的 CUDA 12.2.0 本地安装程序包 cuda-repo-ubuntu2004-12-2-local_12.2.0-535.54.03-1_amd64.deb。这个安装包将用于安装指定版本的 CUDA 开发工具包。

第四步:

sudo dpkg -i cuda-repo-ubuntu2004-12-2-local_12.2.0-535.54.03-1_amd64.deb

这条命令 sudo dpkg -i cuda-repo-ubuntu2004-12-2-local_12.2.0-535.54.03-1_amd64.deb 用于在 Ubuntu 系统中安装 CUDA 的本地 .deb 安装包。下面是对命令的详细解析:

  1. sudo
  • sudo 是一个命令行工具,用于以超级用户(root)权限运行命令。由于安装软件包需要系统管理员权限,sudo 在这里用于提升权限。
  1. dpkg
  • dpkg 是 Debian 系统及其衍生版本(如 Ubuntu)中用于安装、卸载和管理 .deb 包的工具。它是低层次的包管理工具,可以直接安装、配置和移除 .deb 包文件。
  1. -i
  • -i 选项表示安装模式(install),即告诉 dpkg 执行安装操作。后面紧跟着的是要安装的 .deb 包文件。
  1. cuda-repo-ubuntu2004-12-2-local_12.2.0-535.54.03-1_amd64.deb
  • 这是要安装的

    .deb
    

    包文件的完整路径和文件名,具体内容如下:

    • cuda-repo-ubuntu2004-12-2-local:表示这个包是为 Ubuntu 20.04 系统提供的 CUDA 本地安装包。
    • 12.2.0-535.54.03-1:表示 CUDA 版本号为 12.2.0,具体版本号为 535.54.03-1。
    • amd64:表示这是为 64 位(AMD64)架构系统构建的包。
    • .deb:这是 Debian 包格式的文件扩展名。

命令作用:

sudo dpkg -i cuda-repo-ubuntu2004-12-2-local_12.2.0-535.54.03-1_amd64.deb 的作用是:

  • 以管理员权限安装 cuda-repo-ubuntu2004-12-2-local_12.2.0-535.54.03-1_amd64.deb 文件。
  • 这个 .deb 包将 CUDA 12.2.0 的本地安装程序和存储库配置添加到系统中,使得系统能够通过 APT 包管理工具进行 CUDA 安装和更新。

总结: 这条命令用于安装一个 CUDA 12.2.0 版本的本地安装包,通常用于为 Ubuntu 20.04 系统配置 CUDA 存储库,以便后续可以使用 APT 安装和管理 CUDA 相关的工具和库。

如果显示如下信息

root@ubuntu-test:~# sudo dpkg -i cuda-repo-ubuntu2004-12-2-local_12.2.0-535.54.03-1_amd64.deb
Selecting previously unselected package cuda-repo-ubuntu2004-12-2-local.
(Reading database ... 168624 files and directories currently installed.)
Preparing to unpack cuda-repo-ubuntu2004-12-2-local_12.2.0-535.54.03-1_amd64.deb ...
Unpacking cuda-repo-ubuntu2004-12-2-local (12.2.0-535.54.03-1) ...
Setting up cuda-repo-ubuntu2004-12-2-local (12.2.0-535.54.03-1) ...

The public cuda-repo-ubuntu2004-12-2-local GPG key does not appear to be installed.
To install the key, run this command:
sudo cp /var/cuda-repo-ubuntu2004-12-2-local/cuda-73067DC7-keyring.gpg /usr/share/keyrings/

就要执行

sudo cp /var/cuda-repo-ubuntu2004-12-2-local/cuda-73067DC7-keyring.gpg /usr/share/keyrings/

这个命令,之后再往下执行。

第五步:

sudo cp /var/cuda-repo-ubuntu2004-12-2-local/cuda-*-keyring.gpg /usr/share/keyrings/

这条命令 sudo cp /var/cuda-repo-ubuntu2004-12-2-local/cuda-*-keyring.gpg /usr/share/keyrings/ 用于将 CUDA 存储库的 GPG 密钥文件复制到系统的密钥存储目录。下面是对命令各部分的详细解析:

  1. sudo
  • sudo 是用来以超级用户(root)权限执行命令的工具。由于需要在系统目录(如 /usr/share/keyrings/)中写入文件,因此需要管理员权限。
  1. cp
  • cp 是 Linux 系统中的一个命令,用于复制文件或目录。此处表示将源文件复制到目标位置。
  1. /var/cuda-repo-ubuntu2004-12-2-local/cuda-*-keyring.gpg
  • 这是源文件的路径和名称,具体如下:
    • /var/cuda-repo-ubuntu2004-12-2-local/:表示 CUDA 存储库的安装路径。在 CUDA 安装过程中,这个目录通常会包含一些 GPG 密钥文件,用于验证安装包的签名。
    • cuda-*-keyring.gpg:这是一个通配符匹配的文件名,表示匹配该目录下所有以 cuda- 开头、以 -keyring.gpg 结尾的文件。* 是通配符,表示可以匹配任何中间部分的字符。这通常是 CUDA 存储库的 GPG 密钥文件。
  1. /usr/share/keyrings/
  • 这是目标目录,表示将 GPG 密钥文件复制到该目录下。/usr/share/keyrings/ 是一个系统目录,存储系统和软件包管理工具所使用的 GPG 密钥,以确保下载的包没有被篡改。

命令作用:

这条命令的作用是:

  • 以管理员权限将 CUDA 存储库的 GPG 密钥文件(通常用于验证下载的 CUDA 软件包的完整性和来源)复制到 /usr/share/keyrings/ 目录。
  • 这对于系统 APT 包管理工具而言非常重要,因为它允许 APT 使用该密钥验证从 CUDA 存储库下载的软件包,以确保其安全性和可信性。

总结sudo cp /var/cuda-repo-ubuntu2004-12-2-local/cuda-*-keyring.gpg /usr/share/keyrings/ 命令将 CUDA 存储库的 GPG 密钥文件复制到 /usr/share/keyrings/ 目录,确保 APT 在安装 CUDA 软件包时能够验证软件包的签名,从而保障软件包的完整性和来源安全。

第六步:

sudo apt-get update
sudo apt-get -y install cuda

遇到如下问题:

root@ubuntu-test:~# sudo apt-get -y install cuda
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 cuda : Depends: cuda-12-6 (>= 12.6.3) but it is not going to be installed
        Depends: nvidia-open (>= 560.35.05) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

按照下面的方法:

sudo apt-get purge cuda
sudo apt-get autoremove
sudo apt-get clean
sudo apt-get update
sudo apt-get install cuda
或者:
sudo apt-get install cuda-12-2

还是会遇到问题:

The following packages have unmet dependencies:
 cuda : Depends: cuda-12-6 (>= 12.6.3) but it is not going to be installed
        Depends: nvidia-open (>= 560.35.05) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
root@ubuntu-test:~# sudo apt-get install cuda-12-2
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 cuda-12-2 : Depends: cuda-runtime-12-2 (>= 12.2.2) but it is not going to be installed
             Depends: cuda-demo-suite-12-2 (>= 12.2.140) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

继续debug

root@ubuntu-test:~# sudo apt-get install cuda-runtime-12-2 cuda-demo-suite-12-2
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 cuda-runtime-12-2 : Depends: cuda-drivers (>= 535.104.05) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

但是我的cuda driver版本是Driver Version: 545.23.08已经满足上述要求,于是继续debug

卸载现有的 NVIDIA 驱动:

如果当前的驱动版本不符合 CUDA 12.2 的要求,可以先卸载现有的 NVIDIA 驱动,然后再安装适合的驱动版本。执行以下命令

sudo apt-get purge nvidia-*
sudo apt-get autoremove
sudo apt-get clean
安装符合要求的驱动版本:

根据 CUDA 12.2 的要求,你可以安装适当版本的驱动,如 nvidia-driver-535。尝试以下命令来安装它:

sudo apt-get install nvidia-driver-535

重启 sudo reboot之后查看版本,已经是自己需要的版本了

 NVIDIA-SMI 535.216.03             Driver Version: 535.216.03   CUDA Version: 12.2     |

但是运行如下命令,依然发现:软连接链接到的是12.6

ls -l /etc/alternatives/ | grep cuda

输出:

lrwxrwxrwx 1 root root  20 Dec 24 14:00 cuda -> /usr/local/cuda-12.6
lrwxrwxrwx 1 root root  20 Dec 24 14:00 cuda-12 -> /usr/local/cuda-12.6
lrwxrwxrwx 1 root root  36 Dec 24 14:00 cufile.json -> /usr/local/cuda-12.6/gds/cufile.json

这条命令 ls -l /etc/alternatives/ | grep cuda 列出了 /etc/alternatives/ 目录下与 cuda 相关的符号链接(symlink)。让我们逐一解析这些输出:

  1. lrwxrwxrwx 1 root root 20 Dec 24 14:00 cuda -> /usr/local/cuda-12.6
  • lrwxrwxrwx:表示该文件是一个符号链接(l),并且具有读、写、执行权限(rwxrwxrwx)对所有用户(所有者、群组和其他用户)开放。
  • 1 root root:表示该文件的所有者是 root,所属组也是 root
  • 20:这是符号链接的长度,即链接目标的字符数。
  • Dec 24 14:00:符号链接的最后修改时间。
  • cuda -> /usr/local/cuda-12.6:这是一个符号链接,名为 cuda,指向 /usr/local/cuda-12.6 目录。这表示 cuda 被设置为指向 CUDA 12.6 的安装目录 /usr/local/cuda-12.6
  1. lrwxrwxrwx 1 root root 20 Dec 24 14:00 cuda-12 -> /usr/local/cuda-12.6
  • 这个条目类似于第一个,但符号链接的名称是 cuda-12,指向同样的目标 /usr/local/cuda-12.6
  • 这表明 cuda-12 也指向 CUDA 12.6 的安装目录。
  1. lrwxrwxrwx 1 root root 36 Dec 24 14:00 cufile.json -> /usr/local/cuda-12.6/gds/cufile.json
  • cufile.json -> /usr/local/cuda-12.6/gds/cufile.json:这是一个符号链接,名为 cufile.json,指向 /usr/local/cuda-12.6/gds/cufile.json
  • 这个链接表明,cufile.json 文件位于 /usr/local/cuda-12.6/gds/ 目录下,是与 CUDA 12.6 版本的 GDS(GPU Direct Storage)相关的配置文件。

总结:

  • 这些符号链接表示 /etc/alternatives/ 目录下的 cudacuda-12cufile.json 都指向 /usr/local/cuda-12.6 目录中的相关内容。
  • 具体来说:
    • cudacuda-12 都指向 CUDA 12.6 的安装目录 /usr/local/cuda-12.6
    • cufile.json 指向 CUDA 12.6 中 gds/cufile.json 配置文件。

/etc/alternatives/ 目录是用于管理多个版本的程序和工具的一个地方,通常用来创建符号链接,以便系统可以在不同版本之间切换。

怎么办呢?

检查当前的 CUDA 版本目录: 确保 /usr/local/cuda-12.2 目录确实存在,并包含 CUDA 12.2 的所有文件。

root@ubuntu-test:~# ls /usr/local/
bin  clash  clash-dashboard  cuda  cuda-11.6  cuda-11.8  cuda-12  cuda-12.6  dash  dash.tar.gz  etc  games  include  kernelobjects  lib  man  sbin  share  src

发现没有12.2,需要重新安装。于是去网上找帖子。看到大家几乎没有用deb安装,而都是用run安装,所以准备重新安装。

成功的安装方式:使用runfile安装

Link:https://developer.nvidia.com/cuda-12-2-0-download-archive?target_os=Linux&target_arch=x86_64&Distribution=Ubuntu&target_version=20.04&target_type=runfile_local

只有两句命令:

wget https://developer.download.nvidia.com/compute/cuda/12.2.0/local_installers/cuda_12.2.0_535.54.03_linux.run
sudo sh cuda_12.2.0_535.54.03_linux.run

下面是执行过程

root@ubuntu-test:~# wget https://developer.download.nvidia.com/compute/cuda/12.2.0/local_installers/cuda_12.2.0_535.54.03_linux.run
root@ubuntu-test:~# sudo sh cuda_12.2.0_535.54.03_linux.run
 Installation failed. See log at /var/log/cuda-installer.log for details.
root@ubuntu-test:~# cat  /var/log/cuda-installer.log
[INFO]: Driver installation detected by command: apt list --installed | grep -e nvidia-driver-[0-9][0-9][0-9] -e nvidia-[0-9][0-9][0-9]
[INFO]: Cleaning up window
[INFO]: Complete
[INFO]: Checking compiler version...
[INFO]: gcc location: /usr/bin/gcc

[INFO]: gcc version: gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1) 

[INFO]: Initializing menu
[INFO]: nvidia-fs.setKOVersion(2.16.1)
[INFO]: Setup complete
[INFO]: Installing: Driver
[INFO]: Installing: 535.54.03
[INFO]: Executing NVIDIA-Linux-x86_64-535.54.03.run --ui=none --no-questions --accept-license --disable-nouveau --no-cc-version-check --install-libglvnd  2>&1
[INFO]: Finished with code: 256
[ERROR]: Install of driver component failed. Consult the driver log at /var/log/nvidia-installer.log for more details.
[ERROR]: Install of 535.54.03 failed, quitting

输入accept,同意协议

这里的X号表示选中,第一次,我是选中这里的Driver,然后显示安装失败。所以第二次不选择安装这个driver

于是我现在取消第一个Driver的选中,按空格键表示选中还是不选中。

然后安装

安装完成的信息

===========
= Summary =
===========

Driver:   Not Selected
Toolkit:  Installed in /usr/local/cuda-12.2/

Please make sure that
 -   PATH includes /usr/local/cuda-12.2/bin
 -   LD_LIBRARY_PATH includes /usr/local/cuda-12.2/lib64, or, add /usr/local/cuda-12.2/lib64 to /etc/ld.so.conf and run ldconfig as root

To uninstall the CUDA Toolkit, run cuda-uninstaller in /usr/local/cuda-12.2/bin
***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 535.00 is required for CUDA 12.2 functionality to work.
To install the driver using this installer, run the following command, replacing <CudaInstaller> with the name of this run file:
    sudo <CudaInstaller>.run --silent --driver

Logfile is /var/log/cuda-installer.log

配置环境变量

sudo vim ~/.bashrc

根据你给出的输出,CUDA 12.2 已经安装在 /usr/local/cuda-12.2/ 目录中,但是安装过程没有包括 NVIDIA 驱动。因此,CUDA 工具包可以正常使用,但需要驱动版本至少为 535.00。你需要将路径添加到 ~/.bashrc 中,以确保正确设置环境变量,使得系统能够识别 CUDA 工具包。

操作步骤:

  1. 打开 .bashrc 文件: 在终端中输入以下命令打开 ~/.bashrc 文件:

    sudo vim ~/.bashrc
    

    或者你可以使用其他编辑器,如 nano,如果你不熟悉 vim

    sudo nano ~/.bashrc
    
  2. 修改 .bashrc 文件: 在文件的最后添加以下内容来更新 PATHLD_LIBRARY_PATH 环境变量:

    # Add CUDA 12.2 to PATH and LD_LIBRARY_PATH
    export PATH=/usr/local/cuda-12.2/bin:$PATH
    export LD_LIBRARY_PATH=/usr/local/cuda-12.2/lib64:$LD_LIBRARY_PATH
    

    这会确保每次打开终端时,系统能够正确找到 CUDA 相关的可执行文件和库。

  3. 保存并退出: 如果你使用的是 vim,按 Esc 键,然后输入 :wq 来保存并退出。如果你使用的是 nano,按 Ctrl + O 保存文件,然后按 Ctrl + X 退出。

  4. 使修改生效: 修改 .bashrc 后,需要使改动生效。你可以执行以下命令来重新加载 .bashrc

    source ~/.bashrc
    
  5. 验证环境变量是否设置正确: 你可以通过运行以下命令来验证 PATHLD_LIBRARY_PATH 是否已正确设置:

    echo $PATH
    echo $LD_LIBRARY_PATH
    

    你应该能看到 /usr/local/cuda-12.2/bin 出现在 PATH 中,/usr/local/cuda-12.2/lib64 出现在 LD_LIBRARY_PATH 中。

继续安装或更新驱动:(因为我之前的驱动已经安装过,所以没有再装,如果读者需要装,可以按照命令装一下试试)

此外,你还需要安装适当的 NVIDIA 驱动来确保 CUDA 12.2 正常工作。根据输出,你的驱动未安装,或者当前驱动版本不符合要求。你可以使用以下命令来安装驱动(如果还未安装):

sudo apt-get install nvidia-driver-535

或者按照 CUDA 安装日志中的建议,运行以下命令来自动安装驱动:

sudo cuda-installer.run --silent --driver

完成这些步骤后,CUDA 环境应该设置正确,且可以正常使用。

但是使用ls -l /etc/alternatives/ | grep cuda发现软连接还是12.6

我已经装好了cuda12,为什么root@ubuntu-test:~# ls -l /etc/alternatives/ | grep cuda lrwxrwxrwx 1 root root 20 Dec 24 14:00 cuda -> /usr/local/cuda-12.6 lrwxrwxrwx 1 root root 20 Dec 24 14:00 cuda-12 -> /usr/local/cuda-12.6 lrwxrwxrwx 1 root root 36 Dec 24 14:00 cufile.json -> /usr/local/cuda-12.6/gds/cufile.json还是会这样,这里的软连接指向12.6是什么意思?是每次使用cuda都会用12.6吗?如何让运行程序使用12.2

当前 /etc/alternatives/ 目录中的符号链接显示,cudacuda-12 都指向 /usr/local/cuda-12.6 目录,而不是 /usr/local/cuda-12.2。这意味着系统默认会使用 CUDA 12.6,而不是 CUDA 12.2。你可以通过调整这些符号链接,使得系统指向 CUDA 12.2。

为什么会有这种情况?

这通常是因为在安装或配置 CUDA 12.6 时,它设置了默认的符号链接。而 /usr/local/cuda 是系统用来表示当前使用的 CUDA 版本的标准路径,通常是指向最新或当前使用的版本。

解决方法:

  1. 切换到 CUDA 12.2:

    你可以更新这些符号链接,让它们指向 /usr/local/cuda-12.2,而不是 /usr/local/cuda-12.6。操作步骤如下:

    1. 删除当前的符号链接:

      sudo rm /etc/alternatives/cuda
      sudo rm /etc/alternatives/cuda-12
      
    2. 创建新的符号链接,指向 CUDA 12.2:

      sudo ln -s /usr/local/cuda-12.2 /etc/alternatives/cuda
      sudo ln -s /usr/local/cuda-12.2 /etc/alternatives/cuda-12
      

    这样,cudacuda-12 这些符号链接就会指向 CUDA 12.2 了。

  2. 验证符号链接是否生效:

    使用以下命令确认符号链接已正确设置:

    ls -l /etc/alternatives/ | grep cuda
    

    输出应该类似这样,显示它们现在指向 CUDA 12.2:

    lrwxrwxrwx 1 root root  20 Dec 24 14:00 cuda -> /usr/local/cuda-12.2
    lrwxrwxrwx 1 root root  20 Dec 24 14:00 cuda-12 -> /usr/local/cuda-12.2
    
  3. 确保环境变量更新:

    如果你之前已设置 PATHLD_LIBRARY_PATH 环境变量来指向 CUDA 12.2,你可以重新加载这些环境变量:

    source ~/.bashrc
    

    如果你还没有设置这些环境变量,可以按照以下方式设置:

    export PATH=/usr/local/cuda-12.2/bin:$PATH
    export LD_LIBRARY_PATH=/usr/local/cuda-12.2/lib64:$LD_LIBRARY_PATH
    

    然后再次运行 source ~/.bashrc

  4. 验证是否使用正确的版本:

    运行以下命令验证是否使用了正确的 CUDA 版本:

    nvcc --version
    

    输出应显示 CUDA 12.2 的版本信息。

通过上述步骤,你可以确保系统使用 CUDA 12.2,而不是 CUDA 12.6。

这是在root账户下操作的。

user账户nvcc不可用解决方法

但是user账户下nvcc不可用

(base) xxx@ubuntu-test:~$ nvcc -V
bash: nvcc: command not found
(base) xxx@ubuntu-test:~$ nvidia-smi
Fri Jan 10 15:10:51 2025       
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.216.03             Driver Version: 535.216.03   CUDA Version: 12.2     |
|-----------------------------------------+----------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Compute M. |
|                                         |                      |               MIG M. |
|=========================================+======================+======================|
|   0  NVIDIA GeForce RTX 3090        On  | 00000000:3B:00.0 Off |                  N/A |
| 30%   18C    P8               9W / 350W |      1MiB / 24576MiB |      0%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+
|   1  NVIDIA GeForce RTX 3090        On  | 00000000:5E:00.0 Off |                  N/A |
| 30%   17C    P8              11W / 350W |      1MiB / 24576MiB |      0%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+
|   2  NVIDIA GeForce RTX 3090        On  | 00000000:B1:00.0 Off |                  N/A |
| 30%   18C    P8              17W / 350W |      1MiB / 24576MiB |      0%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+
|   3  NVIDIA GeForce RTX 3090        On  | 00000000:D9:00.0 Off |                  N/A |
| 30%   18C    P8              15W / 350W |      1MiB / 24576MiB |      0%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+
                                                                                         
+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
|  No running processes found                                                           |
+---------------------------------------------------------------------------------------+

解决方法:

如果 nvcc 在 root 用户下可以使用,但在普通用户下无法找到,可能是因为普通用户的环境变量没有正确设置。你需要确保普通用户的 PATH 环境变量包含了 CUDA 12.2 的路径。

解决方法:

  1. 检查并编辑普通用户的 .bashrc 文件:

    打开普通用户的 .bashrc 文件,确保其中有 CUDA 的环境变量设置。如果没有,手动添加:

    sudo vim ~/.bashrc 
    

    在文件末尾添加以下内容:

    export PATH=/usr/local/cuda-12.2/bin:$PATH
    export LD_LIBRARY_PATH=/usr/local/cuda-12.2/lib64:$LD_LIBRARY_PATH
    

    如果你使用的是 vim,按 Esc 键,然后输入 :wq 来保存并退出。

  2. 使更改生效:

    为了使 .bashrc 中的更改立即生效,运行以下命令:

    source ~/.bashrc
    
  3. 验证环境变量是否生效:

    运行以下命令,确保环境变量已经更新:

    echo $PATH
    echo $LD_LIBRARY_PATH
    

    检查输出,确认 PATH 中包含 /usr/local/cuda-12.2/binLD_LIBRARY_PATH 中包含 /usr/local/cuda-12.2/lib64

  4. 验证 nvcc 是否可用:

    重新打开终端或运行以下命令来确认 nvcc 是否可以使用:

    nvcc --version
    

    如果一切设置正确,你应该能看到 CUDA 12.2 的版本信息。

其他检查:

  • 如果你在使用不同的 shell(如 zsh),确保在相应的配置文件(如 .zshrc)中也进行了环境变量的设置。
  • 确保没有其他路径覆盖了 CUDA 路径,导致 nvcc 无法找到。

通过这些步骤,你应该能够在普通用户下成功使用 nvcc

显示成功:

参考

Ubuntu22.04.3安装CUDA12.2

ubuntu20.04安装12.2版本的cuda

后记

2025年1月10日15点19分于上海,在GPT4o大模型辅助下完成。

本文地址:https://www.vps345.com/9695.html

搜索文章

Tags

PV计算 带宽计算 流量带宽 服务器带宽 上行带宽 上行速率 什么是上行带宽? CC攻击 攻击怎么办 流量攻击 DDOS攻击 服务器被攻击怎么办 源IP docker 容器 运维 java-rabbitmq java 服务器 linux 游戏 云计算 服务器安全 网络安全策略 防御服务器攻击 安全威胁和解决方案 程序员博客保护 数据保护 安全最佳实践 deepseek DeepSeek-R1 API接口 Ollama Qwen2.5-coder 离线部署 RTSP xop RTP RTSPServer 推流 视频 网络工程师 网络管理 软考 2024 2024年上半年 下午真题 答案 Deepseek Deepseek-R1 大模型 私有化部署 推理模型 物联网 ubuntu 模型联网 API CherryStudio CH340 单片机 嵌入式硬件 串口驱动 CH341 uart 485 进程 操作系统 进程控制 Ubuntu 数据库系统 macos windows conda django pycharm ide 开发环境 javascript 前端 chrome edge https YOLO 网络结构图 nginx 负载均衡 fastapi mcp mcp-proxy mcp-inspector fastapi-mcp agent sse DNS debian PVE jellyfin nas 神经网络 人工智能 深度学习 计算机视觉 卷积神经网络 word图片自动上传 word一键转存 复制word图片 复制word图文 复制word公式 粘贴word图文 粘贴word公式 php 开发语言 c语言 智能路由器 网络 外网访问 内网穿透 端口映射 llama 算法 opencv 自然语言处理 语言模型 jvm 虚拟机 android harmonyos typescript 鸿蒙 英语 tcp/ip 网络协议 ip协议 python pip 学习 高级IO epoll MCP ubuntu 18.04 安装教程 C# MQTTS 双向认证 emqx redis cron crontab日志 ddos 网络安全 web安全 kafka 分布式 matplotlib fonts-noto-cjk 媒体 json eureka 数据库 centos oracle 关系型 安全 vscode ue4 着色器 ue5 虚幻 笔记 C 环境变量 进程地址空间 vue.js spring boot node.js udp 本地环回 bind fstab 阿里云 USB转串口 数据分析 机器学习 ssh zotero WebDAV 同步失败 代理模式 科技 ai 个人开发 gcc centos 7 audio vue音乐播放器 vue播放音频文件 Audio音频播放器自定义样式 播放暂停进度条音量调节快进快退 自定义audio覆盖默认样式 IM即时通讯 QQ 微信 企业微信 剪切板对通 HTML FORMAT gnu 经验分享 Dify MacOS录屏软件 mcu vSphere vCenter 软件定义数据中心 sddc flutter Google pay Apple pay jenkins maven svn 自动化 大语言模型 LLMs AI大模型 大模型技术 本地部署大模型 dubbo 面试 华为 ui 华为云 华为od HarmonyOS Next dify ollama 私有化 本地部署 开源 github 实时音视频 实时互动 Alexnet 计算机外设 bug 缓存 灵办AI websocket 集成学习 集成测试 驱动开发 nlp 远程连接 rdp 实验 电脑 mac 软件需求 计算机网络 大数据 spark hive 虚拟现实 pytorch transformer c# 多层架构 解耦 EtherCAT转Modbus ECT转Modbus协议 EtherCAT转485网关 ECT转Modbus串口网关 EtherCAT转485协议 ECT转Modbus网关 课程设计 numpy 微信分享 Image wxopensdk qt QT 5.12.12 QT开发环境 Ubuntu18.04 进程优先级 调度队列 进程切换 AIGC agi Hyper-V WinRM TrustedHosts rtsp服务器 rtsp server android rtsp服务 安卓rtsp服务器 移动端rtsp服务 大牛直播SDK oracle fusion oracle中间件 游戏引擎 pillow live555 rtsp rtp ragflow gitee vue3 HTML audio 控件组件 vue3 audio音乐播放器 Audio标签自定义样式默认 vue3播放音频文件音效音乐 自定义audio播放器样式 播放暂停调整声音大小下载文件 浪潮信息 AI服务器 adb kubernetes prometheus grafana 云原生 持续部署 openvpn server openvpn配置教程 centos安装openvpn .netcore postman 测试工具 Flask FastAPI Waitress Gunicorn uWSGI Uvicorn outlook 错误代码2603 无网络连接 2603 后端 Linux PID 策略模式 c++ 硬件工程 嵌入式实习 并查集 leetcode apache html 像素流送api 像素流送UE4 像素流送卡顿 像素流送并发支持 vr CPU 内存 主板 电源 网卡 opengl kylin gateway Clion Nova ResharperC++引擎 Centos7 远程开发 DevEco Studio burp suite 抓包 axure 富文本编辑器 vnc Cline Linux 维护模式 GPU环境配置 Ubuntu22 CUDA PyTorch Anaconda安装 mysql asm SRS 流媒体 直播 iftop 网络流量监控 ssh漏洞 ssh9.9p2 CVE-2025-23419 硬件架构 系统架构 毕设 ip spring cloud compose ros2 moveit 机器人运动 powerpoint sqlserver 个人博客 rust腐蚀 豆瓣 追剧助手 迅雷 k8s 爬虫 实战案例 主从复制 perf 人工智能生成内容 数据挖掘 网络用户购物行为分析可视化平台 大数据毕业设计 1024程序员节 nftables 防火墙 openstack VMware Xen KVM 统信UOS 麒麟 bonding 链路聚合 bash golang filezilla 无法连接服务器 连接被服务器拒绝 vsftpd 331/530 HCIE 数通 GCC aarch64 编译安装 HPC 银河麒麟 kylin v10 麒麟 v10 LDAP 架构 hadoop java-ee tar 目标检测 数据结构 链表 flask AI编程 tomcat intellij idea rpc go 虚拟局域网 运维开发 milvus CPU 使用率 系统监控工具 linux 命令 tcpdump sublime text 编辑器 kali 共享文件夹 AI 大模型应用 jar gradle 3d 数学建模 etcd 数据安全 RBAC seatunnel 王者荣耀 rag 大模型部署 TCP WebServer chatgpt llama3 Chatglm 开源大模型 cursor uni-app docker搭建nacos详解 docker部署nacos docker安装nacos 腾讯云搭建nacos centos7搭建nacos WSL2 上安装 Ubuntu ffmpeg Reactor 设计模式 性能优化 C++ springsecurity6 oauth2 授权服务器 前后端分离 嵌入式 linux驱动开发 arm开发 GaN HEMT 氮化镓 单粒子烧毁 辐射损伤 辐照效应 程序人生 iot 信息与通信 vite 部署 Dell R750XS 温湿度数据上传到服务器 Arduino HTTP HiCar CarLife+ CarPlay QT Linux RK3588 burpsuite 安全工具 mac安全工具 burp安装教程 渗透工具 智能手机 矩阵 华为认证 交换机 MacMini Mac 迷你主机 mini Apple MS Materials sql KingBase 计算生物学 生物信息学 生物信息 基因组 rust http spring armbian u-boot ragflow 源码启动 程序员创富 virtualenv 思科 react.js 前端面试题 小程序 微信小程序域名配置 微信小程序服务器域名 微信小程序合法域名 小程序配置业务域名 微信小程序需要域名吗 微信小程序添加域名 命名管道 客户端与服务端通信 cuda cudnn anaconda RustDesk自建服务器 rustdesk服务器 docker rustdesk express p2p 迁移指南 VMware安装mocOS macOS系统安装 vim 指令 shell 磁盘监控 windows 服务器安装 AI-native Docker Desktop unix 产品经理 microsoft Doris搭建 docker搭建Doris Doris搭建过程 linux搭建Doris Doris搭建详细步骤 Doris部署 linux内核 学习方法 离线部署dify DeepSeek 系统 黑苹果 unity GameFramework HybridCLR Unity编辑器扩展 自动化工具 安卓模拟器 权限 ssl remote-ssh WebUI DeepSeek V3 lvm 磁盘挂载 磁盘分区 gpt log4j edge浏览器 onlyoffice visual studio code 前端框架 僵尸进程 qps 高并发 jmeter 软件测试 oceanbase 传统数据库升级 银行 ip命令 新增网卡 新增IP 启动网卡 多线程 Hive环境搭建 hive3环境 Hive远程模式 Redis Desktop 多线程服务器 Linux网络编程 快捷键 旋转屏幕 自动操作 WSL2 Ubuntu22.04 虚拟化 开发人员主页 Linux的权限 dell服务器 pygame arm Docker Hub docker pull 镜像源 daemon.json 电子信息 通信工程 stm32 毕业 Mermaid 可视化图表 自动化生成 Chatbox Invalid Host allowedHosts vue Agent LLM CrewAI jupyter ESP32 Kylin-Server 国产操作系统 服务器安装 NAS Termux Samba efficientVIT YOLOv8替换主干网络 TOLOv8 rc.local 开机自启 systemd stm32项目 llm 监控k8s集群 集群内prometheus ESXi VMware安装Ubuntu Ubuntu安装k8s 创意 社区 xcode 宝塔面板访问不了 宝塔面板网站访问不了 宝塔面板怎么配置网站能访问 宝塔面板配置ip访问 宝塔面板配置域名访问教程 宝塔面板配置教程 database 聚类 音视频 视频编解码 devops okhttp ocr ci/cd 代码规范 SenseVoice 嵌入式系统开发 ai小智 语音助手 ai小智配网 ai小智教程 智能硬件 esp32语音助手 diy语音助手 远程控制 远程看看 远程协助 selete 文件系统 路径解析 kamailio sip VoIP react next.js 部署next.js 高效日志打印 串口通信日志 服务器日志 系统状态监控日志 异常记录日志 机器人 漏洞 telnet 远程登录 jdk intellij-idea .net gpt-3 文心一言 环境配置 串口服务器 n8n dity make kernel mamba Vmamba k8s资源监控 annotations自动化 自动化监控 监控service 监控jvm elasticsearch ubuntu20.04 开机黑屏 DigitalOcean GPU服务器购买 GPU服务器哪里有 GPU服务器 Docker引擎已经停止 Docker无法使用 WSL进度一直是0 镜像加速地址 云耀服务器 export import save load 迁移镜像 matlab netlink libnl3 低代码 图形化界面 上传视频文件到服务器 uniApp本地上传视频并预览 uniapp移动端h5网页 uniapp微信小程序上传视频 uniapp app端视频上传 uniapp uview组件库 大文件分片上传断点续传及进度条 如何批量上传超大文件并显示进度 axios大文件切片上传详细教 node服务器合并切片 vue3大文件上传报错提示错误 大文件秒传跨域报错cors 医疗APP开发 app开发 压力测试 5G top Linux top top命令详解 top命令重点 top常用参数 camera Arduino CORS 跨域 docker搭建pg docker搭建pgsql pg授权 postgresql使用 postgresql搭建 bcompare Beyond Compare 硬件 设备 GPU PCI-Express 线程 工具分享 notepad P2P HDLC MCP server C/S 匿名管道 RAID RAID技术 磁盘 存储 ruoyi 树莓派 VNC 监控 自动化运维 thingsboard postgresql wsl 域名服务 DHCP 符号链接 配置 程序 编程 性能分析 echarts 信息可视化 网页设计 中兴光猫 换光猫 网络桥接 自己换光猫 docker compose nvm Qualcomm WoS Python QNN AppBuilder vasp安装 远程桌面 直播推流 AutoDL ros 话题通信 服务通信 Windsurf 政务 分布式系统 监控运维 Prometheus Grafana 安卓 职场和发展 统信 虚拟机安装 ecmascript 磁盘清理 鸿蒙系统 深度求索 私域 知识库 kvm 远程工作 rocketmq FunASR ASR rnn redhat ios git npm Kali Linux 黑客 渗透测试 信息收集 gpu算力 web3.py SSH 密钥生成 SSH 公钥 私钥 生成 pyqt Linux24.04 deepin 硅基流动 ChatBox selenium 网络爬虫 金融 交互 EMQX MQTT 通信协议 腾讯云大模型知识引擎 大模型入门 大模型教程 报错 目标跟踪 OpenVINO 推理应用 glibc mybatis kind 产测工具框架 IMX6ULL 管理框架 搜索引擎 iperf3 带宽测试 frp 云原生开发 K8S k8s管理系统 openwrt KylinV10 麒麟操作系统 Vmware trae 执法记录仪 智能安全帽 smarteye SSH Xterminal iBMC UltraISO adobe JAVA Java 开发 gitlab springboot远程调试 java项目远程debug docker远程debug java项目远程调试 springboot远程 UEFI Legacy MBR GPT U盘安装操作系统 分析解读 雨云 NPS pdf 教程 环境搭建 Maven lio-sam SLAM 程序员 交叉编译 uv 可信计算技术 密码学 gaussdb AD域 YOLOv12 宝塔面板 源码剖析 rtsp实现步骤 流媒体开发 大模型微调 rsyslog 多进程 CLion IDE ros1 Noetic 20.04 apt 安装 服务器扩容没有扩容成功 测试用例 功能测试 asp.net大文件上传 asp.net大文件上传源码 ASP.NET断点续传 asp.net上传文件夹 asp.net上传大文件 .net core断点续传 .net mvc断点续传 webrtc opcua opcda KEPServer安装 内网渗透 靶机渗透 生活 oneapi 中间件 安全架构 网络攻击模型 安全威胁分析 小艺 Pura X excel YOLOv8 NPU Atlas800 A300I pro centos-root /dev/mapper yum clean all df -h / du -sh webstorm cmake yum docker-compose 工作流 workflow ROS2 vmware 卡死 firewalld 读写锁 ansible playbook 剧本 protobuf 序列化和反序列化 安装 Cookie CosyVoice 微信小程序 AP配网 AK配网 小程序AP配网和AK配网教程 WIFI设备配网小程序UDP开 bootstrap 自动驾驶 visualstudio nextjs reactjs 镜像下载 freebsd maxkb ARG arcgis 流式接口 腾讯云 css mariadb 工业4.0 游戏程序 国产数据库 瀚高数据库 数据迁移 下载安装 mongodb 服务器部署 本地拉取打包 pyautogui xml 微信开放平台 微信公众平台 微信公众号配置 Ubuntu20.04 GLIBC 2.35 开机自启动 微服务 Ark-TS语言 压测 ECS IPMI WSL win11 无法解析服务器的名称或地址 显示管理器 lightdm gdm 回显服务器 UDP的API使用 list AI写作 Portainer搭建 Portainer使用 Portainer使用详解 Portainer详解 Portainer portainer rabbitmq 升级 CVE-2024-7347 系统安全 cmos 代理 飞牛nas fnos Docker快速入门 EasyConnect windows日志 yum源切换 更换国内yum源 springcloud DevOps 软件交付 数据驱动 应用场景 虚拟显示器 nvidia mock mock server 模拟服务器 mock服务器 Postman内置变量 Postman随机数据 NFS 网易邮箱大师 OpenManus python2 ubuntu24.04 版本 webdav 双系统 ArcTS 登录 ArcUI GridItem IIS服务器 IIS性能 日志监控 arkUI 半虚拟化 硬件虚拟化 Hypervisor yolov5 mq xrdp Web应用服务器 ROS miniapp 真机调试 调试 debug 断点 网络API请求调试方法 micropython esp32 mqtt 进程信号 Ubuntu共享文件夹 共享目录 Linux共享文件夹 grep curl wget 热榜 FTP 服务器 环境迁移 ollama下载加速 VMware Tools vmware tools安装 vmwaretools安装步骤 vmwaretools安装失败 vmware tool安装步骤 vm tools安装步骤 vm tools安装后不能拖 vmware tools安装步骤 zabbix 服务器繁忙 r语言 数据可视化 端口号 开放端口 访问列表 Cursor gitea 系统开发 binder 车载系统 framework 源码环境 linux 命令 sed 命令 Wi-Fi 区块链 客户端 .net core springboot android studio 设置代理 实用教程 cpu 实时 使用 小游戏 五子棋 自动化任务管理 UOS 统信操作系统 W5500 OLED u8g2 TCP服务器 命令行 基础入门 ipython zip unzip 网络文件系统 网络穿透 云服务器 本地化部署 CentOS Stream CentOS asi_bench prompt alias unalias 别名 CNNs 图像分类 OD机试真题 华为OD机试真题 服务器能耗统计 蓝桥杯 桌面环境 Xinference RAGFlow 混合开发 环境安装 JDK 计算机 aws googlecloud samba html5 firefox 互信 网卡的名称修改 eth0 ens33 mysql离线安装 ubuntu22.04 mysql8.0 小智 mount挂载磁盘 wrong fs type LVM挂载磁盘 Centos7.9 DocFlow 图像处理 能力提升 面试宝典 技术 IT信息化 服务器配置 京东云 open webui tcp 常用命令 文本命令 目录命令 安防软件 ebpf uprobe flash-attention 银河麒麟服务器操作系统 系统激活 HistoryServer Spark YARN jobhistory Open WebUI chrome 浏览器下载 chrome 下载安装 谷歌浏览器下载 软件卸载 系统清理 AISphereButler 监控k8s 监控kubernetes 服务器无法访问 ip地址无法访问 无法访问宝塔面板 宝塔面板打不开 大数据平台 rclone AList fnOS RoboVLM 通用机器人策略 VLA设计哲学 vlm fot robot 视觉语言动作模型 具身智能 联网 easyconnect nfs Mac软件 Ubuntu DeepSeek DeepSeek Ubuntu DeepSeek 本地部署 DeepSeek 知识库 DeepSeek 私有化知识库 本地部署 DeepSeek DeepSeek 私有化部署 WLAN rancher windwos防火墙 defender防火墙 win防火墙白名单 防火墙白名单效果 防火墙只允许指定应用上网 防火墙允许指定上网其它禁止 向日葵 openEuler 飞牛NAS 飞牛OS MacBook Pro harmonyOS面试题 数据集 云桌面 微软 AD域控 证书服务器 邮件APP 免费软件 宝塔面板无法访问 TrueLicense 大模型面经 大模型学习 Trae AI 原生集成开发环境 Trae AI 软件工程 软件构建 safari 命令 rime rustdesk WebVM visual studio scapy WebRTC ux IPMITOOL BMC 硬件管理 3GPP 卫星通信 网络药理学 生信 gromacs 分子动力学模拟 MD 动力学模拟 代码调试 ipdb 无人机 网络编程 聊天服务器 套接字 Socket 进程程序替换 execl函数 execv函数 execvp函数 execvpe函数 putenv函数 智能音箱 智能家居 雨云服务器 MQTT协议 消息服务器 代码 视觉检测 token sas openssl VMware创建虚拟机 EtherNet/IP串口网关 EIP转RS485 EIP转Modbus EtherNet/IP网关协议 EIP转RS485网关 EIP串口服务器 模拟实现 docker run 数据卷挂载 交互模式 asp.net大文件上传下载 自动化编程 iis saltstack 服务器数据恢复 数据恢复 存储数据恢复 raid5数据恢复 磁盘阵列数据恢复 etl 高效远程协作 TrustViewer体验 跨设备操作便利 智能远程控制 银河麒麟操作系统 国产化 hibernate scikit-learn 远程服务 sqlite3 远程过程调用 Windows环境 机柜 1U 2U threejs 3D Apache Beam 批流统一 案例展示 数据分区 容错机制 linux环境变量 C语言 网页服务器 web服务器 Nginx swoole 三级等保 服务器审计日志备份 阿里云ECS ldap laravel 同步 备份 建站 HarmonyOS Tabs组件 TabContent TabBar TabsController 导航页签栏 滚动导航栏 Attention NLP FTP服务器 免密 公钥 私钥 risc-v eNSP 网络规划 VLAN 企业网络 wireshark 显示过滤器 ICMP Wireshark安装 Kali 渗透 ukui 麒麟kylinos openeuler copilot Linux Vim unity3d React Next.js 开源框架 联想开天P90Z装win10 searxng minio VPS ajax 内网服务器 内网代理 内网通信 单例模式 RAGFLOW RAG 检索增强生成 文档解析 大模型垂直应用 小番茄C盘清理 便捷易用C盘清理工具 小番茄C盘清理的优势尽显何处? 教你深度体验小番茄C盘清理 C盘变红?!不知所措? C盘瘦身后电脑会发生什么变化? 沙盒 抗锯齿 Linux权限 权限命令 特殊权限 网工 拓扑图 trea idea dash 正则表达式 模拟器 飞书 高德地图 鸿蒙接入高德地图 HarmonyOS5.0 ruby 阻塞队列 生产者消费者模型 服务器崩坏原因 恒源云 cfssl 一切皆文件 linux上传下载 openjdk DOIT 四博智联 zerotier 数据库架构 数据管理 数据治理 数据编织 数据虚拟化 TRAE 信号处理 iphone Playwright 自动化测试 idm 隐藏文件 隐藏目录 管理器 通配符 linux安装配置 wpf 移动云 技能大赛 ollama api ollama外网访问 信号 键盘 IO c/c++ 串口 SSL 域名 相差8小时 UTC 时间 日志分析 系统取证 ceph netty 远程 执行 sshpass 操作 AI代码编辑器 lb 协议 wps 框架搭建 dock 镜像 加速 换源 国内源 Debian fpga开发 智慧农业 开源鸿蒙 团队开发 wordpress 无法访问wordpess后台 打开网站页面错乱 linux宝塔面板 wordpress更换服务器 code-server 状态管理的 UDP 服务器 Arduino RTOS 跨平台 Linux awk awk函数 awk结构 awk内置变量 awk参数 awk脚本 awk详解 智能电视 7z Radius 其他 显卡驱动 单元测试 DBeaver 数据仓库 kerberos h.264 容器技术 黑客技术 conda配置 conda镜像源 序列化反序列化 jina api pyicu 技术共享 seleium chromedriver open Euler dde sdkman RTMP 应用层 MAC SecureCRT 计算机科学与技术 elk css3 稳定性 看门狗 录音麦克风权限判断检测 录音功能 录音文件mp3播放 小程序实现录音及播放功能 RecorderManager 解决录音报错播放没声音问题 备份SQL Server数据库 数据库备份 傲梅企业备份网络版 大版本升 升级Ubuntu系统 Isaac Sim 虚拟仿真 es6 qt6.3 g726 游戏服务器 Minecraft IMM string模拟实现 深拷贝 浅拷贝 经典的string类问题 三个swap TrinityCore 魔兽世界 Ardupilot vpn HP Anyware sublime text3 软链接 硬链接 孤岛惊魂4 pppoe radius deepseek-r1 大模型本地部署 Office Dell HPE 联想 浪潮 iDRAC R720xd ECT转485串口服务器 ECT转Modbus485协议 ECT转Modbus串口服务器 聊天室 NLP模型 自学笔记 小米 澎湃OS Android Mac内存不够用怎么办 宝塔 软负载 ELF加载 iventoy VmWare OpenEuler yolov8 消息队列 思科模拟器 Cisco Node-Red 编程工具 流编程 单一职责原则 新盘添加 partedUtil muduo X11 Xming 群晖 飞牛 安装MySQL 视频平台 录像 视频转发 性能测试 视频流 图片增强 增强数据 无桌面 宠物 毕业设计 免费学习 宠物领养 宠物平台 VPN wireguard 蓝桥杯C++组 博客 强制清理 强制删除 mac废纸篓 华为证书 HarmonyOS认证 华为证书考试 clickhouse 自定义客户端 SAS jetty undertow grub 版本升级 扩容 冯诺依曼体系 langchain fork wait waitpid exit ShenTong su sudo 负载测试 ftp web 语音识别 音乐服务器 Navidrome 音流 bot Docker 弹性计算 裸金属服务器 弹性裸金属服务器 工具 空间 查错 sonoma 自动更新 ssrf 失效的访问控制 Netty 即时通信 NIO DeepSeek r1 neo4j 数据库开发 vmamba SWAT 配置文件 服务管理 网络共享 cd 目录切换 vscode1.86 1.86版本 ssh远程连接 重启 排查 系统重启 日志 原因 llama.cpp LLM Web APP Streamlit 毕昇JDK 实时内核 Web服务器 多线程下载工具 PYTHON keepalived kotlin XFS xfs文件系统损坏 I_O error es csrutil mac恢复模式进入方法 SIP 恢复模式 x64 SIGSEGV SSE xmm0 SSL证书 软件 nuxt3 chrome devtools 显示器 eclipse sudo原理 su切换 qt5 客户端开发 办公自动化 pdf教程 qt项目 qt项目实战 qt教程 xpath定位元素 业界资讯 模拟退火算法 file server http server web server 田俊楠 国标28181 视频监控 监控接入 语音广播 流程 SDP mosquitto 算力 授时服务 北斗授时 服务器管理 配置教程 网站管理 知识图谱 高效I/O odoo 服务器动作 Server action sqlite deep learning python3.11 pyside6 界面 umeditor粘贴word ueditor粘贴word ueditor复制word ueditor上传word图片 ueditor导入word ueditor导入pdf ueditor导入ppt 多产物 NVML nvidia-smi 我的世界 我的世界联机 数码 银河麒麟高级服务器 外接硬盘 Kylin UOS1070e 管道 代码托管服务 docker部署翻译组件 docker部署deepl docker搭建deepl java对接deepl 翻译组件使用 社交电子 电路仿真 multisim 硬件工程师 硬件工程师学习 电路图 电路分析 仪器仪表 ShapeFile GeoJSON termux OpenHarmony v10 AD 域管理 Carla 智能驾驶 Java Applet URL操作 服务器建立 Socket编程 网络文件读取 相机 直流充电桩 充电桩 k8s部署 MySQL8.0 高可用集群(1主2从) chfs ubuntu 16.04 ecm bpm ISO镜像作为本地源 小智AI服务端 xiaozhi TTS 图形渲染 LVM lvresize 磁盘扩容 pvcreate 推荐算法 minicom 串口调试工具 fd 文件描述符 蓝耘科技 元生代平台工作流 ComfyUI MNN Qwen 火绒安全 cnn DenseNet Nuxt.js qemu libvirt nacos 深度优先 图论 并集查找 换根法 树上倍增 考试 dns 备选 网站 调用 示例 致远OA OA服务器 服务器磁盘扩容 Ubuntu 22.04 MySql 算家云 算力租赁 源码 上传视频至服务器代码 vue3批量上传多个视频并预览 如何实现将本地视频上传到网页 element plu视频上传 ant design vue vue3本地上传视频及预览移除 webgl diskgenius ArkUI ArkTS 移动端开发 考研 NAT转发 NAT Server 在线office 玩游戏 昇腾 大模型训练/推理 推理问题 mindie apt docker命令大全 MobaXterm 文件传输 virtualbox tensorflow CDN 鲲鹏 玩机技巧 软件分享 软件图标 k8s集群资源管理 env 变量 XCC Lenovo 繁忙 解决办法 替代网站 汇总推荐 AI推理 beautifulsoup 蓝牙 Helm k8s集群 IIS Hosting Bundle .NET Framework vs2022 lsb_release /etc/issue /proc/version uname -r 查看ubuntu版本 wsgiref Web 服务器网关接口 macbook Windows ai工具 java-rocketmq Jellyfin 实习 LORA Linux的基础指令 Linux无人智慧超市 LInux多线程服务器 QT项目 LInux项目 单片机项目 AnythingLLM AnythingLLM安装 大屏端 浏览器自动化 shell脚本免交互 expect linux免交互 ufw 强化学习 Xshell llamafactory 微调 流水线 脚本式流水线 华为OD 可以组成网络的服务器 DeepSeek行业应用 Heroku 网站部署 big data cpp-httplib 增强现实 沉浸式体验 技术实现 案例分析 AR opensearch helm 服务器主板 AI芯片 GoogLeNet 云电竞 云电脑 todesk MI300x c 游戏机 npu deepseek r1 stable diffusion AI作画 金仓数据库 2025 征文 数据库平替用金仓 PX4 make命令 makefile文件 LInux USB网络共享 sysctl.conf vm.nr_hugepages ssh远程登录 vu大文件秒传跨域报错cors 虚幻引擎 云服务 dba 浏览器开发 AI浏览器 在线预览 xlsx xls文件 在浏览器直接打开解析xls表格 前端实现vue3打开excel 文件地址url或接口文档流二进 uniapp H3C 支付 微信支付 开放平台 nohup 异步执行 文件分享 proxy模式 烟花代码 烟花 元旦 本地知识库部署 DeepSeek R1 模型 navicat HAProxy NVM Node Yarn PM2 zookeeper 打不开xxx软件 无法检查其是否包含恶意软件 搭建个人相关服务器 服务器部署ai模型 Anolis nginx安装 linux插件下载 cocoapods Python基础 Python教程 Python技巧 arkTs Kylin OS less YashanDB 崖山数据库 yashandb Claude autoware 基础环境 我的世界服务器搭建 minecraft docker desktop PPI String Cytoscape CytoHubba DIFY 内网环境 Docker Compose gunicorn tailscale derp derper 中转 triton 模型分析 postgres Dify重启后重新初始化 反向代理 充电桩平台 充电桩开源平台 影刀 can 线程池 iTerm2 宕机切换 服务器宕机 deekseek nac 802.1 portal vue-i18n 国际化多语言 vue2中英文切换详细教程 如何动态加载i18n语言包 把语言json放到服务器调用 前端调用api获取语言配置文件 java-zookeeper 健康医疗 互联网医院 GRUB引导 Linux技巧 Unity Dedicated Server Host Client 无头主机 软件开发 信任链 锁屏不生效 ubuntu安装 linux入门小白 powerbi db 嵌入式Linux IPC 论文阅读 EMUI 回退 降级 Headless Linux ftp服务 文件上传 Obsidian Dataview 信创 信创终端 中科方德 代理服务器 多端开发 智慧分发 应用生态 鸿蒙OS 开源软件 sentinel yaml Ultralytics 可视化 midjourney OpenSSH SVN Server tortoise svn linuxdeployqt 打包部署程序 appimagetool mysql安装报错 windows拒绝安装 佛山戴尔服务器维修 佛山三水服务器维修 retry 重试机制 glm4 物联网开发 IPv4 子网掩码 公网IP 私有IP 加解密 Yakit yaklang Ubuntu Server Ubuntu 22.04.5 wsl2 干货分享 黑客工具 密码爆破 crosstool-ng 线性代数 电商平台 massa sui aptos sei SysBench 基准测试 composer 底层实现 带外管理 k8s二次开发 集群管理 Typore 做raid 装系统 对比 meld DiffMerge VM搭建win2012 win2012应急响应靶机搭建 攻击者获取服务器权限 上传wakaung病毒 应急响应并溯源 挖矿病毒处置 应急响应综合性靶场 查看显卡进程 fuser ArtTS IO模型 达梦 DM8 Erlang OTP gen_server 热代码交换 事务语义 联机 僵尸毁灭工程 游戏联机 开服 ArkTs MacOS 笔灵AI AI工具 System V共享内存 进程通信 localhost initramfs Linux内核 Grub Linux环境 僵尸世界大战 游戏服务器搭建 边缘计算 ubuntu24.04.1 fast 端口 查看 ss Claude Desktop Claude MCP Windows Cli MCP deployment daemonset statefulset cronjob uni-file-picker 拍摄从相册选择 uni.uploadFile H5上传图片 微信小程序上传图片 AI Agent 字节智能运维 内存管理 金仓数据库概述 金仓数据库的产品优化提案 word 计算虚拟化 弹性裸金属 动静态库 Qwen2.5-VL vllm 显卡驱动持久化 GPU持久化 华为机试 mm-wiki搭建 linux搭建mm-wiki mm-wiki搭建与使用 mm-wiki使用 mm-wiki详解 多个客户端访问 IO多路复用 TCP相关API 网站搭建 serv00 VR手套 数据手套 动捕手套 动捕数据手套 IMX317 MIPI H265 VCU nosql GIS 遥感 WebGIS 游戏开发 hexo WireGuard 异地组网 easyui 运维监控 hosts MAVROS 四旋翼无人机 rpa IPv6 IPv6测试 IPv6测速 IPv6检测 IPv6查询 分子对接 autodock mgltools PDB PubChem resolv.conf MVS 海康威视相机 7-zip 磁盘镜像 服务器镜像 服务器实时复制 实时文件备份 banner 输入法 av1 电视盒子 机顶盒ROM 魔百盒刷机 win服务器架设 windows server hugo xshell termius iterm2 语法 HTTP 服务器控制 ESP32 DeepSeek xss 抓包工具 PyQt PySide6 nohup后台启动 服务网格 istio 内核 HarmonyOS NEXT 原生鸿蒙 pgpool 极限编程 合成模型 扩散模型 图像生成 bat Ubuntu 24.04.1 轻量级服务器 终端 状态模式 VSCode 智能合约 哈希算法 kubeless 本地部署AI大模型 Spring Security docker部署Python 鸿蒙开发 移动开发 Reactor反应堆 VS Code WINCC iNode Macos SSH 服务 SSH Server OpenSSH Server 存储维护 NetApp存储 EMC存储 sequoiaDB 企业网络规划 华为eNSP prometheus数据采集 prometheus数据模型 prometheus特点 lighttpd安装 Ubuntu配置 Windows安装 服务器优化 xfce perl deepseak 豆包 KIMI 腾讯元宝 网络原理 regedit 开机启动 chromium dpi servlet whistle ranger MySQL8.0 dns是什么 如何设置电脑dns dns应该如何设置 北亚数据恢复 oracle数据恢复 embedding ubuntu24 vivado24 免费域名 域名解析 弹性服务器 设备树 AI agent 怎么卸载MySQL MySQL怎么卸载干净 MySQL卸载重新安装教程 MySQL5.7卸载 Linux卸载MySQL8.0 如何卸载MySQL教程 MySQL卸载与安装 端口测试 MDK 嵌入式开发工具 论文笔记 mcp服务器 client close rtc Ubuntu 24 常用命令 Ubuntu 24 Ubuntu vi 异常处理 #影刀RPA# fiddler IP配置 netplan 分布式账本 web3 共识算法 VGG网络 卷积层 池化层 移动魔百盒 全文检索 图搜索算法 终端工具 远程工具 vscode 1.86 网络建设与运维 网络搭建 神州数码 神州数码云平台 云平台 EVE-NG 配置原理 SEO 大大通 第三代半导体 碳化硅 URL 项目部署到linux服务器 项目部署过程 超融合 安全漏洞 信息安全 figma 历史版本 下载 Pyppeteer 银河麒麟桌面操作系统 智能体开发 电脑桌面出现linux图标 电脑桌面linux图标删除不了 电脑桌面Liunx图标删不掉 linux图标删不掉 firewall 电视剧收视率分析与可视化平台 Zoertier 内网组网 动态规划 ping++ 问题解决 CUPS 打印机 Qt5 用户缓冲区 tidb 根服务器 性能调优 安全代理 商用密码产品体系 进程间通信 junit g++ g++13 架构与原理 规格说明书 设计规范 需求分析 TCP协议 GPU训练 多路转接 材料工程 输入系统 IDEA lua Logstash 日志采集 NFC 近场通讯 智能门锁 免费 源代码管理 项目部署 Linux find grep 数字证书 签署证书 GRE c/s 桌面快捷方式 webview 元服务 应用上架 AimRT 跨域请求 流量运营 C++软件实战问题排查经验分享 0xfeeefeee 0xcdcdcdcd 动态库加载失败 程序启动失败 程序运行权限 标准用户权限与管理员权限 卸载 列表 端口聚合 windows11 欧标 OCPP 服务器正确解析请求体 Bug解决 Qt platform OpenCV 音乐库 子系统 autodl AI员工 券商 股票交易接口api 类型 特点 股票量化接口 股票API接口 风扇控制软件 image Alist mount 挂载 网盘 接口优化 可用性测试 element-ui 上传视频并预览视频 vue上传本地视频及进度条功能 vue2选择视频上传到服务器 upload上传视频组件插件 批量上传视频 限制单个上传视频 Webserver 异步 区块链项目 钉钉 Echarts图表 折线图 柱状图 异步动态数据 可视化效果 AzureDataStudio js 行情服务器 股票交易 速度慢 切换 飞腾处理器 分布式训练 源代码 李心怡 ABAP post.io 企业邮箱 搭建邮箱 react native 海康 捆绑 链接 谷歌浏览器 youtube google gmail 服务器时间 Qwen3 qwen3 32b rsync SystemV GeneCards OMIM TTD 脚本 Sealos 程序化交易 量化交易 高频交易 Python 视频爬取教程 Python 视频爬取 Python 视频教程 flink skynet archlinux kde plasma ardunio BLE 服务器ssl异常解决 大模型推理 智能体 autogen openai coze 支持向量机 IPv4/IPv6双栈 双栈技术 网路规划设计 ensp综合实验 IPv4过渡IPv6 IPv4与IPv6 文件存储服务器组件 查询数据库服务IP地址 SQL Server 粘包问题 物理地址 页表 虚拟地址 用户管理 node 搜狗输入法 中文输入法 Charles 框架 pthread paddle NVIDIA 软考设计师 中级设计师 SQL 软件设计师 Putty 花生壳 星河版 RK3568 caddy qwen2vl comfyui comfyui教程 RDP Unity插件 Trae叒更新了? 解决方案 hdc 机械臂 mybase solidworks安装 三次握手 systemctl 静态IP 华为鸿蒙系统 ArkTS语言 Component 生命周期 条件渲染 Image图片组件 linux子系统 忘记密码 零售 yum换源 docker search UDP solr 图文教程 VMware虚拟机 macOS系统安装教程 macOS最新版 虚拟机安装macOS Sequoia 西门子PLC 通讯 mac设置host logstash 计算机学习路线 编程语言选择 brew 华为昇腾910b3 UFW watchtower MinIO chatbox #STC8 #STM32 vCenter服务器 ESXi主机 监控与管理 故障排除 日志记录 mvc Linux的基础开发工具 client-go 鸿蒙NEXT 命令模式 lrzsz macOS 向量数据库 安装部署 milvus安装 authing easyTier 组网 计算机系统 Qt QModbus 机架式服务器 1U工控机 国产工控机 裸机装机 linux磁盘分区 裸机安装linux 裸机安装ubuntu 裸机安装kali 裸机 可执行程序 pythonai PlaywrightMCP 火山引擎 Masshunter 质谱采集分析软件 使用教程 科研软件 CAD瓦片化 栅格瓦片 矢量瓦片 Web可视化 DWG解析 金字塔模型 webpack 线程同步 线程互斥 条件变量 AWS pycharm安装 homeassistant vsxsrv android-studio 数据采集 Crawlee 知行EDI 电子数据交换 知行之桥 EDI 创业创新 Kubernetes gru d3d12 VM虚拟机 shard