After fresh compile, sage starts fine. Upon restart, it doesn't know it was installed

78 views
Skip to first unread message

Christopher Duston

unread,
May 5, 2020, 11:00:16 AM5/5/20
to sage-support
I'm working on an install script for Slackware, which seems to work - at least, running "sage" after compiling everything gets sage to run as expected.

However, a few days later:

$ sage
************************************************************************
It seems that you are attempting to run Sage from an unpacked source
tarball
, but you have not compiled it yet (or maybe the build has not
finished
). You should run `make` in the Sage root directory first.
If you did not intend to build Sage from source, you should download
a binary tarball instead
. Read README.txt for more information.
************************************************************************


So this message is apparently the result of a few different issues, but none of them seem to match. For example, there is the relocate-once script to handle a Python-related recursion problem, but that error does not appear. However, something is clearly getting reset in my system after I relog.

For some more info (and I hope evidence I've got a full installation):

$ which sage
/opt/sage/sage
bash
-4.3$ ls /opt/sage
#sage#       README.md    build       config.status  configure.orig  m4     src
COPYING
.txt  VERSION.txt  config      configure      docker          sage
Makefile     bootstrap    config.log  configure.ac   local           sage~


Thoughts?

Dima Pasechnik

unread,
May 5, 2020, 11:53:40 AM5/5/20
to sage-support
perhaps some environment variables are set which should not be set.

Anything with SAGE in the name would be a suspect.

What is the output of

$ set | grep SAGE

in your shell?

>
> Thoughts?
>
> --
> You received this message because you are subscribed to the Google Groups "sage-support" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to sage-support...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/sage-support/e96f13e7-9ae4-4f57-a61f-c225f438365e%40googlegroups.com.

Duston, Christopher

unread,
May 5, 2020, 4:05:38 PM5/5/20
to sage-s...@googlegroups.com
bash-4.3$ set | grep SAGE
bash-4.3$

No response, so no environmental variables set there.

You received this message because you are subscribed to a topic in the Google Groups "sage-support" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/sage-support/zUPJAknTTsg/unsubscribe.
To unsubscribe from this group and all its topics, send an email to sage-support...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/sage-support/CAAWYfq1x13UETmpog%3DrHTt%2B9aEv4KK7bo04qYw7oo2TH2dD6Pg%40mail.gmail.com.


--
Christopher L Duston
Assistant Professor of Physics
Director of the Merrimack Observatory
Merrimack College
Mendel 223

Dima Pasechnik

unread,
May 5, 2020, 5:17:05 PM5/5/20
to sage-support
On Tue, May 5, 2020 at 9:05 PM Duston, Christopher
<dus...@merrimack.edu> wrote:
>
> bash-4.3$ set | grep SAGE
> bash-4.3$
>
> No response, so no environmental variables set there.

the error message you see comes from
src/bin/sage:

# Prepare for running Sage, either interactively or non-interactively.
sage_setup() {
# Check that we're not in a source tarball which hasn't been built
yet (#13561).
if [ ! -z "$SAGE_LOCAL" ] && [ ! -x "$SAGE_LOCAL/bin/sage" ]; then
echo >&2
'************************************************************************'
echo >&2 'It seems that you are attempting to run Sage from an
unpacked source'
[etc.]

----------------
So it looks as if SAGE_LOCAL is set (in /opt/sage/sage) to something
that does not contain
bin/sage. Try starting Sage shell:

$ sage -sh

and at its prompt, do

$ echo $SAGE_LOCAL
$ ls -l $SAGE_LOCAL/bin/sage

(if sage -sh won't start you'd need to do some debugging to dig up $SAGE_LOCAL)

HTH
Dima
> To view this discussion on the web visit https://groups.google.com/d/msgid/sage-support/CA%2BKCAHF1FJNd%3DZHoTQhPYXu4eUhuZ4%3DAwJK32nZEBj2KWx5G8g%40mail.gmail.com.

Duston, Christopher

unread,
May 5, 2020, 7:38:10 PM5/5/20
to sage-s...@googlegroups.com
Oh man, you are right, and it means the SlackBuilds Package installer is doing something I wasn't exactly aware of:

$ sage -sh

Starting subshell with Sage environment variables set.  Don't forget
to exit when you are done.  Beware:
 * Do not do anything with other copies of Sage on your system.
 * Do not use this for installing Sage packages using "sage -i" or for
   running "make" at Sage's root directory.  These should be done
   outside the Sage shell.

Bypassing shell configuration files...

Note: SAGE_ROOT=/opt/sage
(sage-sh) c$ echo $SAGE_LOCAL
/tmp/SBo/sage-9.0/local
(sage-sh) $ ls -l $SAGE_LOCAL/bin/sage
ls: cannot access '/tmp/SBo/sage-9.0/local/bin/sage': No such file or directory

So /tmp/SBo is the default location where Slackbuilds is putting packages, but....  I'm low on space, so I've got a script running which empties this directory after every relog. That's the issue.

So a) I have to figure out if using temp like that is really all that smart in general, and b) get the SlackBuild script to move the package directory after installation.

Can you tell me: are there other things in SAGE_LOCAL that are needed besides the binary? Maybe the tex libraries or something?

Thanks for the help!

Dima Pasechnik

unread,
May 5, 2020, 7:55:20 PM5/5/20
to sage-support
On Wed, May 6, 2020 at 12:38 AM Duston, Christopher
<dus...@merrimack.edu> wrote:
>
> Oh man, you are right, and it means the SlackBuilds Package installer is doing something I wasn't exactly aware of:
>
> $ sage -sh
>
> Starting subshell with Sage environment variables set. Don't forget
> to exit when you are done. Beware:
> * Do not do anything with other copies of Sage on your system.
> * Do not use this for installing Sage packages using "sage -i" or for
> running "make" at Sage's root directory. These should be done
> outside the Sage shell.
>
> Bypassing shell configuration files...
>
> Note: SAGE_ROOT=/opt/sage
> (sage-sh) c$ echo $SAGE_LOCAL
> /tmp/SBo/sage-9.0/local
> (sage-sh) $ ls -l $SAGE_LOCAL/bin/sage
> ls: cannot access '/tmp/SBo/sage-9.0/local/bin/sage': No such file or directory
>
> So /tmp/SBo is the default location where Slackbuilds is putting packages, but.... I'm low on space, so I've got a script running which empties this directory after every relog. That's the issue.
>
> So a) I have to figure out if using temp like that is really all that smart in general, and b) get the SlackBuild script to move the package directory after installation.

I don't think you can simply move what's built, as the locations are
hardcoded in the binaries (with rpath or whatever this is called).
Can't you build in place, i.e. already in /opt/sage/local in your case?

>
> Can you tell me: are there other things in SAGE_LOCAL that are needed besides the binary? Maybe the tex libraries or something?

the bulk, about 70%, is SAGE_LOCAL/lib/ followed by SAGE_LOCAL/share/
(about 20%)
the rest is very small.
Both lib/ and share/ are largely needed.

HTH
Dima
> To view this discussion on the web visit https://groups.google.com/d/msgid/sage-support/CA%2BKCAHHTwPpL5N1zU3UrTR9Ra1NBvv09jqQup22E41shZaQBdQ%40mail.gmail.com.
Reply all
Reply to author
Forward
0 new messages