有馬総一郎のブログ

(彼氏の事情)

2021年12月22日 13:56:50 JST - 2 minute read - Comments - Linux

polybarが`error while loading shared libraries: libjsoncpp.so`とエラーを吐いて実行できなくなった

ある日、気が付いたら、Alter Linux i3wm版の上のバーが表示されていない。

Alter Linux i3wm

~/.config/i3/config に記載されてるpolybarを起動しているシェル/home/arimasou16/.config/polybar/launch.shを叩いてみる。

polybar: error while loading shared libraries: libjsoncpp.so.24: cannot open shared object file: No such file or directory

とのエラー。なんじゃこりゃと思って、その日は寝たが、起きても(rebootしても)再発する。

ググると error while loading shared libraries: libjsoncpp.so.21: cannot open shared object file: No such file or directory · Issue #2051 · polybar/polybar · GitHubが出る。

Known Issues · polybar/polybar Wiki · GitHubを見ても正直、分からん。

Fix: You have to recompile polybar, so that it links to the new .so file. If you use precompiled binaries from a repository, you either have to compile polybar yourself or contact the packager so that they can recompile polybar and publish a package with proper linkage.

Note: If you are using a program to automatically compile polybar for your (for example an AUR helper), just reinstalling may not solve this problem, the program may just reuse already compiled binaries. You need to make sure that polybar is recompiled. How to do that depends on the program, but most offer a way to force a rebuild or a way to clear the cache for certain packages.

とりあえずjsoncppがアップデートしたせいらしく、再ビルドすれば良いらしい。

That’s right. Using yay to get the latest version (polybar-git not polybar) is ok…

とあるので、yay -S polybar-gitする。

:: polybar-git と polybar が衝突しています。polybar を削除しますか? [y/N] y

yes で。

インストール後、実行してみる。

$ /home/arimasou16/.config/polybar/launch.sh
notice: Parsing config file: /home/arimasou16/.config/polybar/config.ini                                                                                                              
notice: Loaded font "SauceCodePro Nerd Font:style=Regular:size=15" (name=SauceCodePro Nerd Font, offset=4, file=/usr/share/fonts/TTF/Sauce Code Pro Nerd Font Complete.ttf)
notice: Loaded font "FontAwesome:style=Regular:size=10" (name=FontAwesome, offset=4, file=/usr/share/fonts/awesome-terminal-fonts/fontawesome-regular.ttf)
notice: Loaded font "Font Awesome 5 FreeRegular:style=Regular:size=10" (name=Font Awesome 5 Free, offset=4, file=/usr/share/fonts/TTF/fa-regular-400.ttf)
$ polybar -v
polybar 3.5.7-219-gf488a889

Features: +alsa +curl +i3 +mpd +network(libnl) +pulseaudio +xkeyboard

成功。直った。

Alter Linux i3wm