一些Ubuntu命令的澄清

一些Ubuntu命令的澄清

所以只是想知道当我运行这些命令时会发生什么(特别是在 Ubuntu 上):

# Add NVIDIA package repositories
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-repo-ubuntu1804_10.1.243-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu1804_10.1.243-1_amd64.deb
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
sudo apt-get update
wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb
sudo apt install ./nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb
sudo apt-get update

# Install NVIDIA driver
sudo apt-get install --no-install-recommends nvidia-driver-418
# Reboot. Check that GPUs are visible using the command: nvidia-smi

# Install development and runtime libraries (~4GB)
sudo apt-get install --no-install-recommends \
    cuda-10-1 \
    libcudnn7=7.6.4.38-1+cuda10.1  \
    libcudnn7-dev=7.6.4.38-1+cuda10.1

这些是为 Ubuntu 安装 CUDA 的说明,所以我对它们的作用有基本的了解,但命令对我来说不清楚(除了wget)。什么是dpkg,什么是apt-key adv --fetch-keys,为什么我们不从第二个存储库添加密钥,而只从第一个存储库添加密钥,为什么我们要运行sudo dpkg -i第一个.deb文件和sudo apt install第二个文件?

这是一个一般性问题,与 CUDA 没有具体联系,我只是想了解更多有关 Linux 的信息。

谢谢!

答案1

此命令下载包含 CUDA 存储库信息的 .deb 包

获取https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-repo-ubuntu1804_10.1.243-1_amd64.deb

dpkg是 Debian 的包管理器。选项 -i 将安装以前下载的软件包

sudo dpkg -i cuda-repo-ubuntu1804_10.1.243-1_amd64.deb

apt-key是 APT 密钥管理实用程序。adv命令将高级选项传递给 gpg。

sudo apt-key adv --fetch-keyshttps://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub

为什么我们对第一个 .deb 文件运行 sudo dpkg -i 而对第二个文件运行 sudo apt install ?

apt是 dpkg 的前端。它可以解决依赖关系,下载并安装所需的包。可能第一个 .deb 文件没有依赖项,而第二个文件有。

为什么我们不添加第二个存储库中的密钥,而只添加第一个存储库中的密钥

因为他们有相同的公钥

答案2

为什么我们不添加第二个存储库中的密钥,而只添加第一个存储库中的密钥

因为他们有相同的公钥。

curl http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/7fa2af80.pub
curl https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub

为什么我们对第一个 .deb 文件运行 sudo dpkg -i 而对第二个文件运行 sudo apt install ?

在这种情况下 dpkg并且apt将仅设置一个存储库,apt与 具有相同的效果dpkg,因为存储库设置不需要安装其他依赖项。

请注意,它apt能够解决依赖关系,但dpkg不能解决。

相关内容