ra_risu
@ra_risu

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

Raspberry Pi 4をsudo apt autoremoveしたらOSが勝手にDebian12になった

解決したいこと

Raspberry Piでsudo apt autoremoveしたらOSが勝手にDebian12になったので戻したい。
最悪デスクトップに保存していたPythonのソースコードは復旧したい。

環境

OS:Raspberry Pi OS
ハード:Raspberry Pi 4B

経緯

Raspberry PiからWindows Serverのファイルにマウントして、
センサから読み取った値をCSVファイルで保存しようとしていたが、
接続が2分程度で切れてしまう。
journalctlを読むと、認証が上手くいっていないようだったので、

sudo apt-get remove policykit-1
sudo apt-get install policykit-1
sudo apt autoremove
sudo reboot

した。
そうすると、再起動したときには見覚えのない緑青のログイン画面が。
なんだこれと思って普段利用しているIDとパスワードでログインすると、そこには何もないデスクトップ画面が。
理解不能。

慌てた私はなんとかターミナルを開いて

cat /etc/issue

するとそこには
「Debian GNU/Linux 12 \n \l」とあるではないか。
なぜautoremoveしただけでOSが吹き飛ぶのか、全く分からない。

上級者の皆様の知見をお借りしたく、投稿させていただきました。
最悪Pythonのコードなどはバックアップがあるので、原因さえわかれば繰り返さずに済むので助かります。

よろしくお願いします。

0

5Answer

apt removeを実行すると、指定したパッケージだけでなく、そのパッケージに依存しているパッケージも削除されます。
(依存している=そのパッケージがなければ動かないわけですから、当然です)
この辺りは、コマンドを実行する際にメッセージが出たと思います。

ですので、その後に「apt install policykit-1」を実行しても、その際に削除された依存パッケージは元に戻りません。

試しにubuntu22.04で「apt remove policykit-1」を実行すると、以下のようにメッセージが出力されました。

パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了        
状態情報を読み取っています... 完了        
以下のパッケージが自動でインストールされましたが、もう必要とされていません:
  apg aptdaemon-data apturl-common colord-data dns-root-data dnsmasq-base
  gir1.2-goa-1.0 gir1.2-snapd-1 gir1.2-vte-2.91 gnome-control-center-faces
  gnome-online-accounts libcolord-gtk1 libcolorhug2 libfprint-2-2
  libgoa-backend-1.0-1 libgsound0 libgssdp-1.2-0 libgupnp-1.2-1
  libgupnp-av-1.0-3 libgupnp-dlna-2.0-4 libndp0 libpcre2-32-0
  libpkcs11-helper1 librygel-core-2.6-2 librygel-db-2.6-2
  librygel-renderer-2.6-2 librygel-server-2.6-2 libsysmetrics1 libtcl8.6
  libteamdctl0 mobile-broadband-provider-info openvpn patch pkexec polkitd ppp
  pptp-linux python3-certifi python3-dateutil python3-debconf python3-defer
  python3-macaroonbakery python3-protobuf python3-pymacaroons python3-requests
  python3-rfc3339 python3-software-properties python3-tz rygel tcl tcl8.6
  ubuntu-advantage-desktop-daemon unattended-upgrades update-notifier-common
  usb-modeswitch usb-modeswitch-data
これを削除するには 'sudo apt autoremove' を利用してください。
以下の追加パッケージがインストールされます:
  gir1.2-gdm-1.0 libgdm1 python3-distupgrade python3-software-properties
  python3-update-manager ubuntu-advantage-tools ubuntu-pro-client
  ubuntu-release-upgrader-core update-manager-core update-notifier-common
提案パッケージ:
  policykit-1
推奨パッケージ:
  ubuntu-pro-client-l10n
以下のパッケージは「削除」されます:
  aptdaemon apturl brltty colord fprintd gdm3 gnome-control-center
  gnome-initial-setup gstreamer1.0-packagekit language-selector-gnome
  libpam-fprintd modemmanager nautilus-share network-manager
  network-manager-config-connectivity-ubuntu network-manager-gnome
  network-manager-openvpn network-manager-openvpn-gnome network-manager-pptp
  network-manager-pptp-gnome packagekit packagekit-tools policykit-1
  python3-aptdaemon python3-aptdaemon.gtk3widgets rtkit
  software-properties-common software-properties-gtk ubuntu-desktop
  ubuntu-desktop-minimal ubuntu-release-upgrader-gtk update-manager
  update-notifier
以下のパッケージが新たにインストールされます:
  ubuntu-pro-client
以下のパッケージはアップグレードされます:
  gir1.2-gdm-1.0 libgdm1 python3-distupgrade python3-software-properties
  python3-update-manager ubuntu-advantage-tools ubuntu-release-upgrader-core
  update-manager-core update-notifier-common
アップグレード: 9 個、新規インストール: 1 個、削除: 33 個、保留: 295 個。
689 kB のアーカイブを取得する必要があります。
この操作後に 39.3 MB のディスク容量が解放されます。

削除されるパッケージの中に「gdm3」がありました。
これは、ディスプレイマネージャ(ログイン画面のプログラム)です。
RaspberryPiOSだと別のディスプレイマネージャだと思いますが、「見慣れないログイン画面が表示された」のは、同様にディスプレイマネージャがアンインストールされたためなのではないでしょうか。

apt removeを実行する際には、安易に実行しないこと。
少なくとも、自分でインストールしたもの以外はしないこと。
するとしても、それが何のパッケージか、しっかりと把握した上で行うべきかと思います。

ちなみに、OSがdebianになったのは、RaspberryPiOSのベースがdebianであり、debianのパッケージも多く使われていると思いますので、必要以上にパッケージが削除されたために素が出ただけだと思います。
最新のRaspberryPiOSはdebian12ベースのようですね。

1Like

元は、Debian GNU/Linux 11 (bullseye)だったのでしょうか?

しかし、どんなにapt updateapt full-upgrade, apt autoremove しても、bullseyebookwormにアップデートされることはあり得ないです。

デュアルブートになっていて、違うドライブからブートしたとか?

0Like

Comments

  1. @ra_risu

    Questioner

    ご回答いただき誠にありがとうございます。
    最初のセットアップ時からRaspberry Piをインストールしております。
    また、デュアルブートに設定したこともございません。
    実際のところ、autoremoveでOSが変わるはずがないというのは本当にその通りで、起きるはずのないことが起きていて途方に暮れているという状態です。

    一応明日デュアルブートになっていないか確認してみます。ありがとうございます。

  2. 変更されたパッケージの状態ログが /var/log/apt/history.logにあると思うので、一通り確認してみるとよいかも。
    apt installapt updateによるログのため、OS(bullseyeからbookwormに)アップデートの情報は無い?)

  3. 最初からDebian 12だった、ということはないですか?

    いつ頃セットアップした Raspberry Pi 4 かの情報がありませんが、昨年(2023年)6月ごろから、最新OSが Debian 12(bookworm)になっています。

  4. Raspberry Pi OS から Debian に変化したということでは?前者は後者をカスタマイズしたディストリビューションなので、なんらかのメタパッケージが削除された結果、デスクトップ環境が壊れたり /etc/issueRaspbian GNU/Linux 12 \n \l から Debian GNU/Linux 12 \n \l に変化したりすることはなくもなさそうです。

  5. @uasi さん、
    手持ちのラズパイ5は、ラズパイImagerで(当時最新の) bookworm を焼きましたが、最初からDebian GNU/Linux 12 \n \lと出ます。Raspbian表示を見たことがないです。
    (ラズパイ5だから?)

    pi5@raspberrypi5:~ $ cat /etc/issue
    Debian GNU/Linux 12 \n \l
    
    pi5@raspberrypi5:~ $ uname -a
    Linux raspberrypi5 6.6.20+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.6.20-1+rpt1 (2024-03-07) aarch64 GNU/Linux
    
    pi5@raspberrypi5:~ $ cat /etc/debian_version
    12.5
    
    pi5@raspberrypi5:~ $ lsb_release -a
    No LSB modules are available.
    Distributor ID:	Debian
    Description:	Debian GNU/Linux 12 (bookworm)
    Release:	12
    Codename:	bookworm
    
    pi5@raspberrypi5:~ $ cat /proc/version
    Linux version 6.6.20+rpt-rpi-2712 (debian-kernel@lists.debian.org) (gcc-12 (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40) #1 SMP PREEMPT Debian 1:6.6.20-1+rpt1 (2024-03-07)
    

    ラズパイ4に最新のbookworm 入れてみましたが、ラズパイ4でも同じでした。
    Debian GNU/Linux 12 \n \l

  6. @nak435 さん、

    手元に RasPi がないので確実なことは言えませんが、2023年末の時点で /etc/os-release に PRETTY_NAME="Raspbian GNU/Linux 12 (bookworm)" が含まれていることを報告した人がいるので、環境によってはあり得ると思います。

    そもそも大元の質問文からは cat /etc/issue の値が変化したのかどうかも読み取れない(初めて確認したら Debian と書いてあっただけかもしれない)ので見当違いかもしれませんが。

  7. 64bit版 Raspberry Pi OSでは揉め事?があって"Raspbian"の名を継承してません。
    そのフォーラムに書かれてるように32bitと64bitで違いが出ているようです。

    気になるようでしたらコチラの記事も読んで下さい。

    'Raspbian'という名前がなくなった理由

  8. @uasi さん、ありがとうございます。
    32ビット版だと、Raspbian GNU/Linux 12 (bookworm)と表示されるのかも? ですね。
    「解決された」との事なので、32ビット版の確認まではやめておきます。

解決の方法とかでは無いのですが、フォーラムで恐らく同じ現象にあってる方がいらしたのでお知らせしておきます。

Raspberry OS changed to Debian

いくつかの操作をしたことか原因と指摘されていますが、明確な原因は分かって無さそうです。

0Like

Comments

  1. @ra_risu

    Questioner

    ありがとうございます!
    恐らくはautoremoveで誤ってraspi-config が削除された可能性が高そうですね
    原因に少しでも近づけそうな内容は全てありがたいです。まことにありがとうございます。

  2. 既に解決してるとのことですが、コメントを残しておきます。

    raspi-configが本当に消えてしまったのなら、フォーラムのコメントにもあるようにラズパイ関連のパッケージが消えたはずです。

    パッケージの再インストールが必要ならsudo apt install パッケージ名 あるいは sudo apt install --reinstall パッケージ名 でよいかもしれません。

    消えたパッケージが分かるのでしたらひとつずつインストールするか、OSの入れ直しをした方が早いかもしれません。

解決しました!
今職場なので、取り急ぎお礼まで。
詳しい内容は帰宅次第記載します。

0Like

・解決した方法
/var/log/apt/history.logを確認したところ、raspberrypi-ui-modsというパッケージがautoremoveでアンインストールされていることを確認しました。
sudo apt install raspberrypi-ui-modsでインストールし、再起動したところ、元の環境が復活しました。

ちなみに、復活した後にcat /etc/issue しても「Debian GNU/Linux 12 \n \l」と表示されました。
ハードは2024年5月にセットアップしたRaspberry Pi 4B 2GBで、OSは64ビットです。
(Raspberry Pi 5ではないのは、工場設置用であり、高い処理性能を必要としないためです。ディスコンが怖いですが……)

・原因
@katsuko0303 様の指摘された通り、autoremoveでraspberrypiに必要なパッケージまで削除されてしまったのだと思います。
そもそも問題のありそうなパッケージを削除+再インストールするのであれば依存するパッケージまで削除するautoremoveをするべきではなく、またその必要もなかったので、これは初歩的なミスでした。

・教訓
安易にautoremoveしない。

コメントいただきました
@katsuko0303 様
@nak435
@uasi
@STSynthe

誠にありがとうございました。

0Like

Comments

  1. 解決したようで良かったです。

    パッケージを削除+再インストールするのであれば依存するパッケージまで削除するautoremoveをするべきではなく、

    autoremove ではなく最初の remove の時点で削除されているのではないでしょうか。パッケージを再インストールするなら削除+インストールではなく、まずは sudo apt --reinstall install <pkg> が良さそうです。

Your answer might help someone💌