&gt; <i>If I was to setup two completely seperate Xcode environments that I needed to run at the one time I think I&#x27;d probably investigate a chroot jail.</i><p>And that&#x27;s why you don&#x27;t develop software for actual real human beings to use.<p>&gt; <i>I&#x27;m not following. How does having shims for git prevent this?</i><p>Because Xcode doesn&#x27;t install any system components at all, the system itself provides the `xcode-select` utility that you use to select which Xcode version to use the tools from when invoking &#x2F;usr&#x2F;bin&#x2F;git etc. If Xcode installed crap on the system, that would be impossible because each version of Xcode would have overwritten the other version&#x27;s utilities. Not only that, but it would also break the ability to have 2 versions of Xcode, period, because the version that had its utilities overwritten would most likely break when the versions of the utilities change out from under it.<p>&gt; <i>I thought this was rather obvious... Apple don&#x27;t want people to symlink to other applications from &#x2F;usr&#x2F;bin just by exporting an environment variable.</i><p>Well no, that&#x27;s not the goal of SIP. SIP means nobody can muck with the system components. But the behavior you&#x27;ve described is the intended behavior of &#x2F;usr&#x2F;bin&#x2F;git et al. The fact that these utilities are working <i>as designed</i> does not mean SIP is broken.<p>&gt; <i>You were suggesting that Linux distributions installed shims in place of where the executables are normally</i><p>No I didn&#x27;t, I suggested that the fact that these shims suggest installing Command Line Tools is akin to how Linux distros often suggest installing packages via the package manager. I have no idea how you could possibly imagine I thought Linux added a shim for every single third-party utility in existence to &#x2F;usr&#x2F;bin. That&#x27;s complete nonsense and I&#x27;m not sure how to interpret this as anything other than you insulting my intelligence.<p>&gt; <i>You haven&#x27;t really given a good reason why shims are required.</i><p>I&#x27;ve given you multiple reasons, but you ignore most of them and suggest completely broken workarounds for the others.<p>If you&#x27;re going to pretend that I haven&#x27;t explained numerous times why it works the way it does, I don&#x27;t think there&#x27;s any more point in talking to you. You&#x27;re too focused on your broken solution to a complete non-problem for a system you don&#x27;t understand in the slightest and you obviously don&#x27;t want to actually bother to learn why they work the way they do.<p>&gt; <i>You could actually run Xcode without the Xcode command line tools package</i><p>Well yes, of <i>course</i> you can. The fact that you think that&#x27;s a surprising statement means you don&#x27;t even begin to understand how Xcode works or any of the stuff I&#x27;ve been explaining. Please stop parading your ignorance around.