Can't install nixops on my Mac

I’ve been playing with nix and nixops on my Mac for a few months. I had nixops running fine, creating web servers on VirtualBox. But then things broke. Someone pushed a change to nixpkgs that caused nixops to fail whenever I tried to deploy something. I updated and then it quit working. Kind people here gave me advice about how to fix it, and someone even discovered the file in error and fixed it in github, but told me that he didn’t know how long it would take before the change made it to the update stream. After trying a variety of things, many of which are described by older notes I wrote on discourse, I decided to just use nixos directly on VirtualBox. I figured out a variety of things by doing this, but now I want to go back to nixops. I figured it had been time enough for the change to make it to the update stream.

Today I removed nix (by removing /nix/store and /nix/var) and installed nix again, using the classic: sh <(curl https://nixos.org/nix/install) --no-daemon
Then I installed nixops with “nix-env -i nixops”. It tried to install nixops-1.6 but failed because when it tried to make …/python2.7-rednose-1.3.0.drv it had to run the tests for rednose, and one of them failed.

Wow! I can’t even load it now. Before, I could at least load it and it only failed when I tried to use nixops.

Am I the only person actually trying to use nixops on a Mac? I know the Mac is not the main platform, and I had to spend a bit of time figuring out how to make a remote builder for it, but I thought that was behind me and that now I could just use it.

Here are the error messages I get. It appears that the tests generate too long of a file name. It could easily be a bad test, with nothing wrong with the package. Or it is a real error. I have never used rednose and have no idea.

Please suggest what I can do to get nixops working on my Mac again.

Successfully installed rednose-1.3.0
/private/var/folders/cm/n4xm8k4s5qzd8lmdh94z5kh00000gp/T/nix-build-python2.7-rednose-1.3.0.drv-0/rednose-1.3.0
post-installation fixup
strip is /nix/store/fsirl1jzjb31850n0zd5navr9ahrf936-cctools-binutils-darwin/bin/strip
stripping (with command strip and flags -S) in /nix/store/m45l62l3gfppq4flpk7qsii28bq75pdn-python2.7-rednose-1.3.0/lib 
patching script interpreter paths in /nix/store/m45l62l3gfppq4flpk7qsii28bq75pdn-python2.7-rednose-1.3.0
running install tests
running test
running egg_info
writing requirements to rednose.egg-info/requires.txt
writing rednose.egg-info/PKG-INFO
writing top-level names to rednose.egg-info/top_level.txt
writing dependency_links to rednose.egg-info/dependency_links.txt
writing entry points to rednose.egg-info/entry_points.txt
reading manifest file 'rednose.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'rednose.egg-info/SOURCES.txt'
running build_ext
test_colored_result (test_files.new_tests.TestRedNose) ... Process SyncManager-1:
Traceback (most recent call last):
  File "/nix/store/6ya811rp7z3w768x7vipm56kcahkbjzd-python-2.7.15/lib/python2.7/multiprocessing/process.py", line 267, in _bootstrap
    self.run()
  File "/nix/store/6ya811rp7z3w768x7vipm56kcahkbjzd-python-2.7.15/lib/python2.7/multiprocessing/process.py", line 114, in run
    self._target(*self._args, **self._kwargs)
  File "/nix/store/6ya811rp7z3w768x7vipm56kcahkbjzd-python-2.7.15/lib/python2.7/multiprocessing/managers.py", line 550, in _run_server
    server = cls._Server(registry, address, authkey, serializer)
  File "/nix/store/6ya811rp7z3w768x7vipm56kcahkbjzd-python-2.7.15/lib/python2.7/multiprocessing/managers.py", line 162, in __init__
    self.listener = Listener(address=address, backlog=16)
  File "/nix/store/6ya811rp7z3w768x7vipm56kcahkbjzd-python-2.7.15/lib/python2.7/multiprocessing/connection.py", line 132, in __init__
    self._listener = SocketListener(address, family, backlog)
  File "/nix/store/6ya811rp7z3w768x7vipm56kcahkbjzd-python-2.7.15/lib/python2.7/multiprocessing/connection.py", line 256, in __init__
    self._socket.bind(address)
  File "/nix/store/6ya811rp7z3w768x7vipm56kcahkbjzd-python-2.7.15/lib/python2.7/socket.py", line 228, in meth
    return getattr(self._sock,name)(*args)
error: AF_UNIX path too long
ERROR
test_colored_result (test_files.new_tests.TestRedNoseEncoding) ... Process SyncManager-2:
Traceback (most recent call last):
  File "/nix/store/6ya811rp7z3w768x7vipm56kcahkbjzd-python-2.7.15/lib/python2.7/multiprocessing/process.py", line 267, in _bootstrap
    self.run()
  File "/nix/store/6ya811rp7z3w768x7vipm56kcahkbjzd-python-2.7.15/lib/python2.7/multiprocessing/process.py", line 114, in run
    self._target(*self._args, **self._kwargs)
  File "/nix/store/6ya811rp7z3w768x7vipm56kcahkbjzd-python-2.7.15/lib/python2.7/multiprocessing/managers.py", line 550, in _run_server
    server = cls._Server(registry, address, authkey, serializer)
  File "/nix/store/6ya811rp7z3w768x7vipm56kcahkbjzd-python-2.7.15/lib/python2.7/multiprocessing/managers.py", line 162, in __init__
    self.listener = Listener(address=address, backlog=16)
  File "/nix/store/6ya811rp7z3w768x7vipm56kcahkbjzd-python-2.7.15/lib/python2.7/multiprocessing/connection.py", line 132, in __init__
    self._listener = SocketListener(address, family, backlog)
  File "/nix/store/6ya811rp7z3w768x7vipm56kcahkbjzd-python-2.7.15/lib/python2.7/multiprocessing/connection.py", line 256, in __init__
    self._socket.bind(address)
  File "/nix/store/6ya811rp7z3w768x7vipm56kcahkbjzd-python-2.7.15/lib/python2.7/socket.py", line 228, in meth
    return getattr(self._sock,name)(*args)
error: AF_UNIX path too long
ERROR
test_colored_result (test_files.new_tests.TestRedNoseEncodingWithLiterals) ... Process SyncManager-3:
Traceback (most recent call last):
  File "/nix/store/6ya811rp7z3w768x7vipm56kcahkbjzd-python-2.7.15/lib/python2.7/multiprocessing/process.py", line 267, in _bootstrap
    self.run()
  File "/nix/store/6ya811rp7z3w768x7vipm56kcahkbjzd-python-2.7.15/lib/python2.7/multiprocessing/process.py", line 114, in run
    self._target(*self._args, **self._kwargs)
  File "/nix/store/6ya811rp7z3w768x7vipm56kcahkbjzd-python-2.7.15/lib/python2.7/multiprocessing/managers.py", line 550, in _run_server
    server = cls._Server(registry, address, authkey, serializer)
  File "/nix/store/6ya811rp7z3w768x7vipm56kcahkbjzd-python-2.7.15/lib/python2.7/multiprocessing/managers.py", line 162, in __init__
    self.listener = Listener(address=address, backlog=16)
  File "/nix/store/6ya811rp7z3w768x7vipm56kcahkbjzd-python-2.7.15/lib/python2.7/multiprocessing/connection.py", line 132, in __init__
    self._listener = SocketListener(address, family, backlog)
  File "/nix/store/6ya811rp7z3w768x7vipm56kcahkbjzd-python-2.7.15/lib/python2.7/multiprocessing/connection.py", line 256, in __init__
    self._socket.bind(address)
  File "/nix/store/6ya811rp7z3w768x7vipm56kcahkbjzd-python-2.7.15/lib/python2.7/socket.py", line 228, in meth
    return getattr(self._sock,name)(*args)
error: AF_UNIX path too long
ERROR

After a bunch of errors almost exactly like this, it finished up with

FAILED (errors=6)

Test failed: &lt;unittest.runner.TextTestResult run=6 errors=6 failures=0&gt;

error: Test failed: &lt;unittest.runner.TextTestResult run=6 errors=6 failures=0&gt;

builder for '/nix/store/fqb6vlxli6a1cyjd8pbl7w1z0fghcjd1-python2.7-rednose-1.3.0.drv' failed with exit code 1

cannot build derivation '/nix/store/lcrrxh9nkw678dimzw4adav816j65wmg-python2.7-sure-1.4.11.drv': 1 dependencies couldn't be built

cannot build derivation '/nix/store/gr09l8a5f60xh9anmr3hwhf8kb3rb76k-python2.7-httpretty-0.8.10.drv': 1 dependencies couldn't be built

cannot build derivation '/nix/store/akqxd0k8qn50b474c5cdw3d4r4kasinc-python2.7-boto-2.49.0.drv': 1 dependencies couldn't be built

cannot build derivation '/nix/store/z9chxhan3fb679aq24v9q5w5jsj0idkh-nixops-1.6.drv': 1 dependencies couldn't be built

**error:** build of '/nix/store/z9chxhan3fb679aq24v9q5w5jsj0idkh-nixops-1.6.drv' failed
1 Like

I ran into this as well. Fixed it with this:

  python = super.python.override {
     packageOverrides = self: super: {
       rednose = super.rednose.overrideAttrs (oldAttrs: { doInstallCheck = false; doCheck = false; });
     };
    };

Not sure what the proper long term fix is. Probably do something like ! stdenv.isDarwin. But then I also see that this was merged to master 13 days ago: https://github.com/NixOS/nixpkgs/commit/6e54e9561618459d0d0da2fb79efc5ae25aed94e

1 Like