deepin-superuser
deepin
2022-01-01 17:13 我都是直接添加的
#添加nodejs源到source.list.d
wget -q -O - https://deb.nodesource.com/gpgkey/nodesource.gpg.key | sudo apt-key add -
sudo sh -c 'echo "deb https://deb.nodesource.com/node_16.x buster main" > /etc/apt/sources.list.d/nodesource.list'
Reply Like 0 View the author


中文 
啊这。。。

那以后就可以提个PR给nodesource把distro alias加上了
拿16.x举例
https://github.com/nodesource/distributions/blob/e37049cd09f0b52831b67164daada01fd7df46b7/deb/setup_16.x#L283
这里是检查当前发行版可以使用的源,deepin stable对应的是buster,这个理论上来说应该是没有的。但是20.3版本如果直接使用的话会报错,类似这样的:
原因是获取发行版时用的是
lsb_release -c -s,而这个获取到的是codename,20.3这个返回就是n/a这个有点奇怪,因为我看到的
/etc/lsb-release里面的codename是apricot,同时lsb_release -a会有No LSB modules are available的问题,网上搜索到的方法是安装lsb-core但是deepin里面并没有,不知道是不是这个原因不能获取到正确的codename。仔细看了一下历史记录,这个估计是从之前版本的脚本copy过来的,所以应该需要首先把这个输出修正为正确的codename,然后给那个库提pr,把正确的codename更新上去。
所以目前的workaround就是找到上面的
DISTRO=$(lsb_release -c -s)然后注释掉,换成DISTRO="stable"再次运行,原来错误的地方就会变成类似这样的输出:然后就可以正常安装了