> On Feb 17, 2016, at 7:17 PM, Nathaniel Smith <n...@pobox.com> wrote:
> 
> On Tue, Feb 16, 2016 at 6:12 PM, Glyph Lefkowitz
> <gl...@twistedmatrix.com> wrote:
>> Here, I'll make it for you.  Assuming virtualenv is installed:
>> 
>> python -m virtualenv /usr/lib/supervisord/environment
>> /usr/lib/supervisord/environment/bin/pip install supervisord
>> ln -vs /usr/lib/supervisord/environment/bin/supervisor* /usr/bin
>> 
>> 
>> More tooling around this idiom would of course be nifty, but this is really
>> all it takes.
> 
> Maybe
> 
>  pip install --self-contained=/opt/supervisord supervisord
> 
> should do something like this?


I think making pip do this might be mixing layers too much.  Frankly `pipsi´ 
does almost the right thing; if `sudo pipsi´ put script symlinks in 
/usr/local/bin/ instead of ~/.local/bin/ and put venvs into 
/usr/local/lib/pipsi/<envname>/ instead of ~/.local/venvs/<envname>, it would 
be almost exactly the right thing.

(I previously said "/usr/bin/" but the whole point of /usr/local is that it's a 
place you can write to which _is_ on the default path but _isn't_ managed by 
the system package manager.)

Whatever the invocation is though, Noah has a point about system administrator 
expectations.  If you always have to manually specify a path for 
--self-contained, then there's going to be no standard place to go look to see 
what applications are installed via this mechanism, and it makes diagnostics 
harder.  There could of course be an option to put the install somewhere else, 
but if it's going to be pip, then it should be:

  pip install --self-contained supervisor

by default, and

  pip install --self-contained --self-contained-environment=/opt/supervisor 
supervisor

in the case where the user wants a non-standard location.

-glyph

_______________________________________________
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig

Reply via email to