0

Since I upgraded to Monterey (from Mojave), I cannot run anymore a local server that was installed under /Applications.

The app has no extension, the file type is "Unix Executable File". It was working perfectly before the update.

Now when I try to run it from shell it fails with

-bash: ./ManicTimeServer: cannot execute binary file

What's going on? Why the app doesn't run anymore?

And, mainly, how do I make it run again?


Additional info:

  • ls -la ManicTimeServer returns -rwxr-xr-x@ (not the additional xattr)

  • xattr ManicTimeServer returns

com.apple.lastuseddate#PS

  • stat ManicTimeServer returns

16777220 96934799 -rwxr-xr-x 1 myusername staff 0 138736 "Nov 30 17:37:52 2021" "Sep 22 09:26:35 2021" "Nov 30 17:38:24 2021" "Sep 22 09:26:35 2021" 4096 272 0 ManicTimeServer

  • file ManicTimeServer returns ManicTimeServer: ELF 64-bit LSB pie executable, x86-64, version 1 (GNU/Linux), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=1cfaaf19b37c906e12f121854b3a6b45c6c9bdf7, stripped

  • otool -L ManicTimeServer returns

ManicTimeServer: is not an object file

12
  • Did you checked the file permissions ? ( ls -l ./ManicTimeServer ). You should get something like -rwxr-xr-x
    – Ptit Xav
    Commented Feb 5, 2022 at 20:19
  • All good: -rwxr-xr-x@; not different from the past. The macOS upgrade didn't provoke changes in filesystem permissions. Commented Feb 5, 2022 at 20:38
  • If this is a 32bit app, it will not run under Monterey. Go back to the vendor and see if there is an update.
    – ErniePC12
    Commented Feb 5, 2022 at 21:47
  • Is this about manictime.com/teams/download ?
    – nohillside
    Commented Feb 6, 2022 at 10:25
  • @nohillside yes, exactly, the Linux version. I couldn't find requirements info about 32 or 64 bits. Commented Feb 6, 2022 at 15:45

3 Answers 3

1

This is a Linux binary, it will not run on macOS.

2
  • Setting that up in docker seems to be documented and here conflicts the main page manictime.com/Teams/How-To-Install-linux-mac, but that doesn’t match OP details for what got installed. Maybe a fresh download or chat with their support is next?
    – bmike
    Commented Feb 6, 2022 at 16:20
  • I would go for the Docker solution, if MacOS supported containers and it didn't require a whole virtual machine running. Docker steals a considerable part of my CPU and RAM; not worth it for running such a little daemon service. – I hoped to keep running the server on the laptop, as in the past, so it is always reachable even when travelling and having no internet available. Commented Feb 6, 2022 at 16:32
0

The following commands might help to understand the reason of the issue.

For instance for /usr/bin/curl it shows what type the binary is, if it is runnable binary. Additional info regarding binary file types can be found here

% file /usr/bin/curl

/usr/bin/curl: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit executable x86_64] [arm64e:Mach-O 64-bit executable arm64e]
/usr/bin/curl (for architecture x86_64):    Mach-O 64-bit executable x86_64
/usr/bin/curl (for architecture arm64e):    Mach-O 64-bit executable arm64e

This command will give details about the file itself. Your comment shows "@" sign after common permission flags, which means that there are extended attributes assigned. I would check this thread to verify/update attributes.

% stat /usr/bin/curl

16777220 1152921500312765277 -rwxr-xr-x 1 root wheel 0 406336 "Jan  1 10:00:00 2020" "Jan  1 10:00:00 2020" "Jan  1 10:00:00 2020" "Jan  1 10:00:00 2020" 4096 448 0x80020 /usr/bin/curl

The following command will show if there are libraries are missing for the application.

% otool -L /usr/bin/curl

/usr/bin/curl:
    /usr/lib/libcurl.4.dylib (compatibility version 7.0.0, current version 9.0.0)
    /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.11)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1292.120.1)

Update 1: according to the output provided the file you are trying to run IS Linux binary, you can see it from the library that is used in the binary "/lib64/ld-linux-x86-64.so.2". Are you absolutely sure this is the same application that was running cause it appears that someone did a magic that Mac OS accepting Linux binaries or there was some kind of virtual machine wrapper or something similar. Generally running Linux binary with MacOS is not possible.

0

I would advise trying to run the ManicTimeServer.dll file instead - as the ManicTimeServer executable is only a small stub for Linux that checks whether you have .NET Core installed or not - and then executes from the DLL file.

I.e. try running something like:

dotnet ./ManicTimeServer.dll

or:

mono ./ManicTimeServer.dll

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .