libc.so.7 version FBSD 1.4 required by sudo
pkg コマンドでパッケージ郡をアップデートしたら、一部のコマンドが動作しなくなってしまいました。そのときの、対処方法を紹介します。
$ sudo pkg ... /lib/libc.so.7: version FBSD_1.4 required by /usr/local/bin/sudo
読み方
- libc
- りぶ しー
概要
FreeBSD の pkg コマンドは、パッケージ管理 のためのコマンドです。 pkg コマンドで、インストールされいるパッケージ郡をアップデートできます。
pkgコマンドを利用した際に、システムが使えない状態になってしまったので、参考までに、記録しておきます。
悪夢のはじまり
いつも通り、pkg コマンドでアップデートを実行したところ、いくつかのコマンドが起動しなくなりました。
$ sudo ... /lib/libc.so.7: version FBSD_1.4 required by /usr/local/bin/sudo
pkg は、バイナリパッケージをインストールします。おそらく、私の環境がすでに古かったのでしょう。
sudo 以外に、 vim が起動しませんでした。どのコマンドが動き、どのコマンドが動かないのかは、あまり重要ではありません。動かないコマンドがある、というのが問題でした。
幸い、 su ができたり、コンソールから root でログインできたため、どうにか復旧ができるだろうと考えていました。
世の中の OS の状況
いままで使っていた FreeBSD のバージョンは、それなりに古くなってしまった FreeBSD 10.0-RELEASE でした。
すでに、世の中では、
などが stable でした。
解決策
すでに、後戻りもできない状態になっていたので、前に進むしかありませんでした。 この libc の問題を解決する方法は、おそらく、OS のアップグレードしかないと考えました。
利用しているのが、 10.0 だったため、まず 10.3 まで上げ、その状態を見てから、11.0 へ行くべきか、考えることにしました。
OS のアップデート
FreeBSD では、システムのアップグレードのために freebsd-update と呼ばれるバイナリアップデートのコマンドを提供しています。
やり方
FreeBSD のアップグレードは、やり方は簡単です。以下の4つのコマンドを実行するだけです。
# freebsd-update -r 10.3-RELEASE upgrade # freebsd-update install # shutdown -r now # freebsd-update install
アップグレード後にどうなったのか
freebsd-update で、 FreeBSD 10.3-RELEASE に上げた結果、どうなったのでしょうか? 動かなくなっていた、 sudo や vim が起動するようになりました。
一方で、perl のバージョンが変わってしまったせいか、perl のスクリプトが動かくなるなど、影響もありましたが、それは、システムの問題ではなく、スクリプトの負債返済の話です。
まとめ
いつまでも、同じ環境を使い続けるのは、難しい、というのが今回の件で解りました。pkg コマンドが、なんでもしてくれるわけでもありませんでした。まさか、システムで使えないパッケージが降ってくるとは、夢にも思っていませんでした。
このような自体にならないために、我々にできることは、以下の通りだと思います。
- freebsd-update でシステムを更新し続ける
- pkg でパッケージを更新し続ける
- システム、データのバックアップを取り続ける
関連項目
ツイート