おおげさなタイトルですが、Apple sillicon Mac と Parallels Desktop を使って、いろいろな Arm64 OS に開発環境を設定していこうという、覚え書きのようなコーナーです。
今は2つですが、じょじょに増やしていきます。
現在 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 の中からインストールしていこうと思います。
まずは Kali Linux にしようと思います。Kali Linux は、Ubuntu や Debian や Fedora と比べると規模の小さなディストリビューションです。環境設定には苦労すると思われます。
Parallels Desktop の指示にしたがい Kali Linux をインストールしてください。
よく Windows と Mac は操作感が違うと言われますが、なんだかんだと言ってもよく似ています。Linux の Gnome Desktop と比べたら。そこで今回は Windows や Mac と操作感の似た Cinnamon Desktop をインストールします。
Kali Linux のインストールが終わったら、まずは Parallels Tools のインストールを許可するようにパスワードを求められます。パスワードを入力してください。Parallels Tools のインストールが終わったら、再起動を促されます。再起動してください。
Kali Linux のデフォルトの Desktop は、Gnome ではなく、Xfce4 みたいですね。
次にターミナル開いて次のようにコマンドしていきます。
// apt パッケージマネージャをアップデートします。
sudo apt update
// apt パッケージマネージャをアップグレードします。これは時間がかかります。
sudo apt upgrade
// 不要になったパッケージを削除します
sudo apt autoremove
// Cinnamon デスクトップをインストールします。
sudo apt install task-cinnamon-desktop
// Cinamon デスクトップに切り替えます。
sudo update-alternatives --config x-session-manager
// 表示される画面は少し違うかもしれませんが、cinnamon と書かれた行の番号を入力してエンターを押します。
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/startxfce4 50 auto mode
1 /usr/bin/cinnamon-session 50 manual mode
2 /usr/bin/startxfce4 50 manual mode
3 /usr/bin/xfce4-session 40 manual mode
Press to keep the current choice[*], or type selection number: 1
// 再起動します。
reboot
再起動すると、もう一度 Parallels Tools のインストールが始まります。パスワードを入力してください。 Parallels Tools のインストールが終われば、再び再起動します。
無事に Cinnamon デスクトップになりました。
Emacs キーバインドにしておくと便利なので、取り入れます。次のとおりにしてください。
ターミナルを起動して次のように入力してください。ターミナルははじめからパネルに登録されています。
// 現在のキーバインドを確認します
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
// 再起動します
reboot
再起動すると次のようにフォルダーの名前を英語にするか日本語にするか訊かれます。 私は英語のままにします。 「次回から表示しない」にチェックを入れて「古い名前のままにする」をクリックします。
Kali が起動して、gedit などを起動するとデスクトップの右下に文字パレットが表示されます。
日本語と英語の入力切り替えはデフォルトで Shift + Space になっています。 バインディングを変えたい場合は次のようにします。コンソールを立ち上げて、次のようにコマンドしてください。
// C がインストールされているか確認します
$ gcc --version
gcc (Debian 14.2.0-17) 14.2.0
Copyright (C) 2024 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 14.2.0-17) 14.2.0
Copyright (C) 2024 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 29.4
Copyright (C) 2024 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.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 --vesion
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
ところで、ゴミ箱が表示されていません。次のようにしてゴミ箱を表示させます。