I’m trying to set up trellis on my M1 macbook pro but it fails during the vagrant up process.
The full error message is as follows:
DEBUG ssh: stderr: bash: line 4: /usr/local/bin/landrush-ip: No such file or directory
Without running vagrant using --debug it simply returns “Unsupported architecture”
My setup is as follows:
Fresh clone of trellis (v1.12.0-13-g1387834)
Using parallels trial version and the recommended box jeffnoxon/ubuntu-20.04-arm64
What am I missing here?
I’ve never used landrush not sure how much help I can be.
Maybe try to force the landrush-ip install? Example:
GitHub - vagrant-landrush/landrush-ip: Landrush IP resolver
No luck but thanks for the tip! I’ll keep digging.
@Branch, did you find a solution for this in the end? Having the exact same problem…
Looks like landrush doesn’t support ARM based architecture?
This basically means that you can’t run a multisite locally (yet) with a M1 Macbook Pro…
vagrant trellis-cert trust won’t work when
ssl is set to
self-signed in dev, since it can’t resolve the host:
getaddrinfo: nodename nor servname provided, or not known
This kinda sucks… is there an alternative we can use for
landrush-ip supports ARM, but not entirely properly looks like:
I think Ubuntu ARM64 might return
aarch64 as the architecture which wouldn’t be matched. That repo hasn’t been touched in forever but it’s worth opening an issue/PR.
arm64 so it should match
EDIT: Ah wait no, when I debug landrush-ip with:
puts uname it does return
@swalkinshaw, you’re right!
@Twansparant - sorry for my late reply.
I never solved the problem. I’ve now got multisite disabled for my local environment and instead testing anything multi site related in our stage env.
It works but it’s not ideal.
If I change
line 10 to:
elsif uname =~ /(arm|aarch64)/i
I get the following error on
The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!
Stdout from the command:
Stderr from the command:
bash: line 4: /usr/local/bin/landrush-ip: cannot execute binary file: Exec format error
exit status 1
Not sure what else to try?
I opened an issue on the landrush-ip repo for this:
I don’t use Landrush so I can’t really be of more help, but yeah that error message is obviously due to an architecture mismatch.
Ah, fairly positive the
arm build of that binary is
not 64bit: https://github.com/vagrant-landrush/landrush-ip/blob/e4de811cd0f8b2f07be18767042450e0b386132a/util/Makefile#L10-L36
So yeah that maintainer would need to update their Makefile to actually build the arm64 binary and adjust the logic to pick which binary to install. It wouldn’t be hard to fork.
Thanks for your reply!
I don’t really ‘use’
Landrush either, but since Trellis kinda makes me use it for multisites, I need a fix for my existing projects.
I’m not that familiar with
Ruby and it’s gems though, but I’m a little bit confused; when I install the plugin with:
vagrant plugin install landrush
It also installs
landrush-ip-0.2.5 into my folder:
But in that folder there’s no:
But in the repo
the file does exist?
How would I be able to test this locally first?
I think landrush-ip uses
Gox to build the binary and I found this issue regarding arm64, but not sure how to proceed to be honest…
07:44PM - 22 Nov 17 UTC
I have a server that run arm64, 32-bit arm binaries d
Distributed packages in most programming languages often don’t include
all files in the repo (like tests for one) and that goes for Ruby Gems too. Here’s the gemspec where it includes
utils/dist (where the compiled binaries are outputted):
So I think the process might look like:
clone the repo locally
use Docker/Gox to build the binaries locally
update that conditional logic
copy the edited files + new binary into
@swalkinshaw, I’ll have a go at it tomorrow and report back here!
Well that was an interesting side-project
I managed to build the
linux_arm64 locally with
gox and add the logic to the
When copying the
landrush_ip_install.rb file and the
landrush-ip-linux_arm64 build to my local dist, it works:
==> default: Automatic installation for Landrush IP not enabled
==> default: [landrush] Using eth1 (192.168.50.5)
==> default: [landrush] Adding 'mydomain.test => 192.168.50.5' to /Users/username/.vagrant.d/data/landrush/hosts.json
default: [landrush] starting DNS server: '/opt/vagrant/embedded/bin/ruby /Users/username/.vagrant.d/gems/2.7.4/gems/landrush-1.3.2/lib/landrush/start_server.rb 10053 /Users/username/.vagrant.d/data/landrush /Users/username/.vagrant.d/gems/2.7.4/gems'
==> default: [landrush] Using eth1 (192.168.50.5)
[landrush] Host DNS resolver config for TLD 'mydomain.test' looks good.
My subdomain works now on my multisite, even with
So I made a PR for this:
I guess the dependency also needs to be updated in
Thanks for your help!
@Twansparant Any chance you can drop in your compiled gem here that is working for you? I’ve been trying to get the landrush-ip bundle installed and then compiled with your updates and it’s just not working for me unfortunately.
I’m a Ruby noob, so don’t have a clue where to host a compiled gem, so I added a .zip file containing the compiled gem (with the
/util/dist/landrush-ip-linux_arm64 file) to our
Hope it helps you!
Thanks a ton! This got me a lot closer to getting everything back up locally. Running into some
Installing NFS client... issues, but I’m not entirely sure if that is related to landrush_ip. Going to dig into that a bit and see what I find. Thanks again