最近我在我的笔记本电脑(Dell Precision M4700,16GB RAM)上安装了 Ubuntu 18.04.1,目前它非常纯净。问题是 Evince 3.30.0 在启动时会产生分段错误(核心转储)。自从安装了系统并且清除和重新安装(也通过 Synaptic)没有帮助后,它就发生了。任何想法如何使它工作?
我进入了
~/.local/share/gnome-shell
检查扩展文件夹中的内容 - 它发生了,没有这样的文件夹(根本没有文件夹),/gnome-shell 中的 'ls' 产生:
application_state
切换到另一个(新创建的)用户并在那里运行 Evince 会产生相同的结果。
运行 sudo debsums -s 提供的输出:
debsums: changed file /usr/share/X11/xkb/symbols/pl (from xkb-data package)
这是我手动编辑的文件。将其替换为原始文件(并删除我创建的新用户)我从终端中运行 evince 获得了更多输出:
Attempting to read the recently used resources file at
'/home/january/.local/share/recently-used.xbel', but the parser failed:
Failed to open file “/home/january/.local/share/recently-used.xbel”:
Permission denied.
Segmentation fault (core dumped)
该文件对我的用户有读写权限,但对我的组没有权限。我编辑了这些权限,为我的小组提供读写权限,现在Segmentation fault
就像我之前运行 Evince 时一样。
我还使用 Synaptic 再次清除了 Evince 以安装版本3.28.2-1
(通过 Synaptic)。首先,当我Apply
尝试再次安装 Evince 时使用 GUI 按钮时遇到错误:
E: Unable to correct problems, you have held broken packages.
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.
E: Unable to correct dependencies
E: Unable to lock the download directory.
当我选择Edit->Apply Marked Changes
. 运行 Evince 时重新安装仍会产生 Seg.fault。
运行sudo evince
我得到:
No protocol specified
Unable to init server: Could not connect: Connection refused
Cannot parse arguments: Cannot open display:
由于事情是随机发生的,有时我设法从 GUI 中的 evince 中得到一个错误(你会称之为飞溅吗?),抱歉它太大了,我想包含所有可能的数据。
https://i.imgur.com/Q8zHcV0.jpg
fsck
在恢复根命令行中运行没有产生错误。
几天前我做了memtest,然后我做了一个fsck
,收到了这个结果:
自昨天以来在 evince 3.28.4 上遇到了同样的错误(完全按照描述),没有内存错误,开发人员,检查自昨天以来在 evince 和 4.15.0-43-generic 64 位上的 mod 是什么。检查 /var/log/apt/history.log
在 evince 工作和不工作的日子之间,我有: 这个文件的内容 ,没有引用 evince:amd64 (3.28.4-0ubuntu1) 或任何已安装的库:libevdocument3-4:amd64 (3.28.4- 0ubuntu1)、libgxps2:amd64 (0.3.0-2)、libspectre1:amd64 (0.2.8-1)、libevview3-3:amd64 (3.28.4-0ubuntu1)
没有证据表明ldd命令的输出提供了任何更改的依赖项:
因此,3.28.4 似乎已损坏。
终于解决了这个问题:
并且一切正常,如果我从命令行调用 evince,则会出现一些 gtk 警告。有个缺点,通过安装的 evince 无法访问 /tmp 并且通过 Thunderbird 或 Firefox 打开 pdf 会失败。您必须先保存它。
从评论...
我们遇到了 Evince 的 malloc 错误。
步骤1:
要检查 Ubuntu 分区上的文件系统是否有错误...
sudo fsck -f /
fsck
如果有错误,请重复该命令reboot
如果由于某种原因您不能执行上述操作...
gparted
并确定哪个 /dev/sdaX 是您的 Ubuntu EXT4 分区gparted
terminal
一扇窗sudo fsck -f /dev/sdaX
# 用你之前找到的数字替换 Xreboot
第2步:
启动到 Ubuntu Live DVD/USB 并运行
memtest
一次完整的通行证。更新#1:
正如我所怀疑的那样,Memtest 显示内存故障。移除或更换一些 RAM 棒。