xDroid's Blog

从 pacman 更新的中断中恢复

呃……今天出的事有点多(

大概就是船在 pacman 更新的时候过热关机了……然后重启之后找不到 linux module 的位置了……非常尴尬。

先把睡梦中的大葱摇醒让他帮我刻一个 LiveCD (喂),然后轻车熟路各种 mount。

首先注意到是断电,需要在每个分区上运行 fsck;之后 arch-chroot 进去,本来想直接 pacman -Syu 的,没想到还是得联网(含泪打开了热点,并且暂时把 archlinuxcn 注释掉了 = =)。

比较麻烦的是滚动更新并不顺利,中间出现了这样一些错误:

[2018-12-30 10:44] [ALPM-SCRIPTLET] ldconfig: File /usr/lib/libjavascriptcoregtk-4.0.so.18 is empty, not checked.
[2018-12-30 10:44] [ALPM-SCRIPTLET] ldconfig: File /usr/lib/libgit2-glib-1.0.so is empty, not checked.
...
[2018-12-30 10:44] [ALPM-SCRIPTLET] xetex: error while loading shared libraries: /usr/lib/libharfbuzz-icu.so.0: file too short
[2018-12-30 10:44] [ALPM-SCRIPTLET] fmtutil [ERROR]: running `xetex -ini   -jobname=xetex -progname=xetex -etex xetex.ini </dev/null' return status 127
...

反正……各种报错。

重启之后倒是能进入 lightdm 了,可是没看见 i3bar ,有点慌张。


先解决 pacman 报错的问题(

看论坛上的说法可能是之前断电更新那次的影响,反正 pacman -S --force 一把梭就是了(
(摘自 Arch Linux Wiki)警告: 小心使用 --force 开关。使用不当会造成大问题。 请只在 Arch 新闻里要求这么做的时候才用。

重装了 git gimp webkit2gtk libgit2 libgit2-glib harfbuzz-icu webkit2gtk texlive-core i3,反正怀疑坏的都重装了一下(具体什么命令记不得了,好像是全部重装的错误输出里看到的


(假装解决了上述的问题)

另一个让人困惑的问题是 i3bar 为什么不见了——其实原因很简单,因为

$ i3 --version 
i3 version 4.16 (2018-11-04) © 2009 Michael Stapelberg and contributors
$ i3bar --version 
i3bar version 4.16 (2018-11-04) © 2010 Axel Wagner and contributors
$ i3bar-icons --version 
i3bar version 4.11 (2015-09-30, branch "4.11") © 2010 Axel Wagner and contributors

所以现在用不了 xbm 的图标了……只好拿 icon font 的字符凑活一下(

(挖个坑寒假里研究一下 i3status-rust


于是全盘升级遇到了第二个 bug:在 lyx 里插入图片的时候不能自动转换格式并显示。找来找去发现是 Magick 的锅。

根据 ImageMagick security policy ‘PDF’ blocking conversion 的提示,只要把 /etc/ImageMagick-7/policy.xml 里的

<policy domain="coder" rights="none" pattern="{PS,PS2,PS3,EPS,PDF,XPS}" />

注释了就行。(我:emmm……)