[Nix-dev] can't share a store between i686-linux and i686-darwin (was: Nix 0.13pre17232 doesn't work on i386-apple-darwin9.7.0)

Peter Simons simons at cryp.to
Wed Oct 7 21:12:06 CEST 2009


Hi Eelco,

 > Why did you have this impression? If there was an error, can you
 > reproduce it?

 1) Compile Nix on i686-linux with --disable-old-db-compat, then bootstrap the
    store with "./nix-env -i nix".

 2) Rsync that store to i686-darwin.

 3) Build nix on Darwin with --disable-init-state --disable-old-db-compat. Use
    those binaries to run "./nix-env -i nix". Throw in a "nix-store --verify"
    for good measure.

 4) Rsync that store back to i686-linux.

Now, "nix-env -i" on Linux no longer works. Packages can be built, but nix-env
fails to generate the new user environment, claiming that some arbitrary file
in the newly installed package would collide with a file of the same name in
the nix package.

I have not experienced that problem when sharing a store between i686-linux and
x86_64-linux. Also, it seems as if I can also share x86_64-linux with
i686-darwin.

Is there something in store that depends only on the CPU, but not on the OS,
maybe?

It is possible that I screwed up the store by mistake, i.e. while rsync'ing the
directories between machines, etc., but it feels unlikely to me, because I've
had that problem with Darwin for the second time. My first attempt to do that
caused my earlier postings to this list; this is the second time that I've
tried to put MacOS binaries into the same store with Linux.

Does anyone have a clue what might be the cause of this?

Take care,
Peter




More information about the nix-dev mailing list