MacOS – Setting environment variables (TEXINPUTS) in El Capitan

latexlaunchdmacos

I am a user of TeXShop, an application launched from the Launchpad. Everything works great except that in order to get full functionality, I need to set the TEXINPUTS environment variable. (To be precise, the variable must be set for certain processes launched by TexShop. It is normally inherited from the parent process.)

Until I upgraded to El Capitan, I could do this by calling launchctl setenv TEXINPUTS some-appropriate-value. Unfortunately, this has stopped working after upgrading. The command appears to succeed, and querying with launchctl getenv TEXINPUTS shows me the value I set, but it is not passed to applications I launch from the GUI. (I have confirmed this by launching a Terminal and checking the environment.)

The launchctl manual page has this to say about the config system command:

path: Sets the PATH environment variable for all services within the target domain to
the string value. […] Note that if a service specifies its
own PATH, the service-specific environment variable will take precedence.

NOTE: This facility cannot be used to set general environment variables for all
services within the domain. It is intentionally scoped to the PATH environment
variable and nothing else for security reasons.

So it seems that Apple (a) does not want to pass my environment settings to applications willy-nilly, may have a way to customize the environment of specific "services". Does anyone know how I can get my editor to "see" the TEXINPUTS variable?

PS. Almost all related questions I've seen are about setting PATH. Solutions specific to setting the system path are not going to help here.

Best Answer

The problem is well known and is due to Apple - the /usr folder cannot be anymore written. The solution is to add a link to this location: /Library/TeX/texbin - depending also on your TeX version, see more info in this link: https://tug.org/mactex/elcapitan.html