Comments (5)
So I found the root cause for the issue: morph does not check for whether the architecture for which the configuration was built is correct. The configuration will then contain a shebang to a wrong binary, which will lead to failure. A preliminary check would catch this gracefully.
To the error message, this is a bug in Bash (actually, they say it's not because it's specified in POSIX, so one could call it a bug in POSIX): If the execution of a shebang fails, Bash will try to interpret the file directly. Of course this makes no sense, and since our file is a perl script we thus get the use: command not found
error message.
from morph.
So the root cause remains: the perl
from the activation script's shebang is compiled for x86_64 Linux, although the hardware is aarch64. Executing the activation script manually gives me zsh: exec format error
instead, which makes a lot more sense. However, when executing from a bash I get the stupid error message again. WTF?
from morph.
Do you have any good tips for recovering a host that has been morphed with the wrong architecture?
switch-to-configuration
is now borked on an x86 host after I mistakenly pushed an aarch64 config, so the zstd
on it is not executable.
from morph.
No, I was fortunate enough that the activation script was in Perl and thus failed before it could do any harm. You may try executing the activation script in emulation mode (with binfmt
), but I can't guarantee this will work or even is a good idea. Personally, I'd try to manually force it some new configuration and then morph deploy
it over.
from morph.
I copied over the activation script from a previous generation and that made it happy to deploy again.
from morph.
Related Issues (20)
- Pass build options to nix HOT 3
- How to configure non-native target? HOT 1
- Document what names are not possible as machine names.
- Deployment is slow HOT 2
- Morph requires experimental nix-commands to be enabled HOT 5
- Push nodes into their own attrset
- A Question on morph and nix.autoUpgrade HOT 8
- set targetHost at runtime
- add `?compress=true` to ssh store urls
- Require Nix 2.4? HOT 2
- warning: The extraArgs argument to eval-config.nix is deprecated HOT 1
- Check for target host disk space before copying
- Maintaining a per-host gc-root
- Issues with repairing broken path in server HOT 6
- How to use repl to inspect configs? HOT 2
- (option to) use `nix build` instead of `nix-build` HOT 1
- Support alternative sudo authentication methods
- Enhance README with an example and instructions? HOT 1
- Error when building system, caused by extraModuleSources
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from morph.