別にMacユーザーさようならという記事ではありません。メインターゲットがWindowsユーザーなだけです。
Linuxとは
Unixという古式ゆかしい文化の流れを汲むOSの1つです。仲間にFree/Open/Net-BSDとかSolarisとかいます。そうそう、冒頭で触れたMacが使ってるOSもFreeBSDの流れを汲むOSの1つです。商用のUnixもいくつかあり、MacOS/Solarisとかは商用ですね。詳細は https://ja.wikipedia.org/wiki/Linux参照。
Unix系OSの特徴は…ターミナルだけで何でも出来るように設計されていることです(本当の意味ではPOSIX準拠くらいが妥当だと思う)。我々Windowsユーザーには信じられないですね。簡単に言えばコマンドプロンプト1つだけで何でも出来るというわけですから。当然マウスはオプションです。もちろんWindowsも極めると大抵の人はほとんどマウス使わなくなりますけど…。
ターミナルだけで何でも出来るということは、ネットワーク的に離れたところからでも、sshなどで接続すれば手元のPCと同じように何でも出来るということです。つまりネットワーク越しの作業がしやすい=サーバー向けということになります。サーバーは普通ディスプレイも繋がっておらず、データセンターでラックに積まれるようなPCなのです。これにsshなどで繋いでコマンドラインから操作できるのがUnix系OSです。Windows系のサーバでは、通常そういう操作は行われず、リモートデスクトップのGUI画面を使ってサーバを操作します。一見初心者でも楽に操作できますが、サーバ単体のコストが高いのと、負荷が高いときに(自動で)サーバを増やして対応する(スケールアウト)ようなことが出来ないので、サーバーの主流はUnix系になります。
Windowsから使うLinux
WindowsもLinuxも括りはOSです。OSとは基本電源入れてから(ブートローダ除けば)最初に起動するものなので、普通は何かのOSを使っていたら、他のOSは同時に起動しません。アプリとは違うのですよアプリとは。つまりWindowsを使っていたら、普通は同時にLinuxを使えないのです。
しかし、ゲームをするためにWindowsを使っていたいけど、裏でスクレイピングさせてるからLinuxも同時に使いたいなぁとかいうことはあるわけです。昔はこれを実現するためにはPCが2台必要で、1台にWindowsを入れてゲーム、1台にLinuxを入れてスクレイピングといった使い方をしないといけませんでした。そんなゲーマーのために(?)最近は「仮想化」という単語とともに、1台で複数のOSを同時に動かす技術が生まれています。
仮想化の時代
現代はあらゆる仮想化の技術によって、いろいろな恩恵を受けることができます。OSも例外ではなく、CPU仮想化支援とハイパーバイザーの力を借りて、複数のOSを同時に動かすことが出来ます。
Windows上でLinuxを動かす場合、2020年2月2日現在、以下の方式が一般的です。
- Hyper-V(ハイパーバイザ)を無効にしてVirtualBox/VMwareなどを使って好きなディストリビューションのLinuxを動かす
- Hyper-V(ハイパーバイザ)を無効にしてWSLを使って対応ディストリビューションのLinuxを動かす(WSL1のまま使う)
- Hyper-V(ハイパーバイザ)を有効にしてWindowsもLinuxも使う(WSL2はこの方式)
2.は動かないソフトがあったり、安定性が問題になる場合があります。3.は1.の使い方が出来なくなる問題があります(最近のVirtualBoxは機能的にHyper-V有効でも動くようになったらしいが、ハード依存しており安定していない)。そこで今回は1.のケースを選択します。
なお、1~3いずれにしてもCPU仮想化支援を前提としています。今使われてるCPUは大半がこの機能を持っていると思いますが、BIOSの設定次第の場合があるので、BIOSで有効化しておきましょう。
なお、最近巷でよく聞くDockerなどのコンテナ系の仮想化もありますが、これらはOSそのものを仮想化してるわけではないので、ここでは扱いません。OSそのものの機能はホストのものを使い、アプリの実行環境をコンテナという箱で管理する方式に近いです。ようは1.~3.でLinuxをインストールしないと使えないということです。
VirtualBoxのインストール
現在主流のVMソフトはVirtualBox/VMwareの2つですが、ここでは無料で登録せずに使えるVirtualBoxを選択します。
vagrantで良くない?
いいえ。某学習サイトなどで紹介される、vagrantもローカルインストール用に中で使ってるのはVirtualBoxです。なので、VirtualBoxを意識せずにvagrantで簡単インストールすることも可能です。ただ、vagrantは元々いろいろなPCに同じLinux環境をインストールしたい人が楽に出来るよう開発されたツールです。初心者が何が何だか分からないけど使うような、親切設計の便利ツールではありません。悪いことは言わないので、最初はVirtualBoxを直に使って環境に対する理解を深めることをオススメします。そうでないと問題が起きたときの対応が全く取れなくなります。慣れてからvagrantの恩恵に預かってください。便利さに心打たれます。
ダウンロード
Downloads – Oracle VM VirtualBox
ここから最新をダウンロードします。
インストール
ダウンロードしたインストーラをポチポチするだけでOKです(途中ドライバのインストールで署名関連の警告が出るが気にせずOKでいい)。難しいことはありません。
→PC内に仮想PCをもう一台起動することが出来るようになった
Linuxのインストール
VirtualBoxのおかげで、PC内に仮想PCをもう一台起動することが出来るようになりました。しかし、この仮想PCにも設定とOSのインストールという作業が必要になります。普通PCを買うとOSはプリインストールされた状態で納品されますが、元々素のPCにはOSなど入っていないのです。そこで、まずは仮想PCの作成とLinuxのインストールをします。
ディストリビューションの選定
Linuxのインストールをする前にディストリビューションを決めます。Linuxと一口に言っても、実はその種類であるディストリビューションが星の数ほどあるからです。しかし主要なディストリビューションを2つ挙げるとすると、Redhat(CentOS)とUbuntuです。日本で業務用に使う場合はRedhat(CentOS)が多いですが、個人用で使いやすいディストリビューションはUbuntuになります。オススメは個人用に扱いやすいUbuntuでLinuxに慣れるです。Redhatは仕事で必要になったらCentOSで勉強する、くらいでいいと思います。なので、ここでの選択もUbuntuです。
ダウンロード
デスクトップ版かつサポート期間の長いLTS版をダウンロードします。本当はサーバー版の方が適切なのですが、GUIが全く使えないので、慣れてる人以外はデスクトップの方が扱いやすいです。サーバー版の方がGUIがない分軽くなります。
2020年2月2日現在、最新のLTSは18.04.3です。2020年4月には新しいLTSが出てくる予定ですが、出始めは不具合も多いので、初心者はリリース後2~3ヶ月経つまでは古いLTSで様子を見た方がいいかもしれません。
インストール
説明サイトが他にあるのでそちらに譲ります
VirtualBox6にLinux(Ubuntu18.04LTS)をインストールする方法
必要十分な情報があり、クライアントとして使う分には申し分ない環境が整います。が、1件だけ追加の設定が…GUIの日本語設定が足りません。
[左下のアプリケーションを表示する]の点々を左クリックします。すると、以下のような画面が出るので…
ちょっとスクロールして下の方にある「言語サポート」を押してください。アプリが起動して、以下のダイアログが出ます。
ここで、インストールを選択します。パスワードを聞かれるので入力すると日本語サポートがインストールされます。
閉じれば完了です。
Tips.1. Terminal起動ショートカット
デフォルトショートカット、左Ctrl+Alt+TでTerminalを起動出来ます。結構便利。
Tips.2. Windowsアプリの切り替えをしたい
Alt+TABでアプリの切り替えを出来ますが、これはUbuntu内の切り替えになります。
Windows側の切り替えをキーボードからしたい場合は、右Ctrlキーを一度押してからAlt+TABでWindowsアプリを切り替えられます。
Tips.3. GUIが固まった。コマンドだけでも使えないか?
右Ctrl+F1~F7でUbuntu内の仮想端末を切り替えられます。
GUI画面はそのうち1つなので、仮想PC自体が固まってなければ、別の仮想端末からログインすることでコマンドが使えます。
sshなどでリモートから操作できるようにするのも手です。
Tips.4. ターミナルでのコピー&ペースト
WindowsだとCtrl+CとCtrl+Vでコピペですが、Linux GUIのターミナルだと基本はShift+Ctrl+CとShift+Ctrl+Vでコピペになります。
ようはShiftも押す必要があるということです。ターミナルだけですけどね。
まとめ
Windows上でUbuntuを同時に使えるようになりました。インストールしたUbuntuで動画を見ることも出来ますし、OpenGLも簡単なものならそれなりに動かすことが出来るはずです。サーバーとしての機能、ネットワーク系の設定は今回端折っていますが、次回sshとpostgresをインストールする際に説明予定です。
↓次回