おおげさなタイトルですが、Apple sillicon Mac と Parallels Desktop を使って、いろいろな Arm64 OS に開発環境を設定していこうという、覚え書きのようなコーナーです。
今回が4回目になります。
現在 Parallels Desktop の「新規作成」に用意されている OS は、Windows 11、macOS、Ubuntu Linux、Ubuntu with Rosetta、Fedora Linux、Debian GNU/Linux、Kali Linux です。
Ubuntu with Rosetta 以外はすべて Arm64 版です。現在 Parallels Desktop には Arm64 以外の OS はインストールできません。Ubuntu with Rosetta の Rosetta は、Arm64 の上で Intel 版アプリを動作させる仮想環境です。
上記以外でも Arm64 版であれば、インストールできるのですが、それがほぼないのです。まともにダウンロードサイトが立ち上がっているのは Windows 11 Arm64 ぐらいです。
そこで今回は、Parallels Desktop が用意してくれている OS の中からインストールしていこうと思います。
4回目の今回は Debian Linux にします。
Parallels Desktop の指示にしたがい Debian Linux をインストールしてください。
なお、人気のある Ubuntu については、私の環境では、 なぜか特定のパスワードが設定できないので、今回はインストールしません。
よく Windows と Mac は操作感が違うと言われますが、なんだかんだと言ってもよく似ています。Linux の Gnome Desktop と比べたら。そこで今回は Windows や Mac と操作感の似た Cinnamon Desktop をインストールします。
Debian Linux のインストールが終わリましたら、まずは Parallels Tools のインストールを許可するようにパスワードを求められます。パスワードを入力してください。Parallels Tools のインストールが終わったら、再起動を促されます。再起動してください。
再起動中にアカウントを選択する画面でアカウント選択すると右下に歯車アイコンが表示されます。そのアイコンをクリックすると、現在のデスクトップが GNOME に設定されていることがわかります。
Fedara Linux GNOME Desktop
次にターミナル開いて次のようにコマンドしていきます。
// apt パッケージマネージャをアップデートします。
sudo apt update
// apt パッケージマネージャをアップグレードします。これは時間がかかります。
sudo apt upgrade
// 不要になったパッケージを削除します
sudo apt autoremove
// Cinnamon デスクトップをインストールします。
sudo apt install task-cinnamon-desktop
// 再起動します。
// Debian の場合は reboot ではなく、sudo reboot か systemctl reboot になります
sudo reboot
再起動中にアカウントを選択する画面でアカウント選択すると右下に歯車アイコンが表示されます。そのアイコンをクリックして、デスクトップの設定を Cinnamon します。
再起動すると、もう一度 Parallels Tools のインストールが始まります。パスワードを入力してください。 Parallels Tools のインストールが終われば、再び再起動します。
再起動すると無事に Cinnamon デスクトップになっています。
Fedora Linux Cinnamon Desktop
Emacs キーバインドにしておくと便利です。まずはキー操作のテスト用に gedit をインストールします。ターミナル起動して、次のようにしてインストールします。
sudo apt install gedit
// インストールが終わりましたターミナを閉じてください
ターミナルを起動して次のように入力してください。ターミナルははじめからパネルに登録されています。
// 現在のキーバインドを確認します
gsettings get org.cinnamon.desktop.interface gtk-key-theme
// まだ Emacs になっていません
'Default'
// Emacs キーバインドに設定します
gsettings set org.cinnamon.desktop.interface gtk-key-theme Emacs
// 現在のキーバインドを確認します
gsettings get org.cinnamon.desktop.interface gtk-key-theme
// Emacs になりました
'Emacs'
ターミナルを終了して、gedit を起動してください。キーバインドが Emacs に変わっています。
ターミナルを起動して次のように入力してください。
// 日本語環境をインストールします
sudo apt install task-japanese task-japanese-desktop
// 日本語環境に設定します
sudo localectl set-locale LANG=ja_JP.UTF-8
// 現在の言語を確認します。
sudo localectl
// 日本語に設定されました
System Locale: LANG=ja_JP.UTF-8
VC Keymap: (unset)
X11 Layout: us
X11 Model: pc105
// 再起動します
systemctl reboot
再起動すると次のようにフォルダーの名前を英語にするか日本語にするか訊かれます。 私は英語のままにします。 「次回から表示しない」にチェックを入れて「古い名前のままにする」をクリックします。
デフォルトの日本語と英語の入力切り替えは Shift + Space になっています。 バインディングを変えたい場合は次のようにします。
コンソールを立ち上げて、次のようにコマンドしてください。
// C がインストールされているか確認します
$ gcc --version
gcc (Debian 12.2.0-14) 12.2.0
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
// C++ がインストールされているか確認します。
$ g++ --version
g++ (Debian 12.2.0-14) 12.2.0
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
両方ともインストールされているみたいです。
続けて Emacs もインストールしておきます。
sudo apt install emacs-nox
// バージョン確認
$ emacs --version
GNU Emacs 28.2
Copyright (C) 2022 Free Software Foundation, Inc.
GNU Emacs comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of GNU Emacs
under the terms of the GNU General Public License.
For more information about these matters, see the file named COPYING.
// emacs で *~ とか #* というバックアップファイルを作らないようにするには、
// ホームディレクトリに .emacs というファイルを作ります。
//ターミナルを起動すると最初はホームディレクトリが表示されています。
//もしくは cd でホームディレクトリに戻れます。
cd
emacs .emacs
// そのファイルに次のように記述します。
(setq make-backup-files nil)
(setq auto-save-default nil)
wxWidgets も、コンソールを使ってインストールします。
// インストール
sudo apt install libwxgtk3.2-dev
// 確認
wx-config --version
3.2.2
// 最新版の 3.2.6 ではありませんが、これで良しとします
これで、wxWidgets プログラミンができるようになりました。次のコードを記述して、お好きな場所に保存してください。
#include <wx/wx.h>
class Hello : public wxFrame
{
public:
Hello();
};
class App : public wxApp
{
public:
virtual bool OnInit();
};
Hello::Hello() : wxFrame(NULL, -1, wxT("Hello wxWidgets!"),
wxDefaultPosition, wxSize(300, 200))
{
Center();
}
IMPLEMENT_APP(App)
bool App::OnInit()
{
Hello *hello = new Hello();
hello->Show();
return true;
}
コンソールを開いて、hello.cpp を保存したディレクトリに移動します。 そして次のようにコマンドしてコンパイルします。
// コンパイル
g++ hello.cpp `wx-config --cppflags --libs` -o hello
// 実行
./hello
hello.cpp をコンパイルした場所を開いて hello をダブルクリックしても実行することができます。hello をデスクトップなどへ移動してもダブルクリックで実行できます。
コンソールを開いて GTK をインストールします。
// gtk2 のインストール
sudo apt install libgtk2.0-dev
// 確認
pkg-config --vesion
1.8.1
// gtk3 のインストール
sudo apt install libgtk-3-dev
// 確認
pkg-config --version
1.8.1
これで GTK プログラミンができるようになりました。次のコードを記述してお好きな場所へ保存してください。
#include <gtk/gtk.h>
int main(int argc, char *argv[])
{
GtkWidget * window;
gtk_init(&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW(window), "Hello GTK!");
gtk_window_set_default_size(GTK_WINDOW(window), 300, 200);
gtk_window_set_position (GTK_WINDOW(window), GTK_WIN_POS_CENTER);
g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);
gtk_widget_show(window);
gtk_main();
return 0;
}
コンソールで hello.c を保存した場所に移動して次のようにコマンドします
// gtk2 でのコンパイル
// gtk2 でのコンパイルは、かなりの量の警告が表示されます
// エラーではないのでコンパイルは完了しています
gcc hello.c `pkg-config --cflags --libs gtk+-2.0` -o hello
// gtk3 でのコンパイル
gcc hello.c `pkg-config --cflags --libs gtk+-3.0` -o hello
// 実行
./hello
出来上がった hello をダブルクリックしても実行できます。hello をデスクトップなどに移動してダブルクリックしても実行できます。
gtk2
gtk3
ところで、ゴミ箱が表示されていません。次のようにしてゴミ箱を表示させます。