在 Debiansid
上,为了安装 Web 服务,我运行了一个脚本,其中添加了 NodeJS 存储库并安装了nodejs
包。问题已apt
解决为 Debian 的 package version ,由于某种原因8.11.2~dfsg-1
不包括在内,而不是 NodeJS repo 的 version 。在安装.npm
8.11.2-1nodesource1
npm
nodejs
我通过手动解决它apt install nodejs=8.11.2-1nodesource1
,但这是一个临时的解决方法。有没有一种方法可以在我的脚本上指定更喜欢特定的存储库,而不管版本如何?
编辑
# apt policy nodejs
nodejs:
Installed: 8.11.2-1nodesource1
Candidate: 8.11.2-1nodesource1
Version table:
*** 8.11.2-1nodesource1 500
500 https://deb.nodesource.com/node_8.x sid/main arm64 Packages
100 /var/lib/dpkg/status
8.11.2~dfsg-1 990
990 http://deb.debian.org/debian unstable/main arm64 Packages
您应该使用
origin
为“外部源”分配高优先级的选项来固定外部源,而不是使用release
名称。例如,g:将以下行添加到您的
/etc/apt/preferences.d/preferences
:将
apt-cache policy nodejs
是:该软件包
nodejs
将从通过nodsource.com
安装apt install nodejs
通常,如果您添加 nodejs 源(使用安装脚本),
nodejs
则将安装包,nodesource.com
而无需添加完整的包名apt
或使用固定方式。(这可能是一个问题,您可以在此处报告)。如果软件包可从多个存储库(debian 存储库和外部存储库)获得,您可以使用 debian 发布标签从debian 存储库安装软件包。假设
nodejs
已固定到1001
并且您需要从 debian Sid 安装软件包:AptPreferenecs
编辑
该软件包
nodejs
被固定到 990 ,它将从 debian 存储库安装。从文件中删除 nodejspreferences
然后运行:包 nodejs 应该从 nodesource 存储库安装。