yum - check if package already installed

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











up vote
5
down vote

favorite
1












When I run yum install <X> where <X> has already been installed, yum exits with a return status of 1 and prints "Error: Nothing to do".



Aside from checking for this string in the output (which seems like a very shaky thing to base my script on), is there some way I can test whether the package already exists? Clearly, yum knows whether or not it already exists, since it's throwing that error, but how can I access that knowledge?



To add to this, some of the packages are downloaded by way of URLs, not package names, so checking yum list installed doesn't work.







share|improve this question
















  • 1




    yum knows by querying the rpm database. for example
    – Bratchley
    Mar 25 '15 at 18:09










  • @Bratchley Is there a way to get that name from a package url?
    – AmadeusDrZaius
    Mar 25 '15 at 18:13










  • You should be able to give rpm a full URL to the RPM you're interested in. Example which will give you the package name. One note would be that it uses wget internally but seems to silently suppress errors.
    – Bratchley
    Mar 25 '15 at 18:17











  • @taliezin that's roughly equivalent to rpm -qa packageName except it's printed in a way that makes it look like yum output.
    – Bratchley
    Mar 25 '15 at 18:18










  • @Bratchley, sorry i saw the link later, but I deleted it.
    – taliezin
    Mar 25 '15 at 18:25














up vote
5
down vote

favorite
1












When I run yum install <X> where <X> has already been installed, yum exits with a return status of 1 and prints "Error: Nothing to do".



Aside from checking for this string in the output (which seems like a very shaky thing to base my script on), is there some way I can test whether the package already exists? Clearly, yum knows whether or not it already exists, since it's throwing that error, but how can I access that knowledge?



To add to this, some of the packages are downloaded by way of URLs, not package names, so checking yum list installed doesn't work.







share|improve this question
















  • 1




    yum knows by querying the rpm database. for example
    – Bratchley
    Mar 25 '15 at 18:09










  • @Bratchley Is there a way to get that name from a package url?
    – AmadeusDrZaius
    Mar 25 '15 at 18:13










  • You should be able to give rpm a full URL to the RPM you're interested in. Example which will give you the package name. One note would be that it uses wget internally but seems to silently suppress errors.
    – Bratchley
    Mar 25 '15 at 18:17











  • @taliezin that's roughly equivalent to rpm -qa packageName except it's printed in a way that makes it look like yum output.
    – Bratchley
    Mar 25 '15 at 18:18










  • @Bratchley, sorry i saw the link later, but I deleted it.
    – taliezin
    Mar 25 '15 at 18:25












up vote
5
down vote

favorite
1









up vote
5
down vote

favorite
1






1





When I run yum install <X> where <X> has already been installed, yum exits with a return status of 1 and prints "Error: Nothing to do".



Aside from checking for this string in the output (which seems like a very shaky thing to base my script on), is there some way I can test whether the package already exists? Clearly, yum knows whether or not it already exists, since it's throwing that error, but how can I access that knowledge?



To add to this, some of the packages are downloaded by way of URLs, not package names, so checking yum list installed doesn't work.







share|improve this question












When I run yum install <X> where <X> has already been installed, yum exits with a return status of 1 and prints "Error: Nothing to do".



Aside from checking for this string in the output (which seems like a very shaky thing to base my script on), is there some way I can test whether the package already exists? Clearly, yum knows whether or not it already exists, since it's throwing that error, but how can I access that knowledge?



To add to this, some of the packages are downloaded by way of URLs, not package names, so checking yum list installed doesn't work.









share|improve this question











share|improve this question




share|improve this question










asked Mar 25 '15 at 18:06









AmadeusDrZaius

6921816




