Archived

This forum has been archived. Please start a new discussion on GitHub.

RHEL 6 install problems

The install instructions for RHEL 6 are not working. Is there another way to get a hold of the appropriate rpms?


mpsbldsvr1 (root) -- /etc/yum.repos.d # yum install ice-all-runtime ice-all-devel --skip-broken
Loaded plugins: downloadonly, product-id, refresh-packagekit, rhnplugin, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
This system is receiving updates from RHN Classic or RHN Satellite.
file:///var/tmp/repo/repodata/repomd.xml: [Errno 14] Could not open/read file:///var/tmp/repo/repodata/repomd.xml
Trying other mirror.
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package ice-all-devel.x86_64 0:3.6.0-1.el6 will be installed
--> Processing Dependency: php-ice-devel(x86-64) = 3.6.0-1.el6 for package: ice-all-devel-3.6.0-1.el6.x86_64
--> Processing Dependency: libice-java(x86-64) = 3.6.0-1.el6 for package: ice-all-devel-3.6.0-1.el6.x86_64
--> Processing Dependency: libice-c++-devel(x86-64) = 3.6.0-1.el6 for package: ice-all-devel-3.6.0-1.el6.x86_64
---> Package ice-all-runtime.x86_64 0:3.6.0-1.el6 will be installed
--> Processing Dependency: php-ice(x86-64) = 3.6.0-1.el6 for package: ice-all-runtime-3.6.0-1.el6.x86_64
--> Processing Dependency: libicestorm3.6(x86-64) = 3.6.0-1.el6 for package: ice-all-runtime-3.6.0-1.el6.x86_64
--> Processing Dependency: libice3.6-c++(x86-64) = 3.6.0-1.el6 for package: ice-all-runtime-3.6.0-1.el6.x86_64
--> Processing Dependency: libfreeze3.6-c++(x86-64) = 3.6.0-1.el6 for package: ice-all-runtime-3.6.0-1.el6.x86_64
--> Processing Dependency: icepatch2(x86-64) = 3.6.0-1.el6 for package: ice-all-runtime-3.6.0-1.el6.x86_64
--> Processing Dependency: icegrid(x86-64) = 3.6.0-1.el6 for package: ice-all-runtime-3.6.0-1.el6.x86_64
--> Processing Dependency: icebox(x86-64) = 3.6.0-1.el6 for package: ice-all-runtime-3.6.0-1.el6.x86_64
--> Processing Dependency: ice-utils-java = 3.6.0-1.el6 for package: ice-all-runtime-3.6.0-1.el6.x86_64
--> Processing Dependency: glacier2(x86-64) = 3.6.0-1.el6 for package: ice-all-runtime-3.6.0-1.el6.x86_64
--> Running transaction check
---> Package glacier2.x86_64 0:3.6.0-1.el6 will be obsoleting
---> Package ice-c++-devel.x86_64 0:3.5.0-1.el6 will be obsoleted
---> Package ice-java.noarch 0:3.5.0-1.el6 will be obsoleted
---> Package ice-java-devel.x86_64 0:3.5.0-1.el6 will be obsoleted
---> Package ice-servers.x86_64 0:3.5.0-1.el6 will be obsoleted
---> Package ice-utils.x86_64 0:3.5.0-1.el6 will be obsoleted
---> Package ice-utils-java.noarch 0:3.6.0-1.el6 will be obsoleting
---> Package icebox.x86_64 0:3.6.0-1.el6 will be obsoleting
--> Processing Dependency: ice-utils = 3.6.0-1.el6 for package: icebox-3.6.0-1.el6.x86_64
---> Package icegrid.x86_64 0:3.6.0-1.el6 will be obsoleting
---> Package icepatch2.x86_64 0:3.6.0-1.el6 will be obsoleting
---> Package libfreeze3.6-c++.x86_64 0:3.6.0-1.el6 will be installed
--> Processing Dependency: db53(x86-64) >= 5.3.28 for package: libfreeze3.6-c++-3.6.0-1.el6.x86_64
---> Package libice-c++-devel.x86_64 0:3.6.0-1.el6 will be obsoleting
--> Processing Dependency: ice-slice = 3.6.0-1.el6 for package: libice-c++-devel-3.6.0-1.el6.x86_64
---> Package libice-java.x86_64 0:3.6.0-1.el6 will be obsoleting
--> Processing Dependency: db53-java(x86-64) >= 5.3.28 for package: libice-java-3.6.0-1.el6.x86_64
---> Package libice3.6-c++.x86_64 0:3.6.0-1.el6 will be installed
--> Processing Dependency: libssl.so.10(libssl.so.10)(64bit) for package: libice3.6-c++-3.6.0-1.el6.x86_64
--> Processing Dependency: libcrypto.so.10(libcrypto.so.10)(64bit) for package: libice3.6-c++-3.6.0-1.el6.x86_64
---> Package libicestorm3.6.x86_64 0:3.6.0-1.el6 will be installed
---> Package php-ice.x86_64 0:3.6.0-1.el6 will be installed
---> Package php-ice-devel.x86_64 0:3.6.0-1.el6 will be installed
--> Running transaction check
---> Package db53.x86_64 0:5.3.21-1ice.el6 will be updated
--> Processing Dependency: db53 = 5.3.21-1ice.el6 for package: db53-devel-5.3.21-1ice.el6.x86_64
--> Processing Dependency: db53 = 5.3.21-1ice.el6 for package: db53-utils-5.3.21-1ice.el6.x86_64
---> Package db53.x86_64 0:5.3.28-1ice.el6 will be an update
---> Package db53-java.x86_64 0:5.3.21-1ice.el6 will be updated
---> Package db53-java.x86_64 0:5.3.28-1ice.el6 will be an update
---> Package ice-slice.noarch 0:3.6.0-1.el6 will be installed
---> Package ice-utils.x86_64 0:3.5.0-1.el6 will be updated
---> Package ice-utils.x86_64 0:3.6.0-1.el6 will be obsoleting
---> Package openssl.x86_64 0:1.0.0-27.el6_4.2 will be updated
--> Processing Dependency: openssl = 1.0.0-27.el6_4.2 for package: openssl-devel-1.0.0-27.el6_4.2.x86_64
---> Package openssl.x86_64 0:1.0.1e-30.el6_6.11 will be an update
--> Running transaction check
---> Package db53-devel.x86_64 0:5.3.21-1ice.el6 will be updated
---> Package db53-devel.x86_64 0:5.3.28-1ice.el6 will be an update
---> Package db53-utils.x86_64 0:5.3.21-1ice.el6 will be updated
---> Package db53-utils.x86_64 0:5.3.28-1ice.el6 will be an update
---> Package openssl-devel.x86_64 0:1.0.0-27.el6_4.2 will be updated
---> Package openssl-devel.x86_64 0:1.0.1e-30.el6_6.11 will be an update
file:///var/tmp/repo/repodata/f1bdc3a90d199ffc2c95f88cbd496d75b217fba3285977586aacf1c4e2a80ba3-filelists.sqlite.bz2: [Errno 14] Could not open/read file:///var/tmp/repo/repodata/f1bdc3a90d199ffc2c95f88cbd496d75b217fba3285977586aacf1c4e2a80ba3-filelists.sqlite.bz2
Trying other mirror.
Error: failure: repodata/f1bdc3a90d199ffc2c95f88cbd496d75b217fba3285977586aacf1c4e2a80ba3-filelists.sqlite.bz2 from localrepo: [Errno 256] No more mirrors to try.
You could try running: rpm -Va --nofiles --nodigest

Comments

  • mes
    mes California
    Hi,

    I just tried performing a Yum update on RHEL6 from Ice 3.5 to Ice 3.6 and it succeeded, so I don't think there's anything wrong with our server or the packages.

    You can browse the package repository here: https://zeroc.com/download/rpm/

    Regards,
    Mark
  • I've installed from downloaded RPMs but now when I executed slice2cpp, I get the following error:

    /usr/bin/slice2cpp: /usr/lib64/libcrypto.so.10: no version information available (required by /usr/lib64/libIceUtil.so.36)

    Any ideas?

    libcrypto.so.10 was already on my system.

    FYI - I'm upgrading from Ice 3.5
  • bernard
    bernard Jupiter, FL
    Hi Dennis,

    Can you upgrade the openssl version on your system, or better, upgrade your system to RHEL 6.6?

    Best regards,
    Bernard
  • I can't upgrade RHEL right now. What version of openssl do I need? I will need to find the rpm online somewhere. Unfortunately, I am unable to use Red Hat repositories for yum.
  • I had to rebuild my local repository which was causing me a problem. Once I did that, I was able to successfully install.
  • Ok. Now that I have everything installed I am getting the following unresolved externals for the library that contains only my sliced *.ice files when I attempt to create an executable:

    /home/acepremier/dev/AP4-CORE/lib/libBtIceInterface.so: undefined reference to `typeinfo for IceInternal::Cpp11FnCallbackNC'
    /home/acepremier/dev/AP4-CORE/lib/libBtIceInterface.so: undefined reference to `IceInternal::Cpp11FnCallbackNC::Cpp11FnCallbackNC(std::function<void ()(IceUtil::Exception const&)> const&, std::function<void ()(bool)> const&)'
    /home/acepremier/dev/AP4-CORE/lib/libBtIceInterface.so: undefined reference to `IceInternal::Cpp11FnCallbackNC::exception(IceInternal::Handle<Ice::AsyncResult> const&, IceUtil::Exception const&) const'
    /home/acepremier/dev/AP4-CORE/lib/libBtIceInterface.so: undefined reference to `vtable for IceInternal::Cpp11FnCallbackNC'
    /home/acepremier/dev/AP4-CORE/lib/libBtIceInterface.so: undefined reference to `IceInternal::Cpp11FnCallbackNC::verify(IceInternal::Handle<Ice::LocalObject> const&)'
    /home/acepremier/dev/AP4-CORE/lib/libBtIceInterface.so: undefined reference to `IceInternal::Cpp11FnCallbackNC::hasSentCallback() const'
    /home/acepremier/dev/AP4-CORE/lib/libBtIceInterface.so: undefined reference to `IceInternal::Cpp11FnCallbackNC::sent(IceInternal::Handle<Ice::AsyncResult> const&) const'

    My code base had been successfully built against Ice 3.5.0, so I know this code builds and executes correctly.

    I've dumped the exported symbols from all the Ice .so files to a text file and I cannot find Cpp11FnCallbackNC exported anywhere. I can see that it's defined in Proxy.h but it is not contained in the /usr/lib64/libIce.so.36 file using the nm command to dump the symbols.

    I've also observed that the libBtIceInterface.so file built with Ice 3.5 did not depend on this symbol but the version built with Ice 3.6 does. It's as if the slice2cpp compiler is creating additional dependencies that were not created with Ice 3.5.

    What am I missing? I must be not slicing my *.ice files correctly or something.
  • mes
    mes California
    Hi,

    Glad to hear you got the installation issues worked out.

    It sounds like you've compiled the code in the BtIceInterface library with C++11 support, but our EL6 RPMs don't include C++11 libraries. If you don't need C++11 support, check your library's build flags for an option such as -std=c++0x. If you do need C++11 support on EL6, you'll need to build Ice from source.

    Regards,
    Mark
  • I was thinking the same thing so I added the option -UICE_CPP11 when slicing my *.ice files with slice2cpp. This was to remove any dependencies on Cpp11FnCallbackNC in my BtIceInterface library. However, that doesn't seem to do anything. I was assuming that it would add a

    #undef ICE_CPP11

    at the top of all my .h files that were generated by slice2cpp in the BtIceInterface directory. It doesn't seem to do that, so I'm still compiling the code within the #ifdef ICE_CPP11/#endif block.

    Am I using the -U option correctly?
  • mes
    mes California
    alverson wrote: »
    Am I using the -U option correctly?
    No, the -U option for the Slice compiler is only passed to our (internal) preprocessor. It doesn't directly affect the generated code. For example, if you pass -DMYOPTION to the Slice compiler, then you can do something like this in your Slice code:
    #if MYOPTION
    // Do something...
    #endif
    

    The ICE_CPP11 macro should only be enabled when you pass -std=c++0x to the C++ compiler while compiling your generated code (see IceUtil/Config.h for the ICE_CPP11 definition).

    Mark
  • Makes sense. One last question regarding this issue:

    I'm curious why this was not a problem with the Ice 3.5.0 RHEL RPMs, since I am using -std=c++11 to currently build my code with no such errors. Did you change the compiler settings when you pre-built the RHEL 6 RPMs for Ice 3.6.0?
  • I appreciate all the info you have provided. Thanks.
  • mes
    mes California
    alverson wrote: »
    Makes sense. One last question regarding this issue:

    I'm curious why this was not a problem with the Ice 3.5.0 RHEL RPMs, since I am using -std=c++11 to currently build my code with no such errors. Did you change the compiler settings when you pre-built the RHEL 6 RPMs for Ice 3.6.0?
    Which version of GCC are you using?
  • gcc version 4.8.1
  • I am going to remove the -std=c++11 when compiling my BtIceInterface library only to see if that does the trick. Otherwise, I will need to compile Ice 3.6 from source.
  • mes
    mes California
    alverson wrote: »
    gcc version 4.8.1
    In Ice 3.5, the ICE_CPP11 macro would be defined automatically if you passed -std=c++0x to the compiler, but not if you passed -std=c++11.

    Mark
  • Removing --std=c++11 when building BtIceInterface worked. There are no longer no undefined externals. Now on to executing the application :)