I agree. As you said, you could simply install it at your home directory and append to the PATH variable, for me when I developed the RPM packages for EPICS base
and most of its support modules and extensions, I chose “/opt” just for the convention, my original target was to streamline the process of installing EPICS base and needed drivers because it became more of a repeated routine with time, we now just do “yum
install epics-base stream-device” and we have a complete stream-device support ready.
Best Regards,
Abdalla.
From: Maren Purves <m.purves at eaobservatory.org>
Sent: Tuesday, October 10, 2023 10:54 AM
To: Abdalla Ahmad <Abdalla.Ahmad at sesame.org.jo>
Cc: Lucas Russo <lerwys at gmail.com>
Subject: Re: How to use INSTALL_LOCATION with system directories
But, while I'm a kinda surrogate system administrator, I'm not a system administrator :), so unless I was to e,g, install a new version of a compiler I wouldn't write into it.
Maren Purves
Head of Instrument and Telescope Software
East Asian Observatory / JCMT
To my knowledge, the difference is just a convention. If I remember correctly, the Linux FHS states
that “/opt” is used for 3rd party packaged applications, while “/usr/local”
is used by system administrators to install software locally (using “make” for example) so that it does not override any system files.
Best Regards,
Abdalla.
From: Tech-talk <tech-talk-bounces at aps.anl.gov>
On Behalf Of Lucas Russo via Tech-talk
Sent: Tuesday, October 10, 2023 10:08 AM
To: Maren Purves <m.purves at eaobservatory.org>
Cc: EPICS Tech Talk <tech-talk at aps.anl.gov>
Subject: Re: How to use INSTALL_LOCATION with system directories
Hi Maren,
I think my question is why not? That's one usual place where you
install binaries/libaries in a linux system that is not a package
(.deb, .rpm). To my knowledge the recommendation is /usr/local
The part I don't understand is why you want to install it in system space in the first place.
We never have. Install it somewhere you have write access to and add that to your $PATH?
Head of Instrument and Telescope Software
East Asian Observatory/JCMT
On 10/9/23 16:15, Lucas Russo via Tech-talk wrote:
|
Caution: This email originated from outside of Cosylab.
|
Hi Ralph, Abdalla,
I understand. Because there's no separate "installation phase" it
doesn't seem possible to achieve what I was thinking.
Hi Lucas,
Why not? Unless I misunderstood what you want, you could do
make INSTALL_LOCATION=${HOME}/tmp/staging/ FINAL_LOCATION=/opt/test
sudo
mv ${HOME}/tmp/staging/ /opt/test
sudo
chown -R epics:epics /opt/test # Or root, or whatever
Perhaps having the staging directory under $(TOP) or /tmp makes more sense, it depends on your case, but you get the idea. Would this work for you?
Or, if you really want to use make, you can obviously use INSTALL_LOCATION for your staging area, FINAL_LOCATION for the target area and add something like
final-install:
mkdir -p $(FINAL_LOCATION); cp -a
$(INSTALL_LOCATION)/*
$(FINAL_LOCATION)
to the end of your top Makefile.
|