从第三方存储库中 apt-get 安装包

从第三方存储库中 apt-get 安装包

如何使用apt-get第三方存储库安装特定包?

我将 NodeSource Node.js 存储库添加到我的/etc/apt/sources.list.d

# /etc/apt/sources.list.d/nodesource.list
deb https://deb.nodesource.com/node_9.x buster main
deb-src https://deb.nodesource.com/node_9.x buster main

我更新了 apt 并可以使用以下命令查看包apt-cache policy nodejs

nodejs:
  Installed: (none)
  Candidate: 8.9.3~dfsg-12
  Version table:
     9.11.1-1nodesource1 500
        500 https://deb.nodesource.com/node_9.x buster/main amd64 Packages
     8.11.1~dfsg-2 500
        500 http://ftp.us.debian.org/debian unstable/main amd64 Packages
     8.9.3~dfsg-12 990
        990 http://ftp.us.debian.org/debian testing/main amd64 Packages

我如何指示apt-get我要安装该软件包节点源

我试过了:

sudo apt-get install -t nodesource nodejs
sudo apt-get install -t node_9.x nodejs
sudo apt-get install -t buster/main nodejs
sudo apt-get install -t deb.nodesource.com nodejs
sudo apt-get install -t deb.nodesource.com/node_9.x

但所有这些都失败并出现相同的错误(对于相应的版本):

E: The value 'deb.nodesource.com/node_9.x' is invalid for APT::Default-Release as such a release is not available in the sources

答案1

看来来自nodesource的版本比较新,所以apt install nodejs应该给你你想要的。

您还可以指定您想要带有 的特定版本apt install nodejs=<version>。这只会影响该特定命令将安装的内容,不会被记住,因此下次运行时apt update; apt upgrade,它将尝试以通常的方式升级软件包(这可能是您想要的)。

您还可以阅读有关 apt pinning 的内容,并为该存储库赋予更高的优先级,然后您可以使 apt 在未来更喜欢那里的软件包。风险是,如果他们突然出现与nodejs无关的东西,你也会得到这个,你可以尝试通过仅固定nodejs来避免这种情况,但如果有一天他们拆分了包,你就会遇到麻烦。但没有任何解决方案可以预测您未来的愿望并遵守它们。

相关内容