<div dir="ltr">Hi David,<div><br></div><div>Unfortunately, over the last 30 years we have not settled on One Software Packaging Method To Rule Them All.</div><div><br></div><div>You mention building from source, and then you mention Docker, and there are maybe 20 other ways to package software in between.</div><div><br></div><div>I'm personally a fan of APT, so your users could just do "apt install software_name".</div><div><br></div><div>Other examples include RPM or EasyBuild+Lmod or less common tools like Singularity or Snap/Snappy or Flatpak.</div><div><br></div><div>Regards,</div><div>Alex</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Aug 20, 2019 at 10:28 AM David Mathog <<a href="mailto:mathog@caltech.edu">mathog@caltech.edu</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On a system I am setting up there are a very large number of different <br>
software packages available.  The sources live in /usr/local/src and a <br>
small number of the most commonly used ones are installed in <br>
/usr/local/bin, /usr/local/lib and so forth.  The issue is that any of <br>
the target end users will only want a couple of these.  If they were all <br>
fully installed into /usr/local there would be some name conflicts.  <br>
They may also be bringing some of their own versions of these, and while <br>
$PATH order can help there, it would be best to avoid those possible <br>
conflicts too.  Users don't have priv's to modify /usr/local, so they <br>
cannot install/uninstall there themselves.<br>
<br>
So I'm looking for something like<br>
<br>
   setup software_name install<br>
   setup software_name remove<br>
<br>
which would install/uninstall the packages (perhaps by symlinks) from<br>
<br>
   /usr/local/src/software_name<br>
<br>
under the user's home directory.  The goal is that the setup scripts NOT <br>
be constructed by hand.  It would have a<br>
<br>
   setup software_name install<br>
<br>
which would emulate a:<br>
<br>
   make install<br>
<br>
and automatically translate it into the appropriate setup commands.  <br>
Some of these packages have hundreds of programs, so anything manual is <br>
going to be very<br>
painful.<br>
<br>
Anybody seen a piece of software like this?<br>
<br>
I don't expect this to work in all cases.  Some of these packages hard <br>
code paths into the binaries and/or scripts.  The only hope for them is <br>
for the user to do some variant of:<br>
<br>
     cd $HOMEDIR<br>
     (cd /usr/local/src; tar -cf - software_name) | tar -xf -<br>
     cd software_name<br>
     make clean  #pray that it gets everything!!!<br>
     ./configure --prefix=$HOMEDIR<br>
     make<br>
     make install<br>
<br>
There is a file which documents how to build each package, although it <br>
is nowhere near complete at this time.<br>
<br>
Docker is already available if the user wants to go that route, which <br>
avoids this whole issue, but at the cost of moving big images around.<br>
<br>
Thanks,<br>
<br>
David Mathog<br>
<a href="mailto:mathog@caltech.edu" target="_blank">mathog@caltech.edu</a><br>
Manager, Sequence Analysis Facility, Biology Division, Caltech<br>
_______________________________________________<br>
Beowulf mailing list, <a href="mailto:Beowulf@beowulf.org" target="_blank">Beowulf@beowulf.org</a> sponsored by Penguin Computing<br>
To change your subscription (digest mode or unsubscribe) visit <a href="https://beowulf.org/cgi-bin/mailman/listinfo/beowulf" rel="noreferrer" target="_blank">https://beowulf.org/cgi-bin/mailman/listinfo/beowulf</a><br>
</blockquote></div>