How I installed BCompare on Mageia 6 (x86_64)

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • kbulgrien
    Visitor
    • Jul 2017
    • 5

    How I installed BCompare on Mageia 6 (x86_64)

    $ sudo urpmi bcompare-4.2.2.22384.x86_64.rpm
    A requested package cannot be installed:
    bcompare-4.2.2-22384.x86_64 (due to unsatisfied qt-x11)

    Normally in a situation like this the urpmi utility would offer to install the missing dependency, but it did not. Apparently nothing in Mageia 6 fulfills something called "qt-x11", so it is left to me to resolve missing dependencies. Use of the tarball allows me to use tools that show which shared objects are missing:

    $ tar -xzf bcompare-4.2.2.22384.x86_64.tar.gz

    $ cd bcompare-4.2.2.22384

    $ ./BCompare
    ./BCompare: error while loading shared libraries: libbz2.so.1.0: cannot open shared object file: No such file or directory

    $ strace ./BCompare
    ...
    open("/usr/lib64/lib7z.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
    ...

    $ ls -l /usr/lib64/libbz2*
    lrwxrwxrwx 1 root root 15 Nov 24 2016 /usr/lib64/libbz2.so.1 -> libbz2.so.1.0.6*
    -rwxr-xr-x 1 root root 68232 Nov 24 2016 /usr/lib64/libbz2.so.1.0.6*

    $ sudo ln -s /usr/lib64/libbz2.so.1.0.6 /usr/lib64/libbz2.so.1.0

    $ ./BCompare
    ./BCompare: error while loading shared libraries: lib7z.so: cannot open shared object file: No such file or directory

    $ strace ./BCompare
    ...
    open("/usr/lib64/lib7z.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
    ...

    $ urpmq --fuzzy 7z
    j7z
    j7z-kde4
    j7z-plasma5
    p7zip

    $ urpmq -l p7zip
    ...
    /usr/lib64/p7zip/7z.so
    ...

    $ sudo urpmi p7zip
    Package p7zip-16.02-2.mga6.x86_64 is already installed
    Marking p7zip as manually installed, it won't be auto-orphaned
    writing /var/lib/rpm/installed-through-deps.list

    $ sudo ln -s /usr/lib64/p7zip/7z.so /usr/lib64/lib7z.so

    $ ./BCompare
    ./BCompare: error while loading shared libraries: libQt4Pas.so.5: cannot open shared object file: No such file or directory

    $ urpmq --fuzzy qt4
    ...
    qt4pas
    ...

    $ sudo urpmq -l qt4pas
    http://mirrors.kernel.org/mageia/dis...files.xml.lzma
    http://mirrors.kernel.org/mageia/dis...files.xml.lzma
    $MIRRORLIST: media/core/release/media_info/20170714-192548-files.xml.lzma
    /usr/lib64/libQt4Pas.so.5

    $ sudo urpmi qt4pas

    $ ./BCompare

    Success...

    It seems preferable to use the RPM, so attempt installation now that dependencies are resolved:

    $ sudo urpmi bcompare-4.2.2.22384.x86_64.rpm
    A requested package cannot be installed:
    bcompare-4.2.2-22384.x86_64 (due to unsatisfied qt-x11)

    Unfortunately, even though I resolved the dependencies, the bcompare RPM does not realize I have done so... It appears, then, that --allow-nodeps, is the most straight-forward workaround since I have proven I have all the required dependencies installed:

    $ sudo urpmi --allow-nodeps bcompare-4.2.2.22384.x86_64.rpm
    WARNING: --allow-nodeps option is in use. Some strange problems may happen


    warning: bcompare-4.2.2.22384.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID 7f8840ce: NOKEY
    The following package has bad signature:
    bcompare-4.2.2.22384.x86_64.rpm: Invalid signature (NOT OK (no key): bcompare-4.2.2.22384.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID 7f8840ce: NOKEY)
    Do you want to continue installation ? (y/N) Y
    installing bcompare-4.2.2.22384.x86_64.rpm
    Installation failed:
    qt-x11 is needed by bcompare-4.2.2-22384.x86_64
    Try installation without checking dependencies? (y/N) y
    Preparing... ################################################## ################
    1/1: bcompare ################################################## ################
    error: can't create transaction lock on /var/lib/rpm/__db.000 (Resource temporarily unavailable)
    error: /usr/lib64/beyondcompare/RPM-GPG-KEY-scootersoftware: key 1 import failed.

    Since error messages occurred, determine whether installation succeeded:

    $ rpm -qa | grep -i compare
    bcompare-4.2.2-22384

    Remove the expanded tarball because use of the RPM is preferred:

    $ cd ..
    $ rm -rf bcompare-4.2.2.22384

    Test the RPM installation...

    $ bcompare

    Success...
    Last edited by kbulgrien; 21-Jul-2017, 10:55 AM. Reason: Annotate to show why --allow-nodeps was used/required. Explain better why the tarball is used.
  • Aaron
    Team Scooter
    • Oct 2007
    • 15997

    #2
    Hello,

    Mageia 6 is not one of our supported distributions, so we have not tested installation on it:
    http://www.scootersoftware.com/download.php?zz=kb_linux

    If it supports .rpm installers, I would recommend using that instead of the .tar.gz. That will help resolve dependencies. From the log above, you do need qt-x11. Why are you running the installer with --allow-nodeps? Any dependencies that Beyond Compare 4 asks for are not optional; they are required to run the program.
    Aaron P Scooter Software

    Comment

    • kbulgrien
      Visitor
      • Jul 2017
      • 5

      #3
      It was clear Mageia 6 was not supported, hence the post to help anyone else in the same predicament I found myself in.

      I have used Beyond Compare 4 on Mageia 5 / 5.1 successfully so I am not afraid of compatibility issues.

      From the original post, it is clear that the .rpm install was attempted first. It didn't work, and it only identified qt-x11 as a requirement - none of the other dependencies were listed. Normally in a situation like this the urpmi utility would have offered to install the missing dependency, but it did not. Apparently nothing in Mageia 6 fulfills something called "qt-x11", so it was left up to me to resolve missing dependencies. Also, as I'd far rather have all the dependencies resolved even if the RPM doesn't strictly require everything, using the tarball was how I determined every dependency whether they were literally fulfilled on the target machine or not. As you can see, I had some of the dependencies already installed, and had to manually create soft links to shared objects with slightly different names than BCompare expected, or to allow BCompare to find installed shared objects that were in different directories than it apparently expected to find them in.

      In the original post it is also clear that I removed the tarball and attempted install of the .rpm again. Unfortunately I forgot to show in the original post that even though I had met all the dependencies, the rpm refused to install due to "missing qt-x11" when in fact the required resource was not missing.

      $ sudo urpmi bcompare-4.2.2.22384.x86_64.rpm
      A requested package cannot be installed:
      bcompare-4.2.2-22384.x86_64 (due to unsatisfied qt-x11)

      To use the rpm I was forced to use --no-deps to install it because nothing in Mageia 6 satisfies qt-x11 even though a Mageia 6 package obviously does fulfill the underlying technical requirement. Whether this is a bug in some Magiea 6 package or not, I don't know. I had installed the Linux Standard Base requirements - which one would suppose should have improved chances of installing foreign RPMs.
      Last edited by kbulgrien; 21-Jul-2017, 11:11 AM. Reason: Clarify requirement and benefits of using the tarball to resolve dependencies. Clarify "link" as soft links.

      Comment

      • kbulgrien
        Visitor
        • Jul 2017
        • 5

        #4
        I fixed the original post to make it more clear why --allow-nodeps was used/required, and to try to explain more clearly why the tarball was used.

        Even though this post is for Mageia 6, it describes a technique that could be used to get Beyond Compare 4 working on other "unsupported" distributions. This was the goal of posting to the forums. Maybe the thread title should change to more clearly indicate that fact?
        Last edited by kbulgrien; 21-Jul-2017, 10:44 AM. Reason: Note that this thread was intended to show a way to install BC4 on an "unsupported" distribution.

        Comment

        Working...