有什么方法可以阻止 apt-get upgrade 将 npm 降级到版本 2?

有什么方法可以阻止 apt-get upgrade 将 npm 降级到版本 2?

我使用 node 的官方 PPA 在 Ubuntu 14.04 上安装了 nodejs 4,如这里所述。似乎 npm v2 是默认的,所以我使用 npm 本身将 npm 升级到 v3(npm update --global)。我正在部署的软件需要版本 3。

一切都很好,直到我使用apt-get update/运行常规安全更新等,upgrade并且 npm 持续降级到 v2。

有什么方法可以防止 npm 全局包(特别是 npm 本身)被 apt-get 更改?

一些有用的配置文件:

# /etc/apt/sources.list
deb http://mirrors.digitalocean.com/ubuntu trusty main restricted
deb-src http://mirrors.digitalocean.com/ubuntu trusty main restricted
deb http://mirrors.digitalocean.com/ubuntu trusty-updates main restricted
deb-src http://mirrors.digitalocean.com/ubuntu trusty-updates main restricted
deb http://mirrors.digitalocean.com/ubuntu trusty universe
deb-src http://mirrors.digitalocean.com/ubuntu trusty universe
deb http://mirrors.digitalocean.com/ubuntu trusty-updates universe
deb-src http://mirrors.digitalocean.com/ubuntu trusty-updates universe
deb http://mirrors.digitalocean.com/ubuntu trusty multiverse
deb-src http://mirrors.digitalocean.com/ubuntu trusty multiverse
deb http://mirrors.digitalocean.com/ubuntu trusty-updates multiverse
deb-src http://mirrors.digitalocean.com/ubuntu trusty-updates multiverse
deb http://mirrors.digitalocean.com/ubuntu trusty-backports main restricted universe multiverse
deb-src http://mirrors.digitalocean.com/ubuntu trusty-backports main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu trusty-security main
deb-src http://security.ubuntu.com/ubuntu trusty-security main
deb http://security.ubuntu.com/ubuntu trusty-security universe
deb-src http://security.ubuntu.com/ubuntu trusty-security universe

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

答案1

经过一番搜索,我发现了这个github 线程这似乎表明您需要进行一些固定。我建议您尝试/etc/apt/preferences.d/nodejs按照该问题中的建议添加创建包含以下内容的文件。

Package: *
Pin: origin deb.nodesource.com
Pin-Priority: 1001

您可以apt-cache policy nodejs在配置固定之前和之后使用该命令来验证它是否改变了优先级。

相关内容