Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  <20182019  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  <20182019 
<== Date ==> <== Thread ==>

Subject: Re: EPICS Application Package
From: Mark Rivers <rivers@cars.uchicago.edu>
To: Tech-Talk <tech-talk@aps.anl.gov>, Vikram Bhagat <vbhagat@rocketmail.com>
Date: Tue, 16 Oct 2018 11:22:19 +0000
Hi Vikram,


The tar file that I sent as an attachment (make_standalone_tar) does not include base.  If you build you application statically (with STATIC_BUILD=YES in CONFIG_SITE or Makefile) then you don't need to include anything from base in your tar file.  Please remove base from your script.


Mark



________________________________
From: Vikram Bhagat <vbhagat@rocketmail.com>
Sent: Tuesday, October 16, 2018 6:07 AM
To: Mark Rivers; Tech-Talk
Subject: Re: EPICS Application Package

Dear Sir,
   Thank you for reply and script.
Yes, i want to make tar as you explained in the end of your email.

I tried with simple softIOC application and bundle base and IOC to make tar with your script, But at the time of untar following error encountered


base-7.0.1.1/lib/linux-x86_64/libca.so
tar: base-7.0.1.1/lib/linux-x86_64/libca.so: Cannot create symlink to ‘libca.so.4.13.1’: Operation not permitted
base-7.0.1.1/lib/linux-x86_64/libpvData.a
base-7.0.1.1/lib/linux-x86_64/libCom.so
tar: base-7.0.1.1/lib/linux-x86_64/libCom.so: Cannot create symlink to ‘libCom.so.3.17.0’: Operation not permitted
base-7.0.1.1/lib/linux-x86_64/libpvDatabase.so.4.3.0
base-7.0.1.1/lib/linux-x86_64/libdbRecStd.so
tar: base-7.0.1.1/lib/linux-x86_64/libdbRecStd.so: Cannot create symlink to ‘libdbRecStd.so.3.17.0’: Operation not permitted
base-7.0.1.1/lib/linux-x86_64/libCom.a
base-7.0.1.1/lib/linux-x86_64/libqsrv.so
tar: base-7.0.1.1/lib/linux-x86_64/libqsrv.so: Cannot create symlink to ‘libqsrv.so.1.0’: Operation not permitted
base-7.0.1.1/lib/linux-x86_64/libpvaClient.so
tar: base-7.0.1.1/lib/linux-x86_64/libpvaClient.so: Cannot create symlink to ‘libpvaClient.so.4.3.0’: Operation not permitted
base-7.0.1.1/lib/linux-x86_64/libqsrv.a
base-7.0.1.1/lib/linux-x86_64/libpvAccessIOC.a
base-7.0.1.1/lib/linux-x86_64/libca.so.4.13.1
base-7.0.1.1/lib/linux-x86_64/libpvAccess.so
tar: base-7.0.1.1/lib/linux-x86_64/libpvAccess.so: Cannot create symlink to ‘libpvAccess.so.6.0.0’: Operation not permitted
base-7.0.1.1/lib/linux-x86_64/libpvAccessIOC.so.6.0.0
base-7.0.1.1/lib/linux-x86_64/libpvData.so
tar: base-7.0.1.1/lib/linux-x86_64/libpvData.so: Cannot create symlink to ‘libpvData.so.7.0.0’: Operation not permitted


May be, i am missing something.

Thanks
Vikram

________________________________
From: Mark Rivers <rivers@cars.uchicago.edu>
To: 'Vikram Bhagat' <vbhagat@rocketmail.com>; Tech-Talk <tech-talk@aps.anl.gov>
Sent: Tuesday, October 16, 2018 3:32 AM
Subject: RE: EPICS Application Package

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: tech-talk-bounces@aps.anl.gov <tech-talk-bounces@aps.anl.gov> On Behalf Of Vikram Bhagat via Tech-talk
Sent: Thursday, October 11, 2018 11:55 PM
To: epics talk <tech-talk@aps.anl.gov>
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



References:
EPICS Application Package Vikram Bhagat via Tech-talk
RE: EPICS Application Package Mark Rivers
Re: EPICS Application Package Vikram Bhagat via Tech-talk

Navigate by Date:
Prev: Re: EPICS Application Package Vikram Bhagat via Tech-talk
Next: Re: Camera Recommendations [SEC=UNCLASSIFIED] Mark Rivers
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  <20182019 
Navigate by Thread:
Prev: Re: EPICS Application Package Vikram Bhagat via Tech-talk
Next: Base R3.15.6 Released Ralph Lange
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  <20182019 
ANJ, 16 Oct 2018 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·