Experimental Physics and Industrial Control System
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 <[email protected]>
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 <[email protected]>
To: 'Vikram Bhagat' <[email protected]>; Tech-Talk <[email protected]>
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: [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
- 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
<2018>
2019
2020
2021
2022
2023
2024
- 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
<2018>
2019
2020
2021
2022
2023
2024