什么原因导致已安装的应用程序无法被识别?

什么原因导致已安装的应用程序无法被识别?

我需要将我的 gdb 版本恢复到以前的版本,以便它与某个工具兼容。我目前安装了 gdb 7.7.1。如果我进入gdb终端并按回车键,gdb 就会运行。但是,当我运行 时sudo apt-get remove gdb,它显示以下内容:

$ sudo apt-get remove gdb
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package 'gdb' is not installed, so not removed
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

我使用时也是这种情况sudo dpkg -r gdb。如何修复此问题,以便先识别该程序,然后再将其移除?

Ubuntu 14.04.2 LTS
3.13.0-53-generic

答案1

首先找出gdb使用which命令运行时将执行的二进制文件:

which gdb

它输出的路径类似:/usr/bin/gdb然后我们应该使用以下命令搜索哪个包安装了此文件dpkg

dpkg -S /usr/bin/gdb

甚至:

dpkg -S $(which gdb)

所以它给了我们一个像:这样的包名gdb: /usr/bin/gdb。然后删除该包:sudo apt remove gdb在这种情况下。


另外,您也可以重新安装旧版本,首先查看有哪些版本可用:

apt-cache madison gdb | grep -iv sou
  gdb | 7.11.1-0ubuntu1~16.04 | http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages
  gdb | 7.11-0ubuntu1 | http://archive.ubuntu.com/ubuntu xenial/main amd64 Packages

然后安装旧版本,它将自行处理新版本的删除:

$ sudo apt install gdb=7.11-0ubuntu1

The following packages will be DOWNGRADED:
  gdb
0 upgraded, 0 newly installed, 1 downgraded, 0 to remove and 0 not upgraded.

相关内容