Why does rpm -i fail on a dependency that I have installed?

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP











up vote
0
down vote

favorite












I tried installing the following package:



[root@localhost ~]# rpm -i libmicrohttpd-0.9.22-1.el7.centos.x86_64.rpm


But I got an error for failed dependencies:



[root@localhost ~]# rpm -i libmicrohttpd-0.9.22-1.el7.centos.x86_64.rpm
error: Failed dependencies:
libgnutls.so.28()(64bit) is needed by libmicrohttpd-0.9.22-1.el7.centos.x86_64
libgnutls.so.28(GNUTLS_1_4)(64bit) is needed by libmicrohttpd-0.9.22-1.el7.centos.x86_64


Naturally I tried installing these dependencies:



[root@localhost ~]# yum install libgnutls.so.28
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.vooservers.com
* epel: pkg.adfinis-sygroup.ch
* extras: mirrors.melbourne.co.uk
* updates: mirrors.melbourne.co.uk
Package gnutls-3.3.26-9.el7.i686 already installed and latest version
Nothing to do


But as you can see above I am told that the package is "already installed" and there is "nothing to do".



This makes no sense to me if the package is already installed then why is the installation of libmicrohttpd-0.9.22-1.el7.centos.x86_64.rpm failing because it can not find this dependency?










share|improve this question

























    up vote
    0
    down vote

    favorite












    I tried installing the following package:



    [root@localhost ~]# rpm -i libmicrohttpd-0.9.22-1.el7.centos.x86_64.rpm


    But I got an error for failed dependencies:



    [root@localhost ~]# rpm -i libmicrohttpd-0.9.22-1.el7.centos.x86_64.rpm
    error: Failed dependencies:
    libgnutls.so.28()(64bit) is needed by libmicrohttpd-0.9.22-1.el7.centos.x86_64
    libgnutls.so.28(GNUTLS_1_4)(64bit) is needed by libmicrohttpd-0.9.22-1.el7.centos.x86_64


    Naturally I tried installing these dependencies:



    [root@localhost ~]# yum install libgnutls.so.28
    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
    * base: mirrors.vooservers.com
    * epel: pkg.adfinis-sygroup.ch
    * extras: mirrors.melbourne.co.uk
    * updates: mirrors.melbourne.co.uk
    Package gnutls-3.3.26-9.el7.i686 already installed and latest version
    Nothing to do


    But as you can see above I am told that the package is "already installed" and there is "nothing to do".



    This makes no sense to me if the package is already installed then why is the installation of libmicrohttpd-0.9.22-1.el7.centos.x86_64.rpm failing because it can not find this dependency?










    share|improve this question























      up vote
      0
      down vote

      favorite









      up vote
      0
      down vote

      favorite











      I tried installing the following package:



      [root@localhost ~]# rpm -i libmicrohttpd-0.9.22-1.el7.centos.x86_64.rpm


      But I got an error for failed dependencies:



      [root@localhost ~]# rpm -i libmicrohttpd-0.9.22-1.el7.centos.x86_64.rpm
      error: Failed dependencies:
      libgnutls.so.28()(64bit) is needed by libmicrohttpd-0.9.22-1.el7.centos.x86_64
      libgnutls.so.28(GNUTLS_1_4)(64bit) is needed by libmicrohttpd-0.9.22-1.el7.centos.x86_64


      Naturally I tried installing these dependencies:



      [root@localhost ~]# yum install libgnutls.so.28
      Loaded plugins: fastestmirror
      Loading mirror speeds from cached hostfile
      * base: mirrors.vooservers.com
      * epel: pkg.adfinis-sygroup.ch
      * extras: mirrors.melbourne.co.uk
      * updates: mirrors.melbourne.co.uk
      Package gnutls-3.3.26-9.el7.i686 already installed and latest version
      Nothing to do


      But as you can see above I am told that the package is "already installed" and there is "nothing to do".



      This makes no sense to me if the package is already installed then why is the installation of libmicrohttpd-0.9.22-1.el7.centos.x86_64.rpm failing because it can not find this dependency?










      share|improve this question













      I tried installing the following package:



      [root@localhost ~]# rpm -i libmicrohttpd-0.9.22-1.el7.centos.x86_64.rpm


      But I got an error for failed dependencies:



      [root@localhost ~]# rpm -i libmicrohttpd-0.9.22-1.el7.centos.x86_64.rpm
      error: Failed dependencies:
      libgnutls.so.28()(64bit) is needed by libmicrohttpd-0.9.22-1.el7.centos.x86_64
      libgnutls.so.28(GNUTLS_1_4)(64bit) is needed by libmicrohttpd-0.9.22-1.el7.centos.x86_64


      Naturally I tried installing these dependencies:



      [root@localhost ~]# yum install libgnutls.so.28
      Loaded plugins: fastestmirror
      Loading mirror speeds from cached hostfile
      * base: mirrors.vooservers.com
      * epel: pkg.adfinis-sygroup.ch
      * extras: mirrors.melbourne.co.uk
      * updates: mirrors.melbourne.co.uk
      Package gnutls-3.3.26-9.el7.i686 already installed and latest version
      Nothing to do


      But as you can see above I am told that the package is "already installed" and there is "nothing to do".



      This makes no sense to me if the package is already installed then why is the installation of libmicrohttpd-0.9.22-1.el7.centos.x86_64.rpm failing because it can not find this dependency?







      software-installation yum rpm






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Sep 28 at 9:31









      MarkMark

      11118




      11118




















          3 Answers
          3






          active

          oldest

          votes

















          up vote
          2
          down vote













          You have installed gnutls-3.3.26-9.el7.i686, but that is not libgnutls.so.28()(64bit), it is 32bits.



          You need to install gnutls-3.3.26-9.el7.x64_86, which is the correct architecture to match what you're trying to install.






          share|improve this answer



























            up vote
            0
            down vote













            Try this,



            You were installing i686 which is a 32-bit library.The error clearly states that libmicrohttpd needs a 64-bit library.



            Refer this link to get the required RPM.



            You can also configure yum via /etc/yum.conf to install the best suited package for the underlying architecture. The parameter to be modified in yum.conf is multilib_policy.



            multilib_policy Can be set to 'all' or 'best'. 
            multilib_policy=all


            All means install all possible arches for any package you want to install. Therefore yum install foo will install foo.i386 and foo.x86_64 on x86_64, if it is available. Best means install the best arch for this platform, only. For more refer this page and this answer.



            To know the underlying archietcture , run
            uname -m






            share|improve this answer






















            • I'm not savvy when it comes to arch types, did not know that i686 was 32-bit. Thank you.
              – MarkMark
              Sep 28 at 9:52










            • @MarkMark added a command to know the underlying architecture of your system.
              – sai sasanka
              Sep 28 at 9:57

















            up vote
            0
            down vote













            it is always a better idea to use yum directly in order to let yum manage the dependencies for you:



            yum install libmicrohttpd-0.9.22-1.el7.centos.x86_64.rpm





            share|improve this answer






















            • Relative path need not be specified for yum like ./
              – sai sasanka
              Sep 28 at 10:40










            • all-right, I changed that. But it does no harm.
              – Chris Maes
              Sep 28 at 10:42










            • No, It harms actually, the yum actually searches for the package named ./libmicrohttpd-0.9.22-1.el7.centos.x86_64.rpm instead of libmicrohttpd-0.9.22-1.el7.centos.x86_64.rpm if ./ is specified and eventually fails saying No package ./libmicrohttpd-0.9.22-1.el7.centos.x86_64.rpm available.
              – sai sasanka
              Sep 28 at 10:43











            • @saisasanka: the user is trying to install a package file, otherwise rpm -i wouldn't even bother. That is why in this case using the relative path would not change anything. You are right that it would fail if you would like yum to search for the package in its repositories.
              – Chris Maes
              Sep 28 at 10:46










            • ok. My thought was, since you mentioned yum, the OP need not even get the specific RPM manually to install via yum and so I suggested the edit. :)
              – sai sasanka
              Sep 28 at 10:49










            Your Answer







            StackExchange.ready(function()
            var channelOptions =
            tags: "".split(" "),
            id: "106"
            ;
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function()
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled)
            StackExchange.using("snippets", function()
            createEditor();
            );

            else
            createEditor();

            );

            function createEditor()
            StackExchange.prepareEditor(
            heartbeatType: 'answer',
            convertImagesToLinks: false,
            noModals: false,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: null,
            bindNavPrevention: true,
            postfix: "",
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            );



            );













             

            draft saved


            draft discarded


















            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f472019%2fwhy-does-rpm-i-package-fail-on-a-dependency-that-i-have-installed%23new-answer', 'question_page');

            );

            Post as a guest






























            3 Answers
            3






            active

            oldest

            votes








            3 Answers
            3






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes








            up vote
            2
            down vote













            You have installed gnutls-3.3.26-9.el7.i686, but that is not libgnutls.so.28()(64bit), it is 32bits.



            You need to install gnutls-3.3.26-9.el7.x64_86, which is the correct architecture to match what you're trying to install.






            share|improve this answer
























              up vote
              2
              down vote













              You have installed gnutls-3.3.26-9.el7.i686, but that is not libgnutls.so.28()(64bit), it is 32bits.



              You need to install gnutls-3.3.26-9.el7.x64_86, which is the correct architecture to match what you're trying to install.






              share|improve this answer






















                up vote
                2
                down vote










                up vote
                2
                down vote









                You have installed gnutls-3.3.26-9.el7.i686, but that is not libgnutls.so.28()(64bit), it is 32bits.



                You need to install gnutls-3.3.26-9.el7.x64_86, which is the correct architecture to match what you're trying to install.






                share|improve this answer












                You have installed gnutls-3.3.26-9.el7.i686, but that is not libgnutls.so.28()(64bit), it is 32bits.



                You need to install gnutls-3.3.26-9.el7.x64_86, which is the correct architecture to match what you're trying to install.







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Sep 28 at 9:39









                wurtel

                9,47511324




                9,47511324






















                    up vote
                    0
                    down vote













                    Try this,



                    You were installing i686 which is a 32-bit library.The error clearly states that libmicrohttpd needs a 64-bit library.



                    Refer this link to get the required RPM.



                    You can also configure yum via /etc/yum.conf to install the best suited package for the underlying architecture. The parameter to be modified in yum.conf is multilib_policy.



                    multilib_policy Can be set to 'all' or 'best'. 
                    multilib_policy=all


                    All means install all possible arches for any package you want to install. Therefore yum install foo will install foo.i386 and foo.x86_64 on x86_64, if it is available. Best means install the best arch for this platform, only. For more refer this page and this answer.



                    To know the underlying archietcture , run
                    uname -m






                    share|improve this answer






















                    • I'm not savvy when it comes to arch types, did not know that i686 was 32-bit. Thank you.
                      – MarkMark
                      Sep 28 at 9:52










                    • @MarkMark added a command to know the underlying architecture of your system.
                      – sai sasanka
                      Sep 28 at 9:57














                    up vote
                    0
                    down vote













                    Try this,



                    You were installing i686 which is a 32-bit library.The error clearly states that libmicrohttpd needs a 64-bit library.



                    Refer this link to get the required RPM.



                    You can also configure yum via /etc/yum.conf to install the best suited package for the underlying architecture. The parameter to be modified in yum.conf is multilib_policy.



                    multilib_policy Can be set to 'all' or 'best'. 
                    multilib_policy=all


                    All means install all possible arches for any package you want to install. Therefore yum install foo will install foo.i386 and foo.x86_64 on x86_64, if it is available. Best means install the best arch for this platform, only. For more refer this page and this answer.



                    To know the underlying archietcture , run
                    uname -m






                    share|improve this answer






















                    • I'm not savvy when it comes to arch types, did not know that i686 was 32-bit. Thank you.
                      – MarkMark
                      Sep 28 at 9:52










                    • @MarkMark added a command to know the underlying architecture of your system.
                      – sai sasanka
                      Sep 28 at 9:57












                    up vote
                    0
                    down vote










                    up vote
                    0
                    down vote









                    Try this,



                    You were installing i686 which is a 32-bit library.The error clearly states that libmicrohttpd needs a 64-bit library.



                    Refer this link to get the required RPM.



                    You can also configure yum via /etc/yum.conf to install the best suited package for the underlying architecture. The parameter to be modified in yum.conf is multilib_policy.



                    multilib_policy Can be set to 'all' or 'best'. 
                    multilib_policy=all


                    All means install all possible arches for any package you want to install. Therefore yum install foo will install foo.i386 and foo.x86_64 on x86_64, if it is available. Best means install the best arch for this platform, only. For more refer this page and this answer.



                    To know the underlying archietcture , run
                    uname -m






                    share|improve this answer














                    Try this,



                    You were installing i686 which is a 32-bit library.The error clearly states that libmicrohttpd needs a 64-bit library.



                    Refer this link to get the required RPM.



                    You can also configure yum via /etc/yum.conf to install the best suited package for the underlying architecture. The parameter to be modified in yum.conf is multilib_policy.



                    multilib_policy Can be set to 'all' or 'best'. 
                    multilib_policy=all


                    All means install all possible arches for any package you want to install. Therefore yum install foo will install foo.i386 and foo.x86_64 on x86_64, if it is available. Best means install the best arch for this platform, only. For more refer this page and this answer.



                    To know the underlying archietcture , run
                    uname -m







                    share|improve this answer














                    share|improve this answer



                    share|improve this answer








                    edited Sep 28 at 10:01

























                    answered Sep 28 at 9:41









                    sai sasanka

                    54219




                    54219











                    • I'm not savvy when it comes to arch types, did not know that i686 was 32-bit. Thank you.
                      – MarkMark
                      Sep 28 at 9:52










                    • @MarkMark added a command to know the underlying architecture of your system.
                      – sai sasanka
                      Sep 28 at 9:57
















                    • I'm not savvy when it comes to arch types, did not know that i686 was 32-bit. Thank you.
                      – MarkMark
                      Sep 28 at 9:52










                    • @MarkMark added a command to know the underlying architecture of your system.
                      – sai sasanka
                      Sep 28 at 9:57















                    I'm not savvy when it comes to arch types, did not know that i686 was 32-bit. Thank you.
                    – MarkMark
                    Sep 28 at 9:52




                    I'm not savvy when it comes to arch types, did not know that i686 was 32-bit. Thank you.
                    – MarkMark
                    Sep 28 at 9:52












                    @MarkMark added a command to know the underlying architecture of your system.
                    – sai sasanka
                    Sep 28 at 9:57




                    @MarkMark added a command to know the underlying architecture of your system.
                    – sai sasanka
                    Sep 28 at 9:57










                    up vote
                    0
                    down vote













                    it is always a better idea to use yum directly in order to let yum manage the dependencies for you:



                    yum install libmicrohttpd-0.9.22-1.el7.centos.x86_64.rpm





                    share|improve this answer






















                    • Relative path need not be specified for yum like ./
                      – sai sasanka
                      Sep 28 at 10:40










                    • all-right, I changed that. But it does no harm.
                      – Chris Maes
                      Sep 28 at 10:42










                    • No, It harms actually, the yum actually searches for the package named ./libmicrohttpd-0.9.22-1.el7.centos.x86_64.rpm instead of libmicrohttpd-0.9.22-1.el7.centos.x86_64.rpm if ./ is specified and eventually fails saying No package ./libmicrohttpd-0.9.22-1.el7.centos.x86_64.rpm available.
                      – sai sasanka
                      Sep 28 at 10:43











                    • @saisasanka: the user is trying to install a package file, otherwise rpm -i wouldn't even bother. That is why in this case using the relative path would not change anything. You are right that it would fail if you would like yum to search for the package in its repositories.
                      – Chris Maes
                      Sep 28 at 10:46










                    • ok. My thought was, since you mentioned yum, the OP need not even get the specific RPM manually to install via yum and so I suggested the edit. :)
                      – sai sasanka
                      Sep 28 at 10:49














                    up vote
                    0
                    down vote













                    it is always a better idea to use yum directly in order to let yum manage the dependencies for you:



                    yum install libmicrohttpd-0.9.22-1.el7.centos.x86_64.rpm





                    share|improve this answer






















                    • Relative path need not be specified for yum like ./
                      – sai sasanka
                      Sep 28 at 10:40










                    • all-right, I changed that. But it does no harm.
                      – Chris Maes
                      Sep 28 at 10:42










                    • No, It harms actually, the yum actually searches for the package named ./libmicrohttpd-0.9.22-1.el7.centos.x86_64.rpm instead of libmicrohttpd-0.9.22-1.el7.centos.x86_64.rpm if ./ is specified and eventually fails saying No package ./libmicrohttpd-0.9.22-1.el7.centos.x86_64.rpm available.
                      – sai sasanka
                      Sep 28 at 10:43











                    • @saisasanka: the user is trying to install a package file, otherwise rpm -i wouldn't even bother. That is why in this case using the relative path would not change anything. You are right that it would fail if you would like yum to search for the package in its repositories.
                      – Chris Maes
                      Sep 28 at 10:46










                    • ok. My thought was, since you mentioned yum, the OP need not even get the specific RPM manually to install via yum and so I suggested the edit. :)
                      – sai sasanka
                      Sep 28 at 10:49












                    up vote
                    0
                    down vote










                    up vote
                    0
                    down vote









                    it is always a better idea to use yum directly in order to let yum manage the dependencies for you:



                    yum install libmicrohttpd-0.9.22-1.el7.centos.x86_64.rpm





                    share|improve this answer














                    it is always a better idea to use yum directly in order to let yum manage the dependencies for you:



                    yum install libmicrohttpd-0.9.22-1.el7.centos.x86_64.rpm






                    share|improve this answer














                    share|improve this answer



                    share|improve this answer








                    edited Sep 28 at 10:41

























                    answered Sep 28 at 10:24









                    Chris Maes

                    9841918




                    9841918











                    • Relative path need not be specified for yum like ./
                      – sai sasanka
                      Sep 28 at 10:40










                    • all-right, I changed that. But it does no harm.
                      – Chris Maes
                      Sep 28 at 10:42










                    • No, It harms actually, the yum actually searches for the package named ./libmicrohttpd-0.9.22-1.el7.centos.x86_64.rpm instead of libmicrohttpd-0.9.22-1.el7.centos.x86_64.rpm if ./ is specified and eventually fails saying No package ./libmicrohttpd-0.9.22-1.el7.centos.x86_64.rpm available.
                      – sai sasanka
                      Sep 28 at 10:43











                    • @saisasanka: the user is trying to install a package file, otherwise rpm -i wouldn't even bother. That is why in this case using the relative path would not change anything. You are right that it would fail if you would like yum to search for the package in its repositories.
                      – Chris Maes
                      Sep 28 at 10:46










                    • ok. My thought was, since you mentioned yum, the OP need not even get the specific RPM manually to install via yum and so I suggested the edit. :)
                      – sai sasanka
                      Sep 28 at 10:49
















                    • Relative path need not be specified for yum like ./
                      – sai sasanka
                      Sep 28 at 10:40










                    • all-right, I changed that. But it does no harm.
                      – Chris Maes
                      Sep 28 at 10:42










                    • No, It harms actually, the yum actually searches for the package named ./libmicrohttpd-0.9.22-1.el7.centos.x86_64.rpm instead of libmicrohttpd-0.9.22-1.el7.centos.x86_64.rpm if ./ is specified and eventually fails saying No package ./libmicrohttpd-0.9.22-1.el7.centos.x86_64.rpm available.
                      – sai sasanka
                      Sep 28 at 10:43











                    • @saisasanka: the user is trying to install a package file, otherwise rpm -i wouldn't even bother. That is why in this case using the relative path would not change anything. You are right that it would fail if you would like yum to search for the package in its repositories.
                      – Chris Maes
                      Sep 28 at 10:46










                    • ok. My thought was, since you mentioned yum, the OP need not even get the specific RPM manually to install via yum and so I suggested the edit. :)
                      – sai sasanka
                      Sep 28 at 10:49















                    Relative path need not be specified for yum like ./
                    – sai sasanka
                    Sep 28 at 10:40




                    Relative path need not be specified for yum like ./
                    – sai sasanka
                    Sep 28 at 10:40












                    all-right, I changed that. But it does no harm.
                    – Chris Maes
                    Sep 28 at 10:42




                    all-right, I changed that. But it does no harm.
                    – Chris Maes
                    Sep 28 at 10:42












                    No, It harms actually, the yum actually searches for the package named ./libmicrohttpd-0.9.22-1.el7.centos.x86_64.rpm instead of libmicrohttpd-0.9.22-1.el7.centos.x86_64.rpm if ./ is specified and eventually fails saying No package ./libmicrohttpd-0.9.22-1.el7.centos.x86_64.rpm available.
                    – sai sasanka
                    Sep 28 at 10:43





                    No, It harms actually, the yum actually searches for the package named ./libmicrohttpd-0.9.22-1.el7.centos.x86_64.rpm instead of libmicrohttpd-0.9.22-1.el7.centos.x86_64.rpm if ./ is specified and eventually fails saying No package ./libmicrohttpd-0.9.22-1.el7.centos.x86_64.rpm available.
                    – sai sasanka
                    Sep 28 at 10:43













                    @saisasanka: the user is trying to install a package file, otherwise rpm -i wouldn't even bother. That is why in this case using the relative path would not change anything. You are right that it would fail if you would like yum to search for the package in its repositories.
                    – Chris Maes
                    Sep 28 at 10:46




                    @saisasanka: the user is trying to install a package file, otherwise rpm -i wouldn't even bother. That is why in this case using the relative path would not change anything. You are right that it would fail if you would like yum to search for the package in its repositories.
                    – Chris Maes
                    Sep 28 at 10:46












                    ok. My thought was, since you mentioned yum, the OP need not even get the specific RPM manually to install via yum and so I suggested the edit. :)
                    – sai sasanka
                    Sep 28 at 10:49




                    ok. My thought was, since you mentioned yum, the OP need not even get the specific RPM manually to install via yum and so I suggested the edit. :)
                    – sai sasanka
                    Sep 28 at 10:49

















                     

                    draft saved


                    draft discarded















































                     


                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function ()
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f472019%2fwhy-does-rpm-i-package-fail-on-a-dependency-that-i-have-installed%23new-answer', 'question_page');

                    );

                    Post as a guest













































































                    Popular posts from this blog

                    How to check contact read email or not when send email to Individual?

                    Bahrain

                    Postfix configuration issue with fips on centos 7; mailgun relay