Difference between revisions of "Building gLExec from src rpm gLite era"
From PDP/Grid Wiki
Jump to navigationJump to search(29 intermediate revisions by the same user not shown) | |||
Line 2: | Line 2: | ||
Different versions can be used, this is a working example and work in progress... | Different versions can be used, this is a working example and work in progress... | ||
− | + | See also [[Building gLExec and its gLite dependencies from SVN source]] for details on how to build directly from CVS source. | |
− | *Yum Installed | + | === General === |
+ | |||
+ | * Tested platforms: Centos-4, Centos-5 | ||
+ | |||
+ | * Yum Installed: | ||
<pre> | <pre> | ||
rpm-build | rpm-build | ||
Line 13: | Line 17: | ||
</pre> | </pre> | ||
− | *For ''64bit'' we also need to yum install (to fulfill a vdt dependency) | + | * For ''64bit'' we also need to yum install (to fulfill a vdt dependency) |
<pre> | <pre> | ||
glibc.i686 | glibc.i686 | ||
</pre> | </pre> | ||
− | * | + | * We need the following extra packages. Installation instructions are split between ''superuser mode'' or ''unprivileged mode'' below: |
''32bit'' | ''32bit'' | ||
[http://eticssoft.web.cern.ch/eticssoft/repository/vdt/globus/4.0.3-VDT-1.6.1/slc4_ia32_gcc346/vdt_globus_essentials-VDT1.6.1x86_rhas_4-9.i386.rpm vdt_globus_essentials-VDT1.6.1x86_rhas_4-9.i386.rpm] | [http://eticssoft.web.cern.ch/eticssoft/repository/vdt/globus/4.0.3-VDT-1.6.1/slc4_ia32_gcc346/vdt_globus_essentials-VDT1.6.1x86_rhas_4-9.i386.rpm vdt_globus_essentials-VDT1.6.1x86_rhas_4-9.i386.rpm] | ||
Line 37: | Line 41: | ||
[http://eticssoft.web.cern.ch/eticssoft/repository/org.glite/org.glite.security.lcmaps/1.4.7/slc4_x86_64_gcc346/glite-security-lcmaps-1.4.7-1.slc4.x86_64.rpm glite-security-lcmaps-1.4.7-1.slc4.x86_64.rpm] | [http://eticssoft.web.cern.ch/eticssoft/repository/org.glite/org.glite.security.lcmaps/1.4.7/slc4_x86_64_gcc346/glite-security-lcmaps-1.4.7-1.slc4.x86_64.rpm glite-security-lcmaps-1.4.7-1.slc4.x86_64.rpm] | ||
− | * | + | === Working as superuser === |
+ | |||
+ | * Either: | ||
+ | ** Install the above packages using <tt>rpm -i</tt> | ||
+ | ** Or instead of using <tt>rpm -i</tt> to install the extra packages, we can for '''''32bit''''' only, setup a Yum repository: | ||
<pre> | <pre> | ||
cat > /etc/yum.repos.d/glite-GLEXEC_wn.repo << EOF | cat > /etc/yum.repos.d/glite-GLEXEC_wn.repo << EOF | ||
Line 48: | Line 56: | ||
yum install glite-security-lcmaps glite-security-lcas glite-security-lcas-interface | yum install glite-security-lcmaps glite-security-lcas glite-security-lcas-interface | ||
</pre> | </pre> | ||
− | Unfortunately [http://eticssoft.web.cern.ch/eticssoft/repository/org.glite/org.glite.build.common-cpp/3.2.1/slc4_ia32_gcc346/org.glite.build.common-cpp-3.2.1-2.slc4.i386.rpm org.glite.build.common-cpp-3.2.1-2.slc4.i386.rpm] still has to be installed by hand from Etics. | + | :Unfortunately [http://eticssoft.web.cern.ch/eticssoft/repository/org.glite/org.glite.build.common-cpp/3.2.1/slc4_ia32_gcc346/org.glite.build.common-cpp-3.2.1-2.slc4.i386.rpm org.glite.build.common-cpp-3.2.1-2.slc4.i386.rpm] still has to be installed by hand from Etics. |
− | *Installed from tarball into /opt/globus: | + | * Installed from tarball into /opt/globus: <tt>tar -C /opt/globus -zxf globus-4.0.3-VDT-1.6.1-9.tar.gz</tt> |
''32bit'' | ''32bit'' | ||
[http://eticssoft.web.cern.ch/eticssoft/repository//vdt/globus/4.0.3-VDT-1.6.1/slc4_ia32_gcc346/globus-4.0.3-VDT-1.6.1-9.tar.gz globus-4.0.3-VDT-1.6.1-9.tar.gz] | [http://eticssoft.web.cern.ch/eticssoft/repository//vdt/globus/4.0.3-VDT-1.6.1/slc4_ia32_gcc346/globus-4.0.3-VDT-1.6.1-9.tar.gz globus-4.0.3-VDT-1.6.1-9.tar.gz] | ||
Line 57: | Line 65: | ||
[http://eticssoft.web.cern.ch/eticssoft/repository//vdt/globus/4.0.3-VDT-1.6.1/slc4_x86_64_gcc346/globus-4.0.3-VDT-1.6.1-9.tar.gz globus-4.0.3-VDT-1.6.1-9.tar.gz] | [http://eticssoft.web.cern.ch/eticssoft/repository//vdt/globus/4.0.3-VDT-1.6.1/slc4_x86_64_gcc346/globus-4.0.3-VDT-1.6.1-9.tar.gz globus-4.0.3-VDT-1.6.1-9.tar.gz] | ||
− | + | Alternatively one can install | |
+ | ''32bit'' | ||
+ | [http://eticssoft.web.cern.ch/eticssoft/repository//vdt/gpt/3.2-VDT-1.6.1/slc4_ia32_gcc346/gpt-3.2_4.0.8p1_x86_rhas_4-1.i386.rpm gpt-3.2_4.0.8p1_x86_rhas_4-1.i386.rpm] | ||
+ | [http://eticssoft.web.cern.ch/eticssoft/repository//vdt/globus/4.0.3-VDT-1.6.1/slc4_ia32_gcc346/vdt_globus_sdk-VDT1.6.1x86_rhas_4-9.i386.rpm vdt_globus_sdk-VDT1.6.1x86_rhas_4-9.i386.rpm] | ||
+ | [http://eticssoft.web.cern.ch/eticssoft/repository//vdt/globus/4.0.7-VDT-1.10.1/slc4_ia32_gcc346/vdt_compile_globus_core-VDT1.10.1_x86_rhas_4-1.i386.rpm vdt_compile_globus_core-VDT1.10.1_x86_rhas_4-1.i386.rpm] | ||
+ | |||
+ | ''64bit'' | ||
+ | [http://eticssoft.web.cern.ch/eticssoft/repository//vdt/gpt/3.2-VDT-1.6.1/slc4_x86_64_gcc346/gpt-3.2_4.0.8p1_x86_64_rhas_4-1.x86_64.rpm gpt-3.2_4.0.8p1_x86_64_rhas_4-1.x86_64.rpm] | ||
+ | [http://eticssoft.web.cern.ch/eticssoft/repository//vdt/globus/4.0.3-VDT-1.6.1/slc4_x86_64_gcc346/vdt_globus_sdk-VDT1.6.1x86_64_rhas_4-9.x86_64.rpm vdt_globus_sdk-VDT1.6.1x86_64_rhas_4-9.x86_64.rpm] | ||
+ | [http://eticssoft.web.cern.ch/eticssoft/repository//vdt/globus/4.0.7-VDT-1.10.1/slc4_x86_64_gcc346/vdt_compile_globus_core-VDT1.10.1_x86_64_rhas_4-1.x86_64.rpm vdt_compile_globus_core-VDT1.10.1_x86_64_rhas_4-1.x86_64.rpm] | ||
+ | |||
+ | which creates the files <tt>/opt/globus/include/gcc*/globus_config.h</tt> using the vdt_compile_globus_core package in the postinstall phase. See also [https://twiki.cern.ch/twiki/bin/view/LCG/GenerateLfcDpmRpms https://twiki.cern.ch/twiki/bin/view/LCG/GenerateLfcDpmRpms] for a way to rebuild the <tt>globus_config.h</tt> files. | ||
− | * | + | *Create <tt>/etc/ld.so.conf.d/glite.conf</tt> and <tt>/etc/ld.so.conf.d/globus.conf</tt>: |
''32bit'' | ''32bit'' | ||
<pre> | <pre> | ||
Line 74: | Line 93: | ||
</pre> | </pre> | ||
− | * | + | * install (<tt>rpm -i</tt>) |
− | [http://etics-repository.cern.ch | + | [http://etics-repository.cern.ch/repository/download/registered/org.glite/org.glite.security.glexec/0.6.8/src/glite-security-glexec-0.6.8-3.src.rpm glite-security-glexec-0.6.8-3.src.rpm] |
+ | or | ||
+ | [http://etics-repository.cern.ch/repository/download/registered/org.glite/org.glite.security.glexec/0.7.0/src/glite-security-glexec-0.7.0-2.src.rpm glite-security-glexec-0.7.0-2.src.rpm] | ||
* patch <tt>/usr/src/redhat/SPECS/glite-security-glexec.spec</tt> | * patch <tt>/usr/src/redhat/SPECS/glite-security-glexec.spec</tt> | ||
Line 116: | Line 137: | ||
</pre> | </pre> | ||
− | *Create rpm: | + | * Create rpm: |
<pre> | <pre> | ||
cd /usr/src/redhat | cd /usr/src/redhat | ||
rpmbuild -bb SPECS/glite-security-glexec.spec | rpmbuild -bb SPECS/glite-security-glexec.spec | ||
+ | </pre> | ||
+ | |||
+ | * The rpm is now found in | ||
+ | <pre> | ||
+ | /usr/src/redhat/RPMS/<platform dependent dir> | ||
</pre> | </pre> | ||
Line 144: | Line 170: | ||
EOF | EOF | ||
</pre> | </pre> | ||
− | '''NOTE''': the %_dbpath setting means this rpm database will be used for all actions. Optionally, one could specify a | + | :'''NOTE''': the %_dbpath setting means this rpm database will be used for all actions. Optionally, one could ''instead'' specify a |
<pre> | <pre> | ||
--dbpath $MYDIR/rpmdb | --dbpath $MYDIR/rpmdb | ||
</pre> | </pre> | ||
− | option to all the following rpm and rpmbuild commands. | + | :option to all the following rpm and rpmbuild commands. |
* Create all the necessary directories: | * Create all the necessary directories: | ||
Line 158: | Line 184: | ||
* Setup LD_LIBRARY_PATH: | * Setup LD_LIBRARY_PATH: | ||
<pre> | <pre> | ||
+ | ''32bit'' | ||
export LD_LIBRARY_PATH=$MYDIR/opt/glite/lib:$MYDIR/opt/globus/lib | export LD_LIBRARY_PATH=$MYDIR/opt/glite/lib:$MYDIR/opt/globus/lib | ||
+ | </pre> | ||
+ | |||
+ | <pre> | ||
+ | ''64bit'' | ||
+ | export LD_LIBRARY_PATH=$MYDIR/opt/glite/lib64:$MYDIR/opt/globus/lib | ||
</pre> | </pre> | ||
* Install all the needed RPMs from the above list: | * Install all the needed RPMs from the above list: | ||
<pre> | <pre> | ||
− | rpm --nodeps --prefix=$MYDIR/opt/globus -i vdt_globus_essentials-VDT1.6.1x86_rhas_4-9. | + | rpm --nodeps --prefix=$MYDIR/opt/globus -i vdt_globus_essentials-VDT1.6.1x86_rhas_4-9.*.rpm |
− | rpm --nodeps --relocate=/=$MYDIR -i glite-security-* | + | rpm --nodeps --relocate=/=$MYDIR -i glite-security-*.rpm org.glite.build.common-cpp* |
+ | </pre> | ||
+ | and | ||
+ | <pre> | ||
rpm -i glite-security-glexec-0.6.8-3.src.rpm | rpm -i glite-security-glexec-0.6.8-3.src.rpm | ||
+ | </pre> | ||
+ | or | ||
+ | <pre> | ||
+ | rpm -i glite-security-glexec-0.7.0-2.src.rpm | ||
</pre> | </pre> | ||
− | * Install the globus tarball: | + | * Install the above globus tarball: |
− | tar -C $MYDIR/opt/globus -zxf | + | <pre> |
+ | tar -C $MYDIR/opt/globus -zxf globus-4.0.3-VDT-1.6.1-9.tar.gz | ||
+ | </pre> | ||
− | * | + | * Patch the <tt>glite-security-glexec.spec</tt>: |
''32bit'' | ''32bit'' | ||
<pre> | <pre> | ||
− | --- SPECS/glite-security-glexec.spec 2009-09-30 17:50:54.000000000 +0200 | + | --- SPECS/glite-security-glexec.spec.orig 2009-09-30 17:50:54.000000000 +0200 |
− | +++ SPECS/glite-security-glexec.spec | + | +++ SPECS/glite-security-glexec.spec 2009-10-02 12:20:32.000000000 +0200 |
@@ -28,14 +28,14 @@ | @@ -28,14 +28,14 @@ | ||
%setup | %setup | ||
Line 224: | Line 265: | ||
</pre> | </pre> | ||
− | *TODO | + | * The rpm is now found in |
− | provide a script which does all the above steps... | + | <pre> |
+ | $MYDIR/usr/src/redhat/RPMS/<platform dependent dir> | ||
+ | </pre> | ||
+ | |||
+ | *'''NOTE''': changing the install directory is now simply changing the | ||
+ | <pre> | ||
+ | Prefix: /opt/glite | ||
+ | </pre> | ||
+ | line in the spec file | ||
+ | |||
+ | === TODO === | ||
+ | * provide a script which does all the above steps... | ||
+ | |||
+ | * Other packages from .src.rpm: LCMAPS etc. |
Latest revision as of 10:19, 29 April 2011
How to build gLExec from a .src.rpm
Different versions can be used, this is a working example and work in progress...
See also Building gLExec and its gLite dependencies from SVN source for details on how to build directly from CVS source.
General
- Tested platforms: Centos-4, Centos-5
- Yum Installed:
rpm-build gcc gcc-c++ make libtool
- For 64bit we also need to yum install (to fulfill a vdt dependency)
glibc.i686
- We need the following extra packages. Installation instructions are split between superuser mode or unprivileged mode below:
32bit vdt_globus_essentials-VDT1.6.1x86_rhas_4-9.i386.rpm org.glite.build.common-cpp-3.2.1-2.slc4.i386.rpm glite-security-voms-api-c-1.8.12-1.slc4.i386.rpm glite-security-voms-api-cpp-1.8.12-1.slc4.i386.rpm glite-security-lcas-interface-1.3.11-1.slc4.i386.rpm glite-security-lcas-1.3.11-2.slc4.i386.rpm glite-security-lcmaps-1.4.7-1.slc4.i386.rpm
64bit vdt_globus_essentials-VDT1.6.1x86_64_rhas_4-9.x86_64.rpm org.glite.build.common-cpp-3.2.1-2.slc4.x86_64.rpm glite-security-voms-api-c-1.8.12-1.slc4.x86_64.rpm glite-security-voms-api-cpp-1.8.12-1.slc4.x86_64.rpm glite-security-lcas-interface-1.3.11-1.slc4.x86_64.rpm glite-security-lcas-1.3.11-2.slc4.x86_64.rpm glite-security-lcmaps-1.4.7-1.slc4.x86_64.rpm
Working as superuser
- Either:
- Install the above packages using rpm -i
- Or instead of using rpm -i to install the extra packages, we can for 32bit only, setup a Yum repository:
cat > /etc/yum.repos.d/glite-GLEXEC_wn.repo << EOF [glite-GLEXEC_wn] name=gLite 3.1 gLExec Worker Node baseurl=http://linuxsoft.cern.ch/EGEE/gLite/R3.1/glite-GLEXEC_wn/sl4/\$basearch/ enabled=1 gpgcheck=0 EOF yum install glite-security-lcmaps glite-security-lcas glite-security-lcas-interface
- Unfortunately org.glite.build.common-cpp-3.2.1-2.slc4.i386.rpm still has to be installed by hand from Etics.
- Installed from tarball into /opt/globus: tar -C /opt/globus -zxf globus-4.0.3-VDT-1.6.1-9.tar.gz
32bit globus-4.0.3-VDT-1.6.1-9.tar.gz
64bit globus-4.0.3-VDT-1.6.1-9.tar.gz
Alternatively one can install
32bit gpt-3.2_4.0.8p1_x86_rhas_4-1.i386.rpm vdt_globus_sdk-VDT1.6.1x86_rhas_4-9.i386.rpm vdt_compile_globus_core-VDT1.10.1_x86_rhas_4-1.i386.rpm
64bit gpt-3.2_4.0.8p1_x86_64_rhas_4-1.x86_64.rpm vdt_globus_sdk-VDT1.6.1x86_64_rhas_4-9.x86_64.rpm vdt_compile_globus_core-VDT1.10.1_x86_64_rhas_4-1.x86_64.rpm
which creates the files /opt/globus/include/gcc*/globus_config.h using the vdt_compile_globus_core package in the postinstall phase. See also https://twiki.cern.ch/twiki/bin/view/LCG/GenerateLfcDpmRpms for a way to rebuild the globus_config.h files.
- Create /etc/ld.so.conf.d/glite.conf and /etc/ld.so.conf.d/globus.conf:
32bit
echo /opt/glite/lib > /etc/ld.so.conf.d/glite.conf echo /opt/globus/lib > /etc/ld.so.conf.d/globus.conf ldconfig
64bit
echo /opt/glite/lib64 > /etc/ld.so.conf.d/glite.conf echo /opt/globus/lib > /etc/ld.so.conf.d/globus.conf ldconfig
- install (rpm -i)
glite-security-glexec-0.6.8-3.src.rpm
or
glite-security-glexec-0.7.0-2.src.rpm
- patch /usr/src/redhat/SPECS/glite-security-glexec.spec
32bit
--- /usr/src/redhat/SPECS/glite-security-glexec.spec.orig 2009-09-30 12:10:03.000000000 +0200 +++ /usr/src/redhat/SPECS/glite-security-glexec.spec 2009-09-30 16:48:57.000000000 +0200 @@ -35,7 +35,7 @@ %install rm -rf $RPM_BUILD_ROOT - make DESTDIR=$RPM_BUILD_ROOTinstall + make install find $RPM_BUILD_ROOT/%{prefix} -name '*.la' -exec rm -rf {} \; %clean
64bit
--- glite-security-glexec.spec.orig 2009-09-30 17:50:54.000000000 +0200 +++ glite-security-glexec.spec 2009-10-01 10:51:46.000000000 +0200 @@ -28,14 +28,14 @@ %setup %build - ./configure --prefix=$RPM_BUILD_ROOT/%{prefix} --with-glite-location=/opt/glite --with-globus-prefix=/opt/globus --with-globus-thr-flavor=gcc32dbgpthr --with-globus-nothr-flavor=gcc32dbg + ./configure --prefix=$RPM_BUILD_ROOT/%{prefix} --with-glite-location=/opt/glite --with-globus-prefix=/opt/globus --with-globus-thr-flavor=gcc64dbgpthr --with-globus-nothr-flavor=gcc64dbg make %install rm -rf $RPM_BUILD_ROOT - make DESTDIR=$RPM_BUILD_ROOTinstall + make install find $RPM_BUILD_ROOT/%{prefix} -name '*.la' -exec rm -rf {} \; %clean
- Create rpm:
cd /usr/src/redhat rpmbuild -bb SPECS/glite-security-glexec.spec
- The rpm is now found in
/usr/src/redhat/RPMS/<platform dependent dir>
- NOTE: changing the install directory is now simply changing the
Prefix: /opt/glite
line in the spec file
Working as unprivileged user
- Setup a working directory, e.g. /tmp/test:
export MYDIR=/tmp/test
- Create a ~/.rpmmacros file:
cat > ~/.rpmmacros << EOF %MYDIR $MYDIR %_dbpath %{MYDIR}/rpmdb %_rpmlock_path %{MYDIR}/tmp/rpmlock %_topdir %{MYDIR}/usr/src/redhat EOF
- NOTE: the %_dbpath setting means this rpm database will be used for all actions. Optionally, one could instead specify a
--dbpath $MYDIR/rpmdb
- option to all the following rpm and rpmbuild commands.
- Create all the necessary directories:
mkdir -p $MYDIR/tmp mkdir -p $MYDIR/usr/src/redhat/{SOURCES,BUILD,RPMS}
- Setup LD_LIBRARY_PATH:
''32bit'' export LD_LIBRARY_PATH=$MYDIR/opt/glite/lib:$MYDIR/opt/globus/lib
''64bit'' export LD_LIBRARY_PATH=$MYDIR/opt/glite/lib64:$MYDIR/opt/globus/lib
- Install all the needed RPMs from the above list:
rpm --nodeps --prefix=$MYDIR/opt/globus -i vdt_globus_essentials-VDT1.6.1x86_rhas_4-9.*.rpm rpm --nodeps --relocate=/=$MYDIR -i glite-security-*.rpm org.glite.build.common-cpp*
and
rpm -i glite-security-glexec-0.6.8-3.src.rpm
or
rpm -i glite-security-glexec-0.7.0-2.src.rpm
- Install the above globus tarball:
tar -C $MYDIR/opt/globus -zxf globus-4.0.3-VDT-1.6.1-9.tar.gz
- Patch the glite-security-glexec.spec:
32bit
--- SPECS/glite-security-glexec.spec.orig 2009-09-30 17:50:54.000000000 +0200 +++ SPECS/glite-security-glexec.spec 2009-10-02 12:20:32.000000000 +0200 @@ -28,14 +28,14 @@ %setup %build - ./configure --prefix=$RPM_BUILD_ROOT/%{prefix} --with-glite-location=/opt/glite --with-globus-prefix=/opt/globus --with-globus-thr-flavor=gcc32dbgpthr --with-globus-nothr-flavor=gcc32dbg + ./configure --prefix=$RPM_BUILD_ROOT/%{prefix} --with-glite-location=%{MYDIR}/opt/glite --with-globus-prefix=%{MYDIR}/opt/globus --with-globus-thr-flavor=gcc32dbgpthr --with-globus-nothr-flavor=gcc32dbg make %install rm -rf $RPM_BUILD_ROOT - make DESTDIR=$RPM_BUILD_ROOTinstall + make install find $RPM_BUILD_ROOT/%{prefix} -name '*.la' -exec rm -rf {} \; %clean
64bit
--- glite-security-glexec.spec.orig 2009-09-30 17:50:54.000000000 +0200 +++ glite-security-glexec.spec 2009-10-01 10:51:46.000000000 +0200 @@ -28,14 +28,14 @@ %setup %build - ./configure --prefix=$RPM_BUILD_ROOT/%{prefix} --with-glite-location=/opt/glite --with-globus-prefix=/opt/globus --with-globus-thr-flavor=gcc32dbgpthr --with-globus-nothr-flavor=gcc32dbg + ./configure --prefix=$RPM_BUILD_ROOT/%{prefix} --with-glite-location=%{MYDIR}/opt/glite --with-globus-prefix=%{MYDIR}/opt/globus --with-globus-thr-flavor=gcc64dbgpthr --with-globus-nothr-flavor=gcc64dbg make %install rm -rf $RPM_BUILD_ROOT - make DESTDIR=$RPM_BUILD_ROOTinstall + make install find $RPM_BUILD_ROOT/%{prefix} -name '*.la' -exec rm -rf {} \; %clean
- Build:
cd $MYDIR/usr/src/redhat rpmbuild -bb SPECS/glite-security-glexec.spec
- The rpm is now found in
$MYDIR/usr/src/redhat/RPMS/<platform dependent dir>
- NOTE: changing the install directory is now simply changing the
Prefix: /opt/glite
line in the spec file
TODO
- provide a script which does all the above steps...
- Other packages from .src.rpm: LCMAPS etc.