Thanks Phil, I found I needed to set LD_LIBRARY_PATH as well as PATH to $HOME to use interpreter. I really appreciate the helpful information from this community!
On Tue, Oct 20, 2020 at 4:00 AM <polyml-request at inf.ed.ac.uk> wrote:
Send polyml mailing list submissions to polyml at inf.ed.ac.uk
To subscribe or unsubscribe via the World Wide Web, visit http://lists.inf.ed.ac.uk/mailman/listinfo/polyml or, via email, send a message with subject or body 'help' to polyml-request at inf.ed.ac.uk
You can reach the person managing the list at polyml-owner at inf.ed.ac.uk
When replying, please edit your Subject line so it is more specific than "Re: Contents of polyml digest..."
Today's Topics:
- Re: Install to users home directory (Phil Clayton)
- Re: polyml install to Alpine Linux (David Matthews)
Message: 1 Date: Tue, 20 Oct 2020 10:12:37 +0100 From: Phil Clayton <phil.clayton at veonix.com> To: polyml at inf.ed.ac.uk Subject: Re: [polyml] Install to users home directory Message-ID: <090b6bb7-106a-eb9e-0732-2b00a050ebee at veonix.com> Content-Type: text/plain; charset=utf-8; format=flowed
On 20/10/20 05:40, David Topham wrote:
I know it is most efficient to install software system wide so all users share same code. But I have a situation where I want to install only to my home directory. i.e. It is Linux system where I don't have sudo privilege. Is that possible? I am building from source, so perhaps ./configure ?--prefix=$HOME make make install
Or does polyml have too many dependencies on other system libraries to make that impractical?
You can specify any prefix to install to - this does not affect how dependencies are found. However, depending on your choice of prefix, you may need to manually add <prefix>/bin to PATH. Depending on your Linux distribution, it would probably be more idiomatic to do a per-user install to $HOME/.local to avoid cluttering the home directory. Also, if you have Poly/ML installed system-wide via the package manager, you would need to make sure that <prefix>/bin occurs in the path before the system bin directory, to ensure your user version is found first.
There are some instructions previously posted here: http://lists.inf.ed.ac.uk/pipermail/polyml/2017-July/002038.html which also show how to disable the package manager version of Poly/ML on Fedora.
Phil
Message: 2 Date: Tue, 20 Oct 2020 11:56:55 +0100 From: David Matthews <David.Matthews at prolingua.co.uk> To: polyml at inf.ed.ac.uk Subject: Re: [polyml] polyml install to Alpine Linux Message-ID: <5bca1bc6-063e-b199-65f1-31e259038413 at prolingua.co.uk> Content-Type: text/plain; charset=utf-8; format=flowed
On 19/10/2020 21:08, David Matthews wrote:
Yes, using .data.rel.ro., i.e. relocatable read-only data.
Thanks, Jess.? That seems to work, at least on SELinux and Alpine. OpenBSD seems to still want it to be writeable.
I've now changed the ELF exporter to write the data to .data.rel.ro. The byte code interpreted version (--disable-native-codegeneration) now builds without a problem on Alpine Linux and on SELinux with hardening turned on. That isn't a complete solution because it doesn't deal with native code but it does show that if code could be handled everything else will work.
I see this primarily as future-proofing Poly/ML. It's not unlikely that a future release of, say Mac OS X, might outlaw TEXTRELs.
David
Subject: Digest Footer
polyml mailing list polyml at inf.ed.ac.uk http://lists.inf.ed.ac.uk/mailman/listinfo/polyml
End of polyml Digest, Vol 168, Issue 9
-- The University of Edinburgh is a charitable body, registered in Scotland, with registration number SC005336.
I fired up the VM and, in the terminal, ran
objdump -p polyml/bin/poly
and I see the output contains:
Dynamic Section: ... RPATH /root/polyml/lib ...
If that RPATH were correctly set (to /home/guest/polyml/lib) I suspect you wouldn't need to set LD_LIBRARY_PATH in the environment.
Phil
On 20/10/20 14:54, David Topham wrote:
Thanks Phil, I found I needed to set LD_LIBRARY_PATH as well as PATH to $HOME to use interpreter. I really appreciate the helpful?information from this community!
On Tue, Oct 20, 2020 at 4:00 AM <polyml-request at inf.ed.ac.uk <mailto:polyml-request at inf.ed.ac.uk>> wrote:
Send polyml mailing list submissions to polyml at inf.ed.ac.uk <mailto:polyml at inf.ed.ac.uk> To subscribe or unsubscribe via the World Wide Web, visit http://lists.inf.ed.ac.uk/mailman/listinfo/polyml or, via email, send a message with subject or body 'help' to polyml-request at inf.ed.ac.uk <mailto:polyml-request at inf.ed.ac.uk> You can reach the person managing the list at polyml-owner at inf.ed.ac.uk <mailto:polyml-owner at inf.ed.ac.uk> When replying, please edit your Subject line so it is more specific than "Re: Contents of polyml digest..." Today's Topics: ? ?1. Re: Install to users home directory (Phil Clayton) ? ?2. Re: polyml install to Alpine Linux (David Matthews) ---------------------------------------------------------------------- Message: 1 Date: Tue, 20 Oct 2020 10:12:37 +0100 From: Phil Clayton <phil.clayton at veonix.com <mailto:phil.clayton at veonix.com>> To: polyml at inf.ed.ac.uk <mailto:polyml at inf.ed.ac.uk> Subject: Re: [polyml] Install to users home directory Message-ID: <090b6bb7-106a-eb9e-0732-2b00a050ebee at veonix.com <mailto:090b6bb7-106a-eb9e-0732-2b00a050ebee at veonix.com>> Content-Type: text/plain; charset=utf-8; format=flowed On 20/10/20 05:40, David Topham wrote: > I know it is most efficient to install software system wide so all users > share same code. But I have a situation where I want to install only to > my home directory. i.e. It is Linux system where I don't have sudo > privilege. > Is that possible? > I am building from source, so perhaps > ./configure ?--prefix=$HOME > make > make install > > Or does polyml have too many dependencies on other system libraries to > make that impractical? You can specify any prefix to install to - this does not affect how dependencies are found.? However, depending on your choice of prefix, you may need to manually add <prefix>/bin to PATH.? Depending on your Linux distribution, it would probably be more idiomatic to do a per-user install to ? ?$HOME/.local to avoid cluttering the home directory.? Also, if you have Poly/ML installed system-wide via the package manager, you would need to make sure that <prefix>/bin occurs in the path before the system bin directory, to ensure your user version is found first. There are some instructions previously posted here: http://lists.inf.ed.ac.uk/pipermail/polyml/2017-July/002038.html which also show how to disable the package manager version of Poly/ML on Fedora. Phil ------------------------------ Message: 2 Date: Tue, 20 Oct 2020 11:56:55 +0100 From: David Matthews <David.Matthews at prolingua.co.uk <mailto:David.Matthews at prolingua.co.uk>> To: polyml at inf.ed.ac.uk <mailto:polyml at inf.ed.ac.uk> Subject: Re: [polyml] polyml install to Alpine Linux Message-ID: <5bca1bc6-063e-b199-65f1-31e259038413 at prolingua.co.uk <mailto:5bca1bc6-063e-b199-65f1-31e259038413 at prolingua.co.uk>> Content-Type: text/plain; charset=utf-8; format=flowed On 19/10/2020 21:08, David Matthews wrote: >> Yes, using .data.rel.ro <http://data.rel.ro>., i.e. relocatable read-only data. > > Thanks, Jess.? That seems to work, at least on SELinux and Alpine. > OpenBSD seems to still want it to be writeable. I've now changed the ELF exporter to write the data to .data.rel.ro <http://data.rel.ro>. The byte code interpreted version (--disable-native-codegeneration) now builds without a problem on Alpine Linux and on SELinux with hardening turned on.? That isn't a complete solution because it doesn't deal with native code but it does show that if code could be handled everything else will work. I see this primarily as future-proofing Poly/ML.? It's not unlikely that a future release of, say Mac OS X, might outlaw TEXTRELs. David ------------------------------ Subject: Digest Footer _______________________________________________ polyml mailing list polyml at inf.ed.ac.uk <mailto:polyml at inf.ed.ac.uk> http://lists.inf.ed.ac.uk/mailman/listinfo/polyml ------------------------------ End of polyml Digest, Vol 168, Issue 9 ************************************** -- The University of Edinburgh is a charitable body, registered in Scotland, with registration number SC005336.
polyml mailing list polyml at inf.ed.ac.uk http://lists.inf.ed.ac.uk/mailman/listinfo/polyml
On 20/10/2020 16:19, Phil Clayton wrote:
I fired up the VM and, in the terminal, ran
? objdump -p polyml/bin/poly
and I see the output contains:
? Dynamic Section: ??? ... ??? RPATH????????????????????? /root/polyml/lib ??? ...
If that RPATH were correctly set (to /home/guest/polyml/lib) I suspect you wouldn't need to set LD_LIBRARY_PATH in the environment.
Or configure with --disable-shared to build a binary that doesn't use a dynamic library.
David