有时在 Void Linux 上,GDK 会由于/usr/share/mime
.
任何 GTK 应用程序都会出现如下错误:
(evince:14593): Gtk-WARNING **: 11:32:26.476: Could not load a pixbuf from icon theme.
This may indicate that pixbuf loaders or the mime database could not be found.
错误的权限通常如下所示(请注意所有文件的模式均为 640):
-rw-r----- 1 root root 10773 Mar 1 13:37 aliases
drwxr-xr-x 1 root root 17650 Mar 1 13:37 application/
drwxr-xr-x 1 root root 1264 Mar 1 13:37 audio/
drwxr-xr-x 1 root root 72 Mar 1 13:37 font/
-rw-r----- 1 root root 21733 Mar 1 13:37 generic-icons
-rw-r----- 1 root root 31371 Mar 1 13:37 globs
-rw-r----- 1 root root 34843 Mar 1 13:37 globs2
-rw-r----- 1 root root 20 Mar 1 13:37 icons
drwxr-xr-x 1 root root 2474 Mar 1 13:37 image/
drwxr-xr-x 1 root root 5868 Mar 1 13:37 inode/
-rw-r----- 1 root root 28142 Mar 1 13:37 magic
drwxr-xr-x 1 root root 216 Mar 1 13:37 message/
-rw-r----- 1 root root 147456 Mar 1 13:37 mime.cache
drwxr-xr-x 1 root root 46 Mar 1 13:37 model/
drwxr-xr-x 1 root root 224 Mar 1 13:37 multipart/
drwxr-xr-x 1 root root 136 Mar 1 13:37 packages/
-rw-r----- 1 root root 17811 Mar 1 13:37 subclasses
drwxr-xr-x 1 root root 3220 Mar 1 13:37 text/
-rw-r----- 1 root root 964 Mar 1 13:37 treemagic
-rw-r----- 1 root root 21842 Mar 1 13:37 types
-rw-r----- 1 root root 5 Mar 1 13:37 version
drwxr-xr-x 1 root root 688 Mar 1 13:37 video/
drwxr-xr-x 1 root root 522 Mar 1 13:37 x-content/
drwxr-xr-x 1 root root 28 Mar 1 13:37 x-epoc/
-rw-r----- 1 root root 1775 Mar 1 13:37 XMLnamespaces
要解决此问题,必须修复权限,然后必须重新生成 mime 数据库和 gdk pixbuf 缓存。
修复权限使文件变为 644 的最佳方法是什么?
答案1
/usr/share/mime
要更改权限 640 到 644 及其以下的所有文件(不包括目录),您可以运行
find /usr/share/mime -type f -perm 640 -exec chmod 644 {} \;
find /usr/share/mime
查找文件在/usr/share/mime
-type f
限制为常规文件(非目录)-perm 640
并将查找限制为权限为 640 的文件-exec chmod 644 {} \;
chmod 644
对找到的文件执行
答案2
解决此特定权限问题的另一种方法是使用正确的 umask 重新生成 mime 数据库:
$ sudo sh
# umask 022
# update-mime-database /usr/share/mime
# exit