Quantcast
Channel: StudioSysAdmins Message Board
Viewing all articles
Browse latest Browse all 3749

Setting Environment Variables on OSX - Best Practices

$
0
0
Setting Environment Variables on OSX - Best Practices
posted by Jean-Francois Panisset on May 18, 2018, 6:20 p.m. (2 days ago)
Assuming you are talking about environment variables that control various aspects of your pipeline, I would personally shy away from setting environment variables at the "system" level for the following reasons:

- It's weird and ever changing on macOS (as per your post)
- It's even weirder on Windows, where GPOs, the registry and roaming profiles interact in weird and wonderful ways so that the set of environment variables you end up with and what they are set to is at best a stochastic process (and I'm not convinced that quantum probabilities aren't also involved). I just spent hours trying to figure out how my profile was ending up with some environment variables we thought we had eradicated years ago.
- You need a process to keep all your machines updated, and make sure they all have the right values (see comments about Windows).
- By definition you can only have a single set of variables for all users and all projects on a system.

For those reasons (and others) many studios use some kind of layered bootstraping setup where users login with as vanilla an environment as possible, and you then "start the pipeline" which creates a context with the right set of environment variables with multiple levels of possible override (show, shot, discipline...), either through running a script which creates a terminal shell with the right environment, running a GUI, or both. Python and something like GitBash / Cygwin on Windows (native bash on Linux / macOS) makes it portable and feasible to support all 3 environments.

Sorry, I realize that doesn't answer your immediate question at all...

JF



On Fri, May 18, 2018 at 10:25 AM, Mike Moss <content@studiosysadmins.com> wrote:

Hello,

Im curious what people are doing and what people consider best practices for setting env variables on OSX. Specifically, we are a mixedenvironment of PC's and OSX. The PC's we just go through GPO - nuff said.

In OSX, up until now we have been using a local login script (.command) file that sets env variables using the launchctl setenvcommand. We would like to change this to something a little more elegant that does not use the user's login items feature.

All our machines are OSX 10.12 and it seems launchd.conf is not supported in anything higher than 10.10 - that option is no go.

We also would prefer this to be module. When we were first looking at the idea of the .bash_profile, we wanted that to source two .sh scripts, one for our development team and another for IT. Each dept can make changes as necessary without disturbing the other. However, ive had isses with this set up due to the .bash_profile running everytime Terminal is launched - which is by design of the bash_profile.

So, what are some other ways? Im curious to hear what others have set up.

Thanks,

Mike


To unsubscribe from the list send a blank e-mail to mailto:studiosysadmins-discuss-request@studiosysadmins.com?subject=unsubscribe

Thread Tags:
  discuss-at-studiosysadmins 

0 Responses   0 Plus One's   0 Comments  
 
Assuming you are talking about environment variables that control various aspects of your pipeline, I would personally shy away from setting environment variables at the "system" level for the following reasons:

- It's weird and ever changing on macOS (as per your post)
- It's even weirder on Windows, where GPOs, the registry and roaming profiles interact in weird and wonderful ways so that the set of environment variables you end up with and what they are set to is at best a stochastic process (and I'm not convinced that quantum probabilities aren't also involved). I just spent hours trying to figure out how my profile was ending up with some environment variables we thought we had eradicated years ago.
- You need a process to keep all your machines updated, and make sure they all have the right values (see comments about Windows).
- By definition you can only have a single set of variables for all users and all projects on a system.

For those reasons (and others) many studios use some kind of layered bootstraping setup where users login with as vanilla an environment as possible, and you then "start the pipeline" which creates a context with the right set of environment variables with multiple levels of possible override (show, shot, discipline...), either through running a script which creates a terminal shell with the right environment, running a GUI, or both. Python and something like GitBash / Cygwin on Windows (native bash on Linux / macOS) makes it portable and feasible to support all 3 environments.

Sorry, I realize that doesn't answer your immediate question at all...

JF



On Fri, May 18, 2018 at 10:25 AM, Mike Moss <content@studiosysadmins.com> wrote:

Hello,

Im curious what people are doing and what people consider best practices for setting env variables on OSX. Specifically, we are a mixedenvironment of PC's and OSX. The PC's we just go through GPO - nuff said.

In OSX, up until now we have been using a local login script (.command) file that sets env variables using the launchctl setenvcommand. We would like to change this to something a little more elegant that does not use the user's login items feature.

All our machines are OSX 10.12 and it seems launchd.conf is not supported in anything higher than 10.10 - that option is no go.

We also would prefer this to be module. When we were first looking at the idea of the .bash_profile, we wanted that to source two .sh scripts, one for our development team and another for IT. Each dept can make changes as necessary without disturbing the other. However, ive had isses with this set up due to the .bash_profile running everytime Terminal is launched - which is by design of the bash_profile.

So, what are some other ways? Im curious to hear what others have set up.

Thanks,

Mike


To unsubscribe from the list send a blank e-mail to mailto:studiosysadmins-discuss-request@studiosysadmins.com?subject=unsubscribe


Viewing all articles
Browse latest Browse all 3749

Trending Articles