情况
用的阿里云ECS,本地apt安装只能到12,所以采取网上说法
curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt-get install -y nodejs
然后遇到报错
Unpacking nodejs (16.19.0-deb-1nodesource1) ...
dpkg: error processing archive /var/cache/apt/archives/nodejs_16.19.0-deb-1nodesource1_amd64.deb (--unpack):
trying to overwrite '/usr/include/node/common.gypi', which is also in package libnode-dev 12.22.9~dfsg-1ubuntu3
dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)
操作记录
先找到这篇,按照步骤尝试发现无效;
然后找到另外一篇,应该就是用--force-overwrite
强制那个nodejs_16.19.0-deb-1nodesource1_amd64.deb
包覆写,但又看了看好像说操作挺暴力,自己这儿一直是root权限就先没试。
再按照第一篇的,先删了/etc/apt/sources.list.d
的nodesource.list
,然后sudo apt --fix-broken install
修复了一下install;就直接apt install nodejs
了,结果直接装回了node12。
估摸就是curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
这句添加了nodesource.list
,然后又和本地什么包有冲突。
想了想反正就是node12的包没删干净(apt这种包管理原理还没搞清楚),就重新尝试删除。这回是apt purge nodejs
+ apt autoremove
(网上关于删除命令有很多讲究和介绍,没看太懂,之前没用apt autoremove
),这回看命令行输出感觉删了很多东西。然后再重复之前的安装操作(不过参数加了-fs
,也不懂啥意思和之前有什么区别)
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt-get install -y nodejs
就意外装好了。
标签:sudo,nodejs,node16,apt,报错,install,nodesource,ubuntu22,deb From: https://www.cnblogs.com/elucidator-xrb/p/17055189.html