UbuntuでNodejsをアップグレードする:壊れたパイプエラーを修正する方法は?

UbuntuでNodejsをアップグレードする:壊れたパイプエラーを修正する方法は?

Ubuntu 20.10でnodejsをアップグレードしてみてください。

公式のインストール手順を実行してください。

curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt-get install -y nodejs

次のエラーが発生します。

The following packages will be upgraded:
  nodejs
1 upgraded, 0 newly installed, 0 to remove and 5 not upgraded.
1 not fully installed or removed.
Need to get 0 B/24.5 MB of archives.
After this operation, 119 MB of additional disk space will be used.
(Reading database ... 277425 files and directories currently installed.)
Preparing to unpack .../nodejs_14.15.4-deb-1nodesource1_amd64.deb ...
Unpacking nodejs (14.15.4-deb-1nodesource1) over (12.18.2~dfsg-1ubuntu2) ...
dpkg: error processing archive /var/cache/apt/archives/nodejs_14.15.4-deb-1nodesource1_amd64.deb (--unpack):
 trying to overwrite '/usr/share/doc/nodejs/api/dgram.json.gz', which is also in package nodejs-doc 12.18.2~dfsg-1ubuntu2
dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)
Errors were encountered while processing:
 /var/cache/apt/archives/nodejs_14.15.4-deb-1nodesource1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

nodejs-docを削除するか(依存関係の競合)、次の実行を提案する他のStackOverflowの回答を見ました。

sudo dpkg -i --force-overwrite /usr/share/doc/nodejs/api/dgram.json.gz

どちらもうまくいかないようです。上記のコマンドの場合、ファイルはdebパッケージでなければならないというメッセージが表示されます。とにかく、私はこの戦略が設定を台無しにする可能性があるため、少し懐疑的です。

nodejs-docを削除しようとすると、次の結果が表示されます。

You might want to run 'apt --fix-broken install' to correct these.
The following packages have unmet dependencies:
 nodejs : Depends: libnode72 (= 12.18.2~dfsg-1ubuntu2) but it is not going to be installed
          Recommends: nodejs-doc but it is not going to be installed

おすすめランニングも試してみましたがapt --fix-broken install役に立たないようです。

答え1

これらすべてが私には効果がありません。

うまくいくのは次のとおりです。

sudo dpkg --remove --force-remove-reinstreq libnode-dev
sudo dpkg --remove --force-remove-reinstreq libnode72:amd64

渡す

答え2

universe依存関係が欠落しているストレージの提供を有効にする必要があります。libnode72 (= 12.18.2~dfsg-1ubuntu2)そしてnodejs-doc (12.18.2~dfsg-1ubuntu2)Ubuntu 20.10で:

sudo add-apt-repository universe
sudo apt install libnode72 nodejs-doc

dpkg -i --force-overwrite次のファイルを指す必要があります.deb

sudo dpkg -i --force-overwrite  /var/cache/apt/archives/nodejs_14.15.4-deb-1nodesource1_amd64.deb

答え3

nodejs-docを削除します。

sudo apt remove nodejs-doc

答え4

次のコマンドを実行します。

sudo apt remove nodejs  
sudo apt remove nodejs-doc
sudo dpkg --remove --force-remove-reinstreq libnode-dev
sudo dpkg --remove --force-remove-reinstreq libnode72:amd64
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - && sudo apt-get install -y nodejs

関連情報