Re: rpm erase or removal of rpms

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

Bill Cunningham wrote:
> I have been trying to use rpm or dnf to remove some rpms.

I'd use dnf.  It provides a much wider safety net.

You can do this with rpm as well, but it requires greater care.

> Here is
> an example of what I have been trying to do, ex:
> 
>     list.txt,
> 
> 
> gcc-devel // example,
> 
> python-devel //example
> 
> rpm -e // would this list content be redirectable to rpm -e ?
> 
> cat list.txt
> 
> lists rpms,
> 
> rpm -e < cat list, or
> 
> cat list | rpm -e
> 
> do not work.

Indeed, rpm doesn't take the list of packages on stdin.  You
can use a number of techniques here (we all develop our
favorite habits, but knowing "there is more than one way to
do it"™ is always handy.

Here's how I setup a test:

    $ printf '%s\n' gcc-devel python-devel >/tmp/list

    $ cat /tmp/list
    gcc-devel
    python-devel

You could use xargs:

    $ xargs sudo dnf remove </tmp/list

This will display the 'dnf remove' output, showing you what
it would do.  Then it will exit immediately because there is
no way for it to read the 'Is this ok [y/N]:' prompt.  You
can run it again with the '-y' option.

Another way to feed the list to dnf (or rpm) is to use
command substitution:

    $ sudo dnf remove $(cat /tmp/list)

Bash¹ has a shortcut for that cat usage which is slightly
faster:

    $ sudo dnf remove $(< /tmp/list)

¹ Other shells likely have this is something similar, but
  I'm not familiar with them offhand

A for loop works too, but that doesn't work very well when
there are interdependent packages in the list (particularly
with rpm, but even with dnf it can cause problems).  It's
also a _lot_ slower to run the rpm or dnf command multiple
times instead of once.

That's just two ways to go about it.  Hopefully they help.

-- 
Todd

Attachment: signature.asc
Description: PGP signature

_______________________________________________
users mailing list -- users@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to users-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/users@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam on the list, report it: https://pagure.io/fedora-infrastructure
[Index of Archives]     [Older Fedora Users]     [Fedora Announce]     [Fedora Package Announce]     [EPEL Announce]     [EPEL Devel]     [Fedora Magazine]     [Fedora Summer Coding]     [Fedora Laptop]     [Fedora Cloud]     [Fedora Advisory Board]     [Fedora Education]     [Fedora Security]     [Fedora Scitech]     [Fedora Robotics]     [Fedora Infrastructure]     [Fedora Websites]     [Anaconda Devel]     [Fedora Devel Java]     [Fedora Desktop]     [Fedora Fonts]     [Fedora Marketing]     [Fedora Management Tools]     [Fedora Mentors]     [Fedora Package Review]     [Fedora R Devel]     [Fedora PHP Devel]     [Kickstart]     [Fedora Music]     [Fedora Packaging]     [Fedora SELinux]     [Fedora Legal]     [Fedora Kernel]     [Fedora OCaml]     [Coolkey]     [Virtualization Tools]     [ET Management Tools]     [Yum Users]     [Yosemite News]     [Gnome Users]     [KDE Users]     [Fedora Art]     [Fedora Docs]     [Fedora Sparc]     [Libvirt Users]     [Fedora ARM]

  Powered by Linux