1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 <2018> 2019 2020 2021 2022 2023 2024 | Index | 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 <2018> 2019 2020 2021 2022 2023 2024 |
<== Date ==> | <== Thread ==> |
---|
Subject: | RE: EPICS Application Package |
From: | Mark Rivers <[email protected]> |
To: | 'Vikram Bhagat' <[email protected]>, Tech-Talk <[email protected]> |
Date: | Mon, 15 Oct 2018 22:02:31 +0000 |
Hi Vikram, I think you are asking about a fairly small and simple installation. I handle our rather small set of beamlines using the following scheme. I use a single Linux machine (called corvette) to hold the working directories of EPICS base, synApps, areaDetector, etc. This machine runs Centos 7. I build on corvette itself for the linux-x86_64, linux-x86, and vxWorks-ppc32 architectures.
I also build for the following additional architectures from other computers: EPICS_HOST_ARCH Description linux-x86_64-rhel6 64-bit RHEL 6 linux-86_64-gcc42 64-bit Suse 11.0 linux-x86-rhel6 32-bit RHEL 6 windows-x64-static 64-bit Windows static windows-x64 64-bit Windows dynamic win32-x86-static 32-bit Windows static These builds are needed because I have hardware that only runs on those operating systems. However, all of those builds are done using NFS or SMB mounts to the same working directories on corvette. There is only a single copy of the
source code, and a single bin/, lib/, etc. directory for each module. I typically build the same IOC application called CARS for most of our IOCs. Here is a listing of the bin directory for that application: corvette:~/support>ls -l ~/support/CARS/bin total 0 drwxrwxr-x 2 epics domain users 20 Oct 3 13:20 linux-x86 drwxrwxr-x 2 epics domain users 20 Oct 3 13:25 linux-x86-rhel6 drwxrwxr-x 2 epics domain users 20 Oct 3 13:15 linux-x86_64 drwxr-xr-x 2 epics domain users 20 Oct 3 13:35 linux-x86_64-gcc42 drwxrwxr-x 2 epics domain users 20 Sep 25 10:06 linux-x86_64-rhel6 drwxrwxr-x 2 epics domain users 40 Oct 3 13:20 vxWorks-ppc32 drwxrwxrwx 2 epics domain users 24 Oct 3 13:36 win32-x86-static drwxrwxrwx 2 epics domain users 39 Oct 3 14:08 windows-x64 drwxrwxrwx 2 epics domain users 24 Oct 3 13:51 windows-x64-static For areaDetector and a few other “detector” modules I don’t build those into the CARS application, but rather make dedicated IOCs for each detector type (Pilatus, Perkin Elmer, Prosilica, etc.) When running EPICS on computers on our local beamlines, the setup is as follows: - IOC application runs on the machines running the above operating systems (mix of various Linux and Windows) which is connected to the hardware. - For all Linux machines all files (executables, shareable libraries, db files, dbd files, OPI files, iocBoot directories,) are on corvette. There is nothing locally installed on the IOC computer, unless the IOC is running on corvette. - For Windows all files are on corvette except .exe and .dll files used by the IOCs at run-time. These cannot be kept on corvette, because they cannot be updated when any IOC has a file in use. Thus, the .exe and .dll files are copied
to a single local directory on the Windows machine each time an update is done. For remote machines that cannot access corvette at run-time I build a standalone tar or zip file using a script like that attached. It copies all require bin, db, dbd, and op directories. This tar or zip file can be unpacked on a remote
machine. A starting iocBoot/iocXXX directory is copied to a new one and the st.cmd and envPaths files are edited. It is very simple, and has proven very useful for remote or portable Windows and Linux systems. For areaDetector IOCs there is a simple script that does the same thing as the attached script, building a standalone package for the selected detector type and target architecture that can be installed on any computer. https://github.com/areaDetector/areaDetector/blob/master/makeADPrebuilt Mark From: [email protected] <[email protected]> On Behalf Of Vikram Bhagat via Tech-talk Sent: Thursday, October 11, 2018 11:55 PM To: epics talk <[email protected]> Subject: EPICS Application Package Hi, What is the way to package EPICS application? I have developed EPICS IOC application using Base7, Asyn and Stream device. I is working fine on my development computer having Ubuntu OS. Now i would like to deploy the IOC application on the other ubuntu computer without installing EPICS base, Asyn etc. How i can make package so that i can directly install application on the new PC without installing all stuff separately. How people are doing this for EPICS development? Thanking you. Vikram |
Attachment:
make_standalone_tar
Description: make_standalone_tar