ubuntu22 安装node16报错

情况

用的阿里云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.dnodesource.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

就意外装好了。

posted @ 2023-01-16 13:14  Xlucidator  阅读(545)  评论(0编辑  收藏  举报