dpkg 感到困惑,因为我用 sudo rm recursive 手动删除了 spotify 的安装文件

dpkg 感到困惑,因为我用 sudo rm recursive 手动删除了 spotify 的安装文件

因此,我阅读了这篇文章,以了解 Ubuntu 中的软件包和软件包安装的工作原理,以及负责任何应用程序存在的文件(安装文件)在我的文件系统中的什么位置。我了解到,当软件包管理器安装应用程序(例如 spotify)时,它会将不同的文件放在不同的位置,并且通过使用命令

sudo dpkg -L spotify-client

例如,我可以看到 Spotify 应用程序安装文件在文件系统中分散的位置。所以我决定手动删除它们,并练习我刚刚学到的东西(我希望我没有这样做),于是我去了每个地方,并进行了一次灾难性的

sudo rm -r

命令一次删除一个文件。

之后,我以为我的 spotify 会从系统中消失,每个人都会高兴,但每当我尝试安装或删除任何软件包时,我都会看到这个错误

# sudo apt-get install grive
Reading package lists... Done
Building dependency tree       
Reading state information... Done
grive is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 42 not upgraded.
1 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] y
Setting up spotify-client (1:0.9.17.1.g9b85d43.7-1) ...
/var/lib/dpkg/info/spotify-client.postinst: 5: /var/lib/dpkg/info/spotify-client.postinst: ./register.sh: not found
dpkg: error processing package spotify-client (--configure):
 subprocess installed post-installation script returned error exit status 127
Errors were encountered while processing:
 spotify-client
E: Sub-process /usr/bin/dpkg returned an error code (1)

答案1

删除由包安装的文件是总是一个坏主意. 编辑文件/var/lib/dpkg/info/spotify-client.postinst

sudo nano /var/lib/dpkg/info/spotify-client.postinst

并删除该行(如果存在)

set -e

保存并关闭并运行

sudo apt-get purge spotify-client

但正如你所说:

通过使用命令“sudo dpkg -L spotify-client”作为示例,查看 spotify 应用程序安装文件在文件系统中的分散位置。所以我决定手动删除它们

您还可以删除spotify-client中的安装和删除脚本/var/lib/dpkg/info/。您无法破坏更多。

sudo rm /var/lib/dpkg/info/spotify-client.*
sudo apt-get purge spotify-client
sudo apt-get install -f

相关内容