如何使用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来避免这种情况,但如果有一天他们拆分了包,你就会遇到麻烦。但没有任何解决方案可以预测您未来的愿望并遵守它们。