| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
I have encountered this also
I faced a lot of similar problems trying to get it running in a Ubuntu 18.04 container.
I see the problem here. node-pre-gyp is locating a prebuilt binary that it thinks is compatible, and so skipping the local build. But that binary dynamically links to libssl1.0.0, which is not available.
If you set the BUILD_ONLY environment variable during npm install, it will force a local build and avoid the bug. At the cost of a much slower install, and now you need to make sure you have all the toolchain and dev libraries to support the compilation.
npm install --build-from-source nodegit should also work.
That doesn't solve this issue, it's simply a workaround.
Also it requires even more system dependencies to be able to build it in the first place which is just as bad requiring our targets to install those.
npm install --build-from-source nodegit should also work.
This doesn't work at all.
Could you reopen this issue please.
That doesn't solve this issue, it's simply a workaround.
Agree, could we reopen this until there is a real fix in place?
@publicvirtualvoid What dependencies are you missing when you buiild from source?
@tommoor While it is nice to have the prebuilts, there are definitely restrictions with how portable they actually are. For example, it's possible we might be able to resolve this particular case with #1600 however, until libgit2/libgit2#4870 lands in a release, we are pretty much bound to have portability problems due to our libcurl dependency. Sometimes, the prebuilts just aren't going to work for a particular system, and building from source is a perfectly valid expectation. Hopefully, in the future we will provide prebuilts that work on these platforms, but as long as nodegit remains buildable on platforms that are not targeted by our prebuilts, I would say it's not really a workaround but more of an installation procedure that should be better documented.
It's fine to have a prebuild that only works for some people. What's bad is that the installer code is unable to notice that fact.
I realize that is mostly node-pre-gyp's fault for having an incomplete model of what it means to locate a compatible build. But the knowledge of which libraries are needed belongs inside nodegit regardless, and before spawning node-pre-gyp it could verify known preconditions that should cause it to force a local build.
That's a fair point @ef4. I think with that approach it may be solvable.
Thanks for articulating that better than I could @ef4 😄
Note: libgit2/libgit2#4870 did land in libgit2 v0.28.0, which was released yesterday. I hope that resolves this issue.
Awesome. I've been working on rolling that up into the next release of NodeGit.
For Node, openssl / curl should no longer be an issue after release of 0.25.0.
For Electron, openssl will remain an issue on Linux until electron/electron#16243 lands.
The latest alpha appears to work on debian9 as can be reproduced with this command
docker run --rm gcr.io/google-appengine/debian9 bash -c "apt update && apt install -y curl gnupg && curl -sL https://deb.nodesource.com/setup_10.x | bash - && apt install -y nodejs && npm install nodegit@0.25.0-alpha.6"
| Back | FazBrowse Home | New Git URL |
System information
When installing on debian9 after installing the required deps you get this error:
Here's the script required to reproduce this in a docker container.
or as a single command
It may be a little naive but ideally the dependencies on system libs should be removed. This makes it very difficult for us to use since our applications are used in a variety of OS's and distributions.