6921816







  • 1




    yum knows by querying the rpm database. for example
    – Bratchley
    Mar 25 '15 at 18:09










  • @Bratchley Is there a way to get that name from a package url?
    – AmadeusDrZaius
    Mar 25 '15 at 18:13










  • You should be able to give rpm a full URL to the RPM you're interested in. Example which will give you the package name. One note would be that it uses wget internally but seems to silently suppress errors.
    – Bratchley
    Mar 25 '15 at 18:17











  • @taliezin that's roughly equivalent to rpm -qa packageName except it's printed in a way that makes it look like yum output.
    – Bratchley
    Mar 25 '15 at 18:18










  • @Bratchley, sorry i saw the link later, but I deleted it.
    – taliezin
    Mar 25 '15 at 18:25












  • 1




    yum knows by querying the rpm database. for example
    – Bratchley
    Mar 25 '15 at 18:09










  • @Bratchley Is there a way to get that name from a package url?
    – AmadeusDrZaius
    Mar 25 '15 at 18:13










  • You should be able to give rpm a full URL to the RPM you're interested in. Example which will give you the package name. One note would be that it uses wget internally but seems to silently suppress errors.
    – Bratchley
    Mar 25 '15 at 18:17











  • @taliezin that's roughly equivalent to rpm -qa packageName except it's printed in a way that makes it look like yum output.
    – Bratchley
    Mar 25 '15 at 18:18










  • @Bratchley, sorry i saw the link later, but I deleted it.
    – taliezin
    Mar 25 '15 at 18:25







1




1




yum knows by querying the rpm database. for example
– Bratchley
Mar 25 '15 at 18:09




yum knows by querying the rpm database. for example
– Bratchley
Mar 25 '15 at 18:09












@Bratchley Is there a way to get that name from a package url?
– AmadeusDrZaius
Mar 25 '15 at 18:13




@Bratchley Is there a way to get that name from a package url?
– AmadeusDrZaius
Mar 25 '15 at 18:13












You should be able to give rpm a full URL to the RPM you're interested in. Example which will give you the package name. One note would be that it uses wget internally but seems to silently suppress errors.
– Bratchley
Mar 25 '15 at 18:17





You should be able to give rpm a full URL to the RPM you're interested in. Example which will give you the package name. One note would be that it uses wget internally but seems to silently suppress errors.
– Bratchley
Mar 25 '15 at 18:17













@taliezin that's roughly equivalent to rpm -qa packageName except it's printed in a way that makes it look like yum output.
– Bratchley
Mar 25 '15 at 18:18




@taliezin that's roughly equivalent to rpm -qa packageName except it's printed in a way that makes it look like yum output.
– Bratchley
Mar 25 '15 at 18:18












@Bratchley, sorry i saw the link later, but I deleted it.
– taliezin
Mar 25 '15 at 18:25




@Bratchley, sorry i saw the link later, but I deleted it.
– taliezin
Mar 25 '15 at 18:25










2 Answers
2






active

oldest

votes

















up vote
5
down vote



accepted










In your script use rpm -q packagename:



if rpm -q vim-enhanced
then
...
else
...
fi





share|improve this answer




















  • Thanks, this worked well. I had to manually fiddle with the package name for packages which were obtained through urls, but other than that, it went smoothly.
    – AmadeusDrZaius
    Mar 26 '15 at 0:38






  • 1




    I'm happy it worked. Sometimes package names can be tricky. I wish package names were slightly more normalized...
    – JJoao
    Mar 26 '15 at 6:32

















up vote
3
down vote













You can try:



#yum list installed | grep tmux
tmux.x86_64 1.9a-5.fc21 @updates


or:



#yum list installed tmux
Loaded plugins: langpacks
Installed Packages
tmux.x86_64 1.9a-5.fc21 @updates


Without grep you get some extra lines, but both outputs can be piped through some text editor according to your needs.






