gtk-update-icon-cache: The generated cache was invalid.

Arch Linux 安装软件时,出现一个错误提示:gtk-update-icon-cache: The generated cache was invalid. 虽然影响不大,但是看着比较烦。

解决办法:

一、获取图标 icon 的生成路径

编辑 /usr/share/libalpm/scripts/gtk-update-icon-cache,找到 gtk-update-icon-cache -q "$f" 所在行,在上面添加一行输出,使该文件上下几行变成这样:

while read -r f; do
  if [[ -e ${f}index.theme ]]; then
    echo "#debug: gtk-update-icon-cache -q $f"
    gtk-update-icon-cache -q "$f"

上述的 scripts/gtk-update-icon-cache 是 pacman 的安装时钩子,用于更新图标缓存,钩子会调用 gtk-update-icon-cache 进行图标的更新。

添加的这行输出会把 gtk-update-icon-cache 所刷新的缓存目录展示出来。这时请用 pacman 随意安装一个 GUI 软件,触发更新图标钩子时,应该会把出错的目录展示出来,比如我出错的展示如下:

(3/4) Updating icon theme caches...
#debug: gtk-update-icn-cache -q /usr/share/icons/hicolor
gtk-update-icon-cache: The generated cache was invalid.

2、手动检查出错目录下的错误

可以发现 /usr/share/icons/hicolor 目录下有一个叫 index.theme 的文件。gtk-update-icon-cache 会根据此文件,扫描 hicolor 下的所有目录中的所有图标,并生成缓存文件。现已知一些图标文件名不正确会导致 “The generated cache was invalid.”

1)图标名有空格的;

2*)图标名里有中文的;

我安装自定义软件时,放置了一个 hicolor/512x512/apps/课程表.png,此文件导致了生成缓存错误。更换此文件的名字为英文字符后,执行

user@hostname[~]$ sudo gtk-update-icon-cache /usr/share/icons/hicolor
gtk-update-icon-cache: Cache file created successfully.

我的问题就解决了。并且不能使用的图标也能使用了。

还有一种情况是 index.theme 与当前目录结构不匹配,可以参考如下站点进行排查:

参考:

gtk-update-icon-cache:生成的缓存无效 - ubuntu我正在处理一些编辑图标主题,当我想更新图标缓存时出现此错误:gtk-update-icon-cache: The generated cac - AskOverflow.Devicon-default.png?t=N7T8https://askoverflow.dev/ubuntu/question/1080257/gtk-update-icon-cache-the-generated-cache-was-invalid/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值