Sorry, I am not a developer or a code user, but I couldn't find help anywhere else and I hope that experienced people like you can maybe figure it out.

I don't know if "the story" matters, you can skip it if it doesn't: after I did a system restore from a Time Machine backup, updated to Catalina and then Migrating Assistant, I found out that I couldn't install apps from installers anymore (specifically, the SkyGo app...). After many tries, I came to the conclusion that the problem was a missing directory of installation, and I think the problem is in /private/tmp.

In fact, if I go in the /private folder, there is no tmp folder, if I show hidden files there is a tmp .alias file. I can't create a new tmp folder, neither delete tmp .alias.

I am using macOS Catalina 10.15.1.

I do apologize if I was not clear, I will try to give you as many extra details as you ask.

Any ideas on how to resolve this? Thank you very much!

  • Please add the version of macOS you are currently using – Steve Chambers Nov 29 '19 at 21:33
  • On macOS Catalina the root volume is not writable, so "/private/tmp" can't be modified by you or any application. You may want to check with the folks that support SkyGo and see if they either have a work around or a version that works on Catalina. – Steve Chambers Dec 1 '19 at 22:57

This is not trivial to fix. I would recommend you find someone who is very comfortable with the Terminal and command line commands if you are not. You can really mess up a system with a simple typo using sudo.

the actual tmp directory in Catalina is in /System/Volumes/Data/private

you may be able to delete that alias and then make a new folder:

  1. Make sure Terminal app has Full Disk Access in System Preferences… > Security & Privacy and select the Privacy Tab, then select Full Disk Access from the list on the left and add Terminal and check the box next to it on the right.

  2. In Terminal navigate to the private directory:

    cd /System/Volumes/Data/private

  3. delete the alias file: I don't follow what its name is exactly from your post (".alias.tmp"? ".tmp.alias"?) So I can't give you the exact command to remove it. Something along the lines of:

    sudo rm "FILENAME"

where "FILENAME" is the actual name of the tmp alias file you refer to.

  1. Create a tmp directory and give it the proper permissions:

    sudo mkdir tmp

    sudo chown root:wheel tmp

    sudo chmod ugo+rwx tmp

    sudo chmod +t tmp

That should do it. If you get errors trying to do this you may have to turn of SIP filesystem protection from within terminal after booting into Recovery Mode:

Reboot and hold the "r" key down to boot into Recovery M. Menu has Terminal so launch into that.

csrutil disable

Then reboot back into normal and to the commands above. When done, re-enable SIP (important for security) by booting back into Recovery Mode and launch Terminal there and do the command:

csrutil enable

| improve this answer | |

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.