-
Notifications
You must be signed in to change notification settings - Fork 35
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
node-capnp not building under vagrant-spk meteor stack #69
Comments
As @zenhack noted, this could be vagrant-spk-related, though I found the fact that it appears to error out building node-capnp interesting. However, I also wanted to check... were you using current vagrant-spk master? My proposed changes in https://github.com/sandstorm-io/vagrant-spk/pull/290/files use a later version of meteor-spk, which includes a commit fixing locating node-capnp files... so might very well be the fix. If you weren't using this, perhaps make the change from the linked PR to your setup.sh, then vagrant-spk vm destroy and vagrant-spk vm up to recreate the VM using the newer setup. |
I get the same error with both master and update-meteor-spk branches. |
This seems like a vagrant-spk issue, not a node-capnp issue. node-capnp is trying to build itself but libcapnp isn't installed on the system. |
Shouldn't libcapnp already be installed on a system with Sandstorm running on it? |
No... Sandstorm does not install any libraries onto the host system. Plus, it links capnp statically. |
@ocdtrekkie, the capnp schema for both capnproto core and sandstorm are included in We should probably adjust both the meteor & node stacks to install capnp. Annoyingly, the version in the debian repositories is too out of date to support the |
For what it's worth, when I tried to run this using meteor-spk, I got a different error that seems related. When I ran
I got an error in the sandstorm server console saying it couldn't find 'libkj.so' or something like that. If this seems valuable, I'll go try and recreate for the exact error. |
libkj is part of capnproto, so yeah that's the same issue. I don't think
there's much point in going to the trouble of reproducing that as I
think we already know what the problem is: you need to install capnproto
inside the vagrant box (and the vagrant-spk meteor stack should do this
itself). You'll want at least version 0.8 for compatibility with the `->
stream` syntax that I mentioned earlier.
…-Ian
Quoting gischer (2021-04-09 12:53:01)
For what it's worth, when I tried to run this using meteor-spk, I got a
different error that seems related. When I ran
meteor-spk dev
I got an error in the sandstorm server console saying it couldn't find
'libkj.so' or something like that. If this seems valuable, I'll go try
and recreate for the exact error.
--
You are receiving this because you were mentioned.
Reply to this email directly, [1]view it on GitHub, or [2]unsubscribe.
Verweise
1. #69 (comment)
2. https://github.com/notifications/unsubscribe-auth/AAGXYPWXFWHFB3UBJJXUCJDTH4WG3ANCNFSM42PSHYHQ
|
I decided to build capnproto by hand inside my vagrant box. This appeared to be successful, in that I have binaries installed in the box. However, I'm now getting the thing where meteor/node can't find libkj. This appears to be something subtle, since there is a For completeness, here are the long forms: Directory ls:
And the error:
|
Quoting gischer (2021-05-07 13:00:03)
I decided to build capnproto by hand inside my vagrant box. This
appeared to be successful, in that I have binaries installed in the
box.
However, I'm now getting the thing where meteor/node can't find libkj.
This appears to be something subtle, since there is a
/usr/lib/libkj.0.5.3.so
What version of capnproto did you build? 0.5.3 is *very* old, and you'll
need at least 0.8 for it to parse the current sandstorm schema
correctly. Based on the error, I imagine either:
- You built 0.5.3, in which case I don't know why it's not finding it
off-hand, but you should probably update anyway, or more likely,
- This file is part of a distro package, rather than the version you
built, and so is a red herring -- but it would be good to pin down
where the version you built ended up.
|
I had built from 0.8.0. But the build was messy. I have nuked the box and made a clean one with 0.8.0 (from the tarball). This has resulted in a /usr/local/lib/libkj-0.8.0.so This is installed in /usr/local/lib, whereas the old version was in /usr/lib (I think it was from a package install, as I was trying to figure out how this all fit together). So I think some search path grabbed that and linked against it, even though the newer binaries were present on the system. I guess I was expecting an overwrite from make install. Anyway, this new, cleaner build has made progress: It has replaced the name of the missing library in the above message with "libkj-0.8.0.so" The meteor/node runtime now can't find this one, even though it lives in /usr/local/lib |
I have learned something about this issue. It appears that, in production mode, Meteor puts itself in a chroot jail inside its bundle. So, it seems that while the capnp libs are installed in the root system of the Vagrant instance, they aren't also installed in the bundle, and thus can't be found. And the node-capnp install does not install these itself, which is what Meteor seems to expect. The |
For a variety of reasons, I'm working on switching to using vagrant-spk instead of meteor-spk However, when I get to the step in build.sh that says
node install --production
it get this error (and a lot of other stuff, which I have omitted because it seems not to be relevant):
The text was updated successfully, but these errors were encountered: