treedown’s Report

システム管理者に巻き起こる様々な事象を読者の貴方へ報告するブログです。会社でも家庭でも"システム"に携わるすべての方の共感を目指しています。

※https化しました。その影響でしばらくリンク切れなどがあるかもしれませんが徐々に修正していきます。 リンク切れなどのお気づきの点がございましたらコメントなどでご指摘いただけますと助かります。

Debianサーババージョンアップ(Stretchへ)

Debian JessieのLTSは2020年6月30日で終了(リリース年となる2015年から5年後)となるのですが、先日の玄箱Proのバージョンアップに続き、ちょっとづつ進めていくことにしました。
今回別の本体でバージョンアップした時のエラーをご報告。

基本は簡単

基本的にバージョンアップはコマンドをちょっと実行すればバージョンアップ可能です。
Windows10みたいな問題が起きるかどうか分からないという不安をあまり感じさせないバージョンアップ。

「/etc/apt/sources.list」を念のためバックアップしておき、

# cp /etc/apt/sources.list /etc/apt/sources.list.bak

viエディタで「/etc/apt/sources.list」を編集、「jessie」と記載のある箇所を「stretch」に書き換えます。

# vi /etc/apt/sources.list

sources.list編集完了後に、アップデート、アップグレードを実行したら、

# apt-get update
# apt-get upgrade

最後に「dist-upgrade」で完了。

# apt-get dist-upgrade

基本はこれだけです。「apt-get update」後に「apt --simulate upgrade」で実際のアップグレード時の動作を(実際に実行せず)シミュレーションすることもできます。不安な場合には実行しておくと事前に発生するエラーが発見できる(かも)。システムに対する変更は行われませんので時間は掛かるけど「apt --simulate dist-upgrade」も含め、それぞれのアップグレードを実行する前に実施してもいいのかもしれません。
※今回は「apt --simulate upgrade」をやってエラーが出ないのは確認したのですが、「apt --simulate dist-upgrade」をやらなかったので実際に「apt-get dist-upgrade」を実行した際にエラーが出てしまった、という話です。

実際やってみると、エラーが…

今回はsambaとSoftEtherが稼働するRaspberry Pi 3(モデルB+じゃない旧式の方)のOSであるRaspbian Jessie(8.11)のバージョンアップに取り組んでみました。
他で出なかったエラーが最後の「apt-get dist-upgrade」を実行時に発生しました。
画面の最後に、
--------------------------------------------------------------
gconf2 (3.2.6-4) のトリガを処理しています ...
libreoffice-common (1:4.3.3-2+rpi4) のトリガを処理しています ...
sgml-base (1.29) のトリガを処理しています ...
処理中にエラーが発生しました:
samba
E: Sub-process /usr/bin/dpkg returned an error code (1)
--------------------------------------------------------------
これでdist-upgradeが終了してしまいました。
うーん。こんなの、前にあったよ。

blog.treedown.net

このときはinitramfs-toolsがエラーでapt-get upgradeが止まってしまったのですが、今回はsambaが原因で同じエラー「E: Sub-process /usr/bin/dpkg returned an error code (1)」が発生してしまった、と言うことの模様です。
よく見てみると、dist-upgrade途中の画面表示には
--------------------------------------------------------------
5月 01 20:04:11 rasp2 systemd[1]: smbd.service: Unit entered failed state.
5月 01 20:04:11 rasp2 systemd[1]: smbd.service: Failed with result 'core-dump'.
dpkg: パッケージ samba の処理中にエラーが発生しました (--configure):
サブプロセス インストール済みの post-installation スクリプト はエラー終了ステータス 1 を返しました
libsmbclient:armhf (2:4.5.16+dfsg-1+deb9u1) を設定しています ...
--------------------------------------------------------------
「smbd.service: Unit entered failed state.」とか「dpkg: パッケージ samba の処理中にエラーが発生しました (--configure):」とか出力されているのを発見しました。同じエラーと判断してよさそう。

エラー対処

まずは、問題箇所と前回と同じ対処で解決できるかどうかを確認します。

# dpkg --audit
以下のパッケージは最初の設定中に問題が発生したため、設定が終了していません。
samba

と表示されたので、sambaで問題があると判断

前回<玄箱ProバージョンアップDebian Stretchへ - treedown’s Report>やったときと同様に「/var/lib/dpkg/info」配下にあるsamba関連のファイルを移動してしまうことにします。(基本的には削除でOKだけど一応移動させてから、後日削除をしています。※移動先のディレクトリパス(ここでは/home/username/bak-190501)はどこでもOKです。)
# mv /var/lib/dpkg/info/samba.postinst /home/username/bak-190501
# mv /var/lib/dpkg/info/samba.postrm /home/username/bak-190501
# mv /var/lib/dpkg/info/samba.prerm /home/username/bak-190501

こののち、「dpkg --configure samba」を実行したのち、改めて「apt-get dist-upgrade」を再実行しました。

f:id:treedown:20190502161605p:plain
こうして無事バージョンアップを完了。