src/bin in path?

38 views
Skip to first unread message

Nils Bruin

unread,
May 1, 2015, 12:06:40 PM5/1/15
to sage-...@googlegroups.com
To my surprise, $SAGE_ROOT/src/bin is in the path that sage uses and it appears before $SAGE_ROOT/local/bin . In particular, that means that all kinds of files in $SAGE_ROOT/local/bin are there just for show, e.g. sage-ipython etc: for sage execution, only $SAGE_ROOT/src/bin/sage-ipython is relevant. Why do we even copy them over to local/bin if we're just using src/bin anyway?

Volker Braun

unread,
May 1, 2015, 1:08:21 PM5/1/15
to sage-...@googlegroups.com
If it weren't in the path then you would have to run "make" whenever you want to change one of the scripts in src/bin. This gets boring real quick.

Of course we should copy them to SAGE_LOCAL, a compiled Sage without the src/ folder should work. It sort of does work right now. This is what globally installing Sage should boil down to.

Nils Bruin

unread,
May 1, 2015, 2:17:40 PM5/1/15
to sage-...@googlegroups.com
On Friday, May 1, 2015 at 10:08:21 AM UTC-7, Volker Braun wrote:
If it weren't in the path then you would have to run "make" whenever you want to change one of the scripts in src/bin. This gets boring real quick.

I see. Sloppy but convenient if you happen to be working on the scripts. How attainable are cleaner solutions? hardlink the files? put these files under source control in local/bin so that src/bin isn't necessary at all?

Given that all the other stuff (including .py library files, for which "make" is also just  copy operation) does need "sage -b" or some flavour of "make", it's really quite surprising to see anything in src/ take precedence during execution over local/ .

(there really should be a subtarget "make install-scripts" that only does the required copy operation, in which case the boredom would set in a little later)

 Another solution that would leave sage in a cleaner state in general would be to only add src/bin to the path when you're working on the scripts, (the git log on src/bin indeed suggests that this doesn't happen too often).

Volker Braun

unread,
May 3, 2015, 10:49:13 AM5/3/15
to sage-...@googlegroups.com
IMHO the question really is about "what constitutes a binary install". Presumably the answer is something like "the sage launcher script, and the SAGE_LOCAL tree". This is not true right now, and IMHO there are bigger fish to fry than $PATH. For example, the documentation output is in src/doc. I don't really care whether we a) only add src/bin in a dev tree or b) make an extra install target for scripts. Also, scripts and auxiliary binaries that can not / should not be used without Sage shouldn't be in $prefix/usr/bin, better would be $prefix/usr/libexec/sage
Reply all
Reply to author
Forward
0 new messages