我使用 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
在配置固定之前和之后使用该命令来验证它是否改变了优先级。