csshX not working on Mac Big Sur. Trying to use it lead to this error:

Unimplemented: POSIX::tmpnam(): use File::Temp instead at /System/Library/Perl/5.28/darwin-thread-multi-2level/POSIX.pm line 185.
Unimplemented: POSIX::tmpnam() at /usr/local/bin/csshX line 1130.
BEGIN failed--compilation aborted at /usr/local/bin/csshX line 1130.

Could anyone help me?

  • Have you verified it is compatible with Big Sur? As macOS 11.0.1 is brand new it is quite possible that this (and lots of other software) won't work on the new version of macOS. Nov 14 '20 at 13:14
  • You should provide more info about how you installed this SW. Did you manually install it from source, or use Homebew or MacPorts? The errors above some from underlying Perl code. I'd start with something like sudo cpan install POSIX to try to upgrade your Posix.pm file. Very worst case, edit that POSIX.pm file to call File::Temp at the line indicated, although editing files in /System is very hard, might even be nearly impossible/impractical now.
    – jimtut
    Nov 14 '20 at 14:40
  • Hello Steve, Hello jimtut thank you very much for you help. I think that csshX it's not compatible with macOS 11.0.1. I have install it via homebrew - brew install csshX. The installation was successful, but whenever I tried to use csshX the mentioned error above appeared. I have tried with sudo cpan install POSIX, but the situation is the same. Nov 14 '20 at 19:01

You can also just edit /usr/local/bin/csshX with the editor of your choice and replace the first line #!/usr/bin/perl with #!/usr/bin/perl5.18

  • This worked to open all windows, although I had all my windows tiled prior to Big Sur but with this its not tiled. I Closed the whole group of windows and it crashed, and now Terminal wont re-open. Guess there may be more issues! Nov 26 '20 at 14:37

I have FIXED IT!

The whole thing was that Apple used in MacOS Catalina perl 5, version 18, subversion 4 (v5.18.4) as a default, but in Big Sur perl 5, version 28, subversion 2 (v5.28.2)

csshX is not compatible with 5.28 so the easiest way is to change the dafault one by this command:

defaults write com.apple.versioner.perl Version -string 5.18

since Apple kept the previous version:

sh-3.2# ls -l /usr/bin/perl* -rwxr-xr-x 1 root wheel 140176 Jan 1 2020 /usr/bin/perl -rwxr-xr-x 1 root wheel 139184 Jan 1 2020 /usr/bin/perl5.18 -rwxr-xr-x 1 root wheel 121472 Jan 1 2020 /usr/bin/perl5.28 -rwxr-xr-x 1 root wheel 121472 Jan 1 2020 /usr/bin/perl5.30

and Voilà - csshX is working again!


I like to fix it this way:


use POSIX qw(tmpnam);


use File::Temp qw/ :POSIX /;

From https://github.com/brockgr/csshx/issues/103

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.