数学研究ログ 第007回「SATで挑む平面彩色問題:研究環境構築記録~第7回:環境を「使える状態」にする(Guest Additionsとトラブル対応)~」

このシリーズでは、数学の研究環境を整えていった過程を順番に記録しています。
前回は【VirtualBox + Ubuntu 環境構築】について書きました。まだの方は、先にこちらからどうぞ。

起動はできたが、そのままでは使いづらい状態で

第6回でUbuntuの仮想環境を構築し、デスクトップが表示されるところまで進みました。
この時点で「Linuxが動いた」という意味では一つの区切りでしたが、実際に作業を始めてみると、いくつか明確な問題がありました。

特に困ったのは、Windows側との連携がうまくいかないことでした。
WindowsでコピーしたコマンドをUbuntuに貼り付けることができず、毎回手入力する必要がありました。
コマンドベースで作業を進める予定だったため、この状態はかなり不便でした。
プログラムのコードはWindows側で作成し、Ubuntuに貼り付けて動かす予定だったので、コピー&ペーストがOSを超えてできないのはかなり不便です。

また、マウスの挙動にも違和感があり、ウィンドウの外にカーソルを移動させる操作がスムーズにできませんでした。
仮想環境の中に閉じ込められているような感覚があり、操作性の面でストレスがありました。

この段階で、「環境は動いているが、まだ使える状態ではない」と認識しました。

Guest Additionsの存在

この問題についてChatGPTに相談したところ、「Guest Additions」というものを導入する必要があると教えられました。
これはVirtualBoxの仮想環境に追加するコンポーネントで、次のような機能を提供するものです。

  • クリップボードの共有(コピー&ペースト)
  • マウスの統合
  • 画面表示の最適化

つまり、仮想環境を「実用的に使うための前提」となる機能でした。この時点で初めて、「VirtualBoxはインストールしただけでは不完全であり、追加設定が前提になっている」ということを理解しました。

コマンドでインストールしようとしました

まずは、教えてもらった通りにコマンドでGuest Additionsをインストールしようとしました。CDイメージを挿入した後、ターミナルから次のようなコマンドを実行しました。

sudo /media/$USER/VBox_GAs_*/VBoxLinuxAdditions.run

このコマンドでインストールが進むはず、という認識でした。

しかしコマンドが通らず

ところが、このコマンドはそのままではうまく動きませんでした。エラーメッセージの内容を確認すると、必要なツールが不足していることが分かりました。

具体的には、

  • bzip2
  • tar

といったパッケージが不足していました。

この時点で少し戸惑いました。コマンド自体は正しいはずなのに、なぜ実行できないのかが直感的に分からなかったためです。

不足しているパッケージをインストールしました

ChatGPTに相談し、必要なパッケージを追加することにしました。次のコマンドを実行しました。

sudo apt install bzip2 tar

この操作自体は問題なく完了しました。

この段階で、「Linuxではコマンドが通らない原因の一つとして、依存パッケージの不足がある」ということを実感しました。Windowsの感覚だと、コマンドは最初から使えるものとして認識しがちですが、Linuxでは必要なツールが揃っていないと実行できない場合があるという点に気づきました。

逆に言えば、必要最低限のもので構成が可能とも言えそうです。

それでもうまくいかない場面

パッケージを追加した後も、コマンドの実行で少し詰まる場面がありました。パスの指定やファイルの位置など、細かい部分で混乱しました。

このあたりで、「コマンドラインだけで解決することにこだわりすぎているのではないか」と感じました。

GUIで実行できることに気づきました

そこで改めて画面を確認すると、挿入したCDイメージを開いた際に「実行可能なソフトウェア」として起動できることに気づきました。つまり、ターミナルからコマンドを打たなくても、GUI操作でインストールを進めることができました。

この方法で実行したところ、Guest Additionsのインストールは問題なく完了しました。

ここでの気づきは大きく、「必ずしもCLIだけにこだわる必要はない」というものでした。
状況によっては、GUIの方が分かりやすく確実に進められる場合もありますね。

再起動後に環境が改善しました

インストール後に仮想マシンを再起動したところ、明らかに操作性が改善しました。

  • コピー&ペーストが使えるようになりました
  • マウスの移動が自然になりました
  • 画面表示も安定しました

ここで初めて、「この環境なら作業ができる」と感じました。

この回での学び

この一連の流れで学んだことは、主に次の3点です。

まず、仮想環境はインストールしただけでは不完全であり、追加の設定が前提になっているということです。Guest Additionsはその中でも重要な要素でした。

次に、Linuxでは依存関係の管理が重要であるということです。コマンドが動かない原因として、単純なミスだけでなく「必要なツールが入っていない」というケースがあることを実感しました。

そしてもう一つは、手段にこだわりすぎないことです。今回はCLIで進めようとして詰まりましたが、GUIを使うことでスムーズに解決できました。
もちろんコンソールからの操作はLinux環境の特徴だとは思いますが。

次回

次回は、ここまでで整えた環境に対して、実際に研究で使うためのツールを導入していきます。

具体的には、

  • Python仮想環境
  • PySAT
  • CaDiCaL
  • DRAT-trim

といったものを導入し、実際にSAT問題を実行できるところまで進めます。

次回は、【SATによる検証環境の構築】について書きます。