Search code examples
python-3.xbuildrpmrpmbuildrpm-spec

package python to be installed to custom location


My objective is to build a python rpm that can install to custom location on rhel 6 box.

I have take source from https://dl.iuscommunity.org/pub/ius/stable/Redhat/6/SRPMS/python34u-3.4.3-2.ius.el6.src.rpm

rpmbuild with prefix of /tmp/python/new_install succeeded in packaging. When I try to install rpm, I am encountering circular dependency.

Install of ABCpython34u-3.4.3-2.ius.el6.x86_64.rpm gives

error: Failed dependencies:
    ABCpython34u-libs(x86-64) = 3.4.3-2.ius.el6 is needed by ABCpython34u-3.4.3-2.ius.el6.x86_64
    libpython3.4m.so.1.0()(64bit) is needed by ABCpython34u-3.4.3-2.ius.el6.x86_64

Install of ABCpython34u-libs-3.4.3-2.ius.el6.x86_64.rpm gives

error: Failed dependencies:
    /tmp/python/new_install/bin/python3.4 is needed by ABCpython34u-libs-3.4.3-2.ius.el6.x86_64

Any guidance is much appreciated.

Update:

/bin/rpm -i --noscripts -v ABCpython34u-libs-3.4.3-2.ius.el6.x86_64.rpm ABCpython34u-3.4.3-2.ius.el6.x86_64.rpm 2>&1
error: Failed dependencies:
    libpython3.4m.so.1.0()(64bit) is needed by ABCpython34u-3.4.3-2.ius.el6.x86_64

$ rpm -q --provides -p ABCpython34u-libs-3.4.3-2.ius.el6.x86_64.rpm|grep libpython3.4m.so.1.0
libpython3.4m.so.1.0()(64bit)(ABC)

Solution

  • You just need to install them together:

      yum install ./ABCpython34u-3.4.3-2.ius.el6.x86_64.rpm ./ABCpython34u-libs-3.4.3-2.ius.el6.x86_64.rpm
    

    But what you are doing (python in custom location) is very likely wrong. If you want to have recent python on RHEL6 box you very likely want Software Collection:

    https://www.softwarecollections.org/en/

    https://www.softwarecollections.org/en/scls/rhscl/rh-python34/