おおげさなタイトルですが、Apple sillicon Mac と Parallels Desktop を使って、いろいろな Arm64 OS に開発環境を設定していこうという、覚え書きのようなコーナーです。
3つ目は Fedora にします。
現在 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 の中からインストールしていこうと思います。
Linux には大きく分けて RPM 系と Debian 系に分かれます。前回の Kali Linux は Debian 系でしたので、今回は RPM 系の Fedora にします。
Parallels Desktop の指示にしたがい Fedora Linux をインストールしてください。
よく Windows と Mac は操作感が違うと言われますが、なんだかんだと言ってもよく似ています。Linux の Gnome Desktop と比べたら。そこで今回は Windows や Mac と操作感の似た Cinnamon Desktop をインストールします。
Fedora Linux が起動したら、自動で作られた Parallels というアカウントを選択します。すると右下に歯車アイコンが表示されるので、それをクリックします。現在 GNOME が選ばれていることがわかります。確認が終われば 任意のパスワードを入力します。まずは Parallels Tools のインストールを許可するようにパスワードを求められます。パスワードを入力してください。Parallels Tools のインストールが終わったら、再起動を促されます。再起動してください。
次にターミナルを起動して次のようにコマンドしていきます。
// dnf パッケージマネージャをアップデートします。これはかなり時間がかかります。
sudo dnf update
// Cinnamon デスクトップをインストールします。
sudo dnf group install cinnamon-desktop
// 再起動します。
reboot
起動画面で Parallels アカウント選択して右下の歯車アイコンをクリックし、Connamon を選択します。
再起動すると、もう一度 Parallels Tools のインストールが始まります。パスワードを入力してください。 Parallels Tools のインストールが終われば、再び再起動します。
無事に Cinnamon デスクトップになりました。
Emacs キーバインドにしておくと便利なので設定します。テスト用に gedit を使いますが、 Fedora や Debian にはデフォルトで gedit はインストールされていません。 次のようにターミナルでインストールします。
sudo dnf 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 dnf install langpacks-ja
// インストールが終わりましたらターミナルを閉じます
コンソールを立ち上げて、次のようにコマンドしてください。
// C がインストールされているか確認します
$ gcc --version
gcc (GCC) 14.2.1 20240912 (Red Hat 14.2.1-3)
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
bash: g++: コマンドが見つかりませんでした...
コマンド g++' を提供するためにパッケージ 'gcc-c++' をインストールしますか? [N/y]
// yと入力してエンターキーを押します
// g++ がインストールされたか確認します
g++ --version
g++ (GCC) 14.2.1 20240912 (Red Hat 14.2.1-3)
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 については、ターミナル内で起動できる Fedora 用の Emacs が見つからなかったので、 今回はインストールしません。エディタとして gedit を使います。
wxWidgets も、コンソールを使ってインストールします。
// 確認
wx-config --version
bash: wx-config: コマンドが見つかりませんでした...
コマンド wx-config' を提供するためにパッケージ 'wxBase-devel' をインストールしますか? [N/y]
// これは違うものなので「n」と入力して、キャンセルします。
// インストール
sudo dnf install wxGTK-devel
// 確認
wx-config --version
3.2.4
// バージョンが最新の 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 をインストールします。
// 確認
pkg-config --version
2.1.1
// これが表示されても、おそらくインストールされていません。次を続けてください
// gtk2 のインストール
sudo dnf install gtk2-devel
// 確認
pkg-config --vesion
2.1.1
// gtk3 のインストール
sudo dnf install gtk3-devel
メタデータの期限切れの最終確認: 1:26:07 前の 2025年03月13日 16時28分51秒 に実施しました。
パッケージ gtk3-devel-3.24.43-1.fc40.aarch64 は既にインストールされています。
依存関係が解決しました。
行うべきことはありません。
完了しました
// gtk2と一緒にインストールされたみたいです。
これで 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