After a full upgrade of system, every time I tried to run node or a node-based module, I got this error:
node: error while loading shared libraries: libcrypto.so.1.0.0: cannot open shared object file: No such file or directory
This error is related to openssl which the last version of it is 1.1.0.e-1 but node use version 1.0. I tried to use symlinks and solution around it, but they didn't solve the problem.
Is there any solution or any coming update to solve this?
Have you searched the arch forums? For example, have you seen this thread about the same issue?
That's topic doesn't suggest any instruction for solving the problem. It just says don't do partial update (and generally I always avoid that). For temporary solution, I installed openssl-1.0 to be able to run node.
@meysampg This is a downstream (i.e. Arch Linux) issue. The Node.js package is Arch is packaged by Arch Linux maintainers, so the issue should be reported there.
OpenSSL packages in Arch:
testing/openssl-1.0 1.0.2.k-4
core/openssl 1.1.0.e-1
extra/openssl-1.0 1.0.2.k-3
Note that there are two separate OpenSSL packages: openssl and openssl-1.0.
In Arch, nodejs requires openssl-1.0 package which you should have installed for it to run.
Node.js packages in Arch:
community/nodejs 7.10.0-1
It properly lists openssl-1.0 as a dependency, so unless you updated packages separately (which is kinda not supported in Arch), you should have everything working fine.
Another possible reason is that you might have [testing] repo enabled — Arch Linux maintainers put a new version of openssl-1.0 there (1.0.2.k-4), but did not rebuild nodejs on top of it, so community/nodejs 7.10.0-1 is still looking for extra/openssl-1.0 1.0.2.k-3. To work-around that, either use the official Node.js binaries or disable the [testing] repo in Arch Linux.
Why not use 1.1.0 in nodejs?
@qwIvan see https://github.com/nodejs/node/pull/11828#issuecomment-306453444 and https://github.com/nodejs/node/pull/13575