是否可以仅使用 list>> grep >> uninstall 中的一个命令来卸载 rpm 软件包?

是否可以仅使用 list>> grep >> uninstall 中的一个命令来卸载 rpm 软件包?

我正在考虑在 CentOS7 上包含 3 个步骤来卸载软件包,但卡在将卸载软件包的合并 3 个命令合并到仅 1 个命令中。

好的,这是我的情况:我有 java 包jdk-8u151-linux-x64.rpm之前安装成功,现在想卸载。
当然,我无法使用命令卸载这个java包:

# rpm -e jdk-8u151-linux-x64.rpm

所以我必须分 3 个步骤使用 3 个命令,如下所示:

  • 第 1 步:我必须通过以下方式找到我安装的软件包的名称:

    [susu@localhost ~]$ rpm -qip jdk-8u151-linux-x64.rpm
    [susu@localhost ~]$ rpm -qip jdk-8u151-linux-x64.rpm
    Name        : jdk1.8
    
  • 步骤2:使用此命令查找确切的包是:

    [susu@localhost ~]$ sudo rpm -qa |grep -i 'jdk1.8'
    [sudo] password for susu: 
    jdk1.8-1.8.0_151-fcs.x86_64
    
  • 第三步:使用rpm -e擦除包:

    rpm -e jdk1.8-1.8.0_151-fcs.x86_64
    

所以我的问题是:如何将步骤 2 和步骤 3 中的命令合并为一个命令?

答案1

查询 NVR 并将其删除。

rpm -e "$(rpm -qp --queryformat '%{name}-%{version}-%{release}' "$1")"

相关内容