share|improve this answer




















    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%2f192473%2fyum-check-if-package-already-installed%23new-answer', 'question_page');

    );

    Post as a guest






























    2 Answers
    2






    active

    oldest

    votes








    2 Answers
    2






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes








    up vote
    5
    down vote



    accepted










    In your script use rpm -q packagename:



    if rpm -q vim-enhanced
    then
    ...
    else
    ...
    fi





    share|improve this answer




















    • Thanks, this worked well. I had to manually fiddle with the package name for packages which were obtained through urls, but other than that, it went smoothly.
      – AmadeusDrZaius
      Mar 26 '15 at 0:38






    • 1




      I'm happy it worked. Sometimes package names can be tricky. I wish package names were slightly more normalized...
      – JJoao
      Mar 26 '15 at 6:32














    up vote
    5
    down vote



    accepted










    In your script use rpm -q packagename:



    if rpm -q vim-enhanced
    then
    ...
    else
    ...
    fi





    share|improve this answer




















    • Thanks, this worked well. I had to manually fiddle with the package name for packages which were obtained through urls, but other than that, it went smoothly.
      – AmadeusDrZaius
      Mar 26 '15 at 0:38






    • 1




      I'm happy it worked. Sometimes package names can be tricky. I wish package names were slightly more normalized...
      – JJoao
      Mar 26 '15 at 6:32












    up vote
    5
    down vote



    accepted







    up vote
    5
    down vote



    accepted






    In your script use rpm -q packagename:



    if rpm -q vim-enhanced
    then
    ...
    else
    ...
    fi





    share|improve this answer












    In your script use rpm -q packagename:



    if rpm -q vim-enhanced
    then
    ...
    else
    ...
    fi






    share|improve this answer












    share|improve this answer



    share|improve this answer










    answered Mar 25 '15 at 23:36









    JJoao

    6,7111826




    6,7111826











    • Thanks, this worked well. I had to manually fiddle with the package name for packages which were obtained through urls, but other than that, it went smoothly.
      – AmadeusDrZaius
      Mar 26 '15 at 0:38






    • 1




      I'm happy it worked. Sometimes package names can be tricky. I wish package names were slightly more normalized...
      – JJoao
      Mar 26 '15 at 6:32
















    • Thanks, this worked well. I had to manually fiddle with the package name for packages which were obtained through urls, but other than that, it went smoothly.
      – AmadeusDrZaius
      Mar 26 '15 at 0:38






    • 1




      I'm happy it worked. Sometimes package names can be tricky. I wish package names were slightly more normalized...
      – JJoao
      Mar 26 '15 at 6:32















    Thanks, this worked well. I had to manually fiddle with the package name for packages which were obtained through urls, but other than that, it went smoothly.
    – AmadeusDrZaius
    Mar 26 '15 at 0:38




    Thanks, this worked well. I had to manually fiddle with the package name for packages which were obtained through urls, but other than that, it went smoothly.
    – AmadeusDrZaius
    Mar 26 '15 at 0:38




    1




    1




    I'm happy it worked. Sometimes package names can be tricky. I wish package names were slightly more normalized...
    – JJoao
    Mar 26 '15 at 6:32




    I'm happy it worked. Sometimes package names can be tricky. I wish package names were slightly more normalized...
    – JJoao
    Mar 26 '15 at 6:32












    up vote
    3
    down vote













    You can try:



    #yum list installed | grep tmux
    tmux.x86_64 1.9a-5.fc21 @updates


    or:



    #yum list installed tmux
    Loaded plugins: langpacks
    Installed Packages
    tmux.x86_64 1.9a-5.fc21 @updates


    Without grep you get some extra lines, but both outputs can be piped through some text editor according to your needs.






    share|improve this answer
























      up vote
      3
      down vote













      You can try:



      #yum list installed | grep tmux
      tmux.x86_64 1.9a-5.fc21 @updates


      or:



      #yum list installed tmux
      Loaded plugins: langpacks
      Installed Packages
      tmux.x86_64 1.9a-5.fc21 @updates


      Without grep you get some extra lines, but both outputs can be piped through some text editor according to your needs.






      share|improve this answer






















        up vote
        3
        down vote










        up vote
        3
        down vote









        You can try:



        #yum list installed | grep tmux
        tmux.x86_64 1.9a-5.fc21 @updates


        or:



        #yum list installed tmux
        Loaded plugins: langpacks
        Installed Packages
        tmux.x86_64 1.9a-5.fc21 @updates


        Without grep you get some extra lines, but both outputs can be piped through some text editor according to your needs.






        share|improve this answer












        You can try:



        #yum list installed | grep tmux
        tmux.x86_64 1.9a-5.fc21 @updates


        or:



        #yum list installed tmux
        Loaded plugins: langpacks
        Installed Packages
        tmux.x86_64 1.9a-5.fc21 @updates


        Without grep you get some extra lines, but both outputs can be piped through some text editor according to your needs.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Mar 25 '15 at 18:24









        petry

        6631411




        6631411






















             

            draft saved


            draft discarded


























             


            draft saved


            draft discarded














            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f192473%2fyum-check-if-package-already-installed%23new-answer', 'question_page');

            );

            Post as a guest













































































            Popular posts from this blog

            Peggy Mitchell

            Palaiologos

            The Forum (Inglewood, California)