0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

メインのWindows PCをSnapdragon搭載に変えたので色々とインストールした

Last updated at Posted at 2025-03-26

最近、Windows 11向けのアプリケーション開発環境PCをSnapdragon搭載の、俗に言われるCopilot+PCに変更したので今までもIntel PCで使っていたのと同じようなアプリをインストールしつつ環境を整えている。
しかしながらAarch64アーキテクチャのPC(Windows)プラットホームで今までと全く同じ環境を整えることができるか?といえば、Windowsユーザーのほとんどが未だに(これからも?)x86-64アーキテクチャのPCを利用していてなかなかAarch64アーキテクチャのPCのパイが増えないからか?ネイティブでAarch64アーキテクチャに対応してくれているアプリは少ないようである。
まあ、Snapdragon搭載のPCで動作するWindows 11ではSnapdragon上でもIntel(x86-64)の環境をエミュレートしてくれるPrismという仕組みがあって、それを使えばIntel PC向けのアプリもそのままで(ある程度は)利用が可能なのだけど、Prismがどの程度の性能で動くのかは未知数だし、macOSのRosetta 2でもそうだったけど、シームレスにバイナリコードの変換機能が働いちゃって、それによって知らないうちにネイティブじゃない実行コードが紛れ込むのはちょっと嫌だなと...
そんな訳で今までIntel PCで自分が使ってきたアプリをインストールして、それがAarch64ネイティブで動いているのか?それともPrismx86-64エミュレーションで動いているのか?を調べてみた。
ちなみに、PowerShell(というか、Windows)には特定のファイルが何者かを調べるLinuxのfileコマンドに相当するものが見当たらなかったので実行ファイル(.exeファイル)がどのアーキテクチャ向けなのかを調べるのにはWSL2からfileコマンドを使うという手抜きを行った。

  • Google Chrome
    https://www.google.com/intl/ja_jp/chrome/dr/download/
    ありがたいことにGoogle ChromeはちゃんとAarch64に対応していました。

    file /mnt/c/Program\ Files/Google/Chrome/Application/chrome.exe
    
    /mnt/c/Program Files/Google/Chrome/Application/chrome.exe: PE32+ executable (GUI) Aarch64, for MS Windows, 11 sections
    
  • Gimp
    https://www.gimp.org/downloads/
    仕事ではAdobe Photoshopでのデータ提出を求められることが多いし、ビデオ編集なども行うこともあるのでAdobe Creative Cloudのサブスクリプションをしているのですが、今のところAdobeの製品群はAarch64アーキテクチャへの対応は進んでいない様子です。
    まあ、個人的にはPhotoshopよりはGimpの方が使いやすいと感じているのでGimpがAarch64対応なのはありがたいです。

    file /mnt/c/Users/kazu/AppData/Local/Programs/GIMP\ 2/bin/gimp-2.10.exe
    
    /mnt/c/Users/kazu/AppData/Local/Programs/GIMP 2/bin/gimp-2.10.exe: PE32+ executable (GUI) Aarch64, for MS Windows, 9 sections
    
  • Thunderbird
    https://www.thunderbird.net/ja/thunderbird/all/
    Microsoft Outlookが相変わらず使いづらいし、LinuxやmacOSなど、利用する環境ごとに使い勝手が違うのも面倒なので最近はThunderbirdを使うようにしているのですが、残念なことにThunderbirdのAarch64対応は難航しているようです。

    file /mnt/c/Program\ Files/Mozilla\ Thunderbird/thunderbird.exe
    
    /mnt/c/Program Files/Mozilla Thunderbird/thunderbird.exe: PE32+ executable (GUI) x86-64, for MS Windows, 7 sections
    

    残念ながらThunderbirdはx86-64アーキテクチャ向けしか用意されていませんでした。
    先は長そうな感じ…

  • Firefox
    https://www.mozilla.org/ja/firefox/all/desktop-release/win64-aarch64/ja/
    最近はFirefoxを使う機会はほとんど無いのですが、一応インストールしてみましたが、FirefoxはAarch64に対応していました。

    file /mnt/c/Program\ Files/Mozilla\ Firefox/firefox.exe
    
    /mnt/c/Program Files/Mozilla Firefox/firefox.exe: PE32+ executable (GUI) Aarch64, for MS Windows, 8 sections
    
  • Python
    https://www.python.org/downloads/windows/
    最近は機械学習系のプログラムを書くことも多いので、どの環境でもPythonが使えることは重要なのですが、PythonはありいがたいことにAarch64に対応したバージョンが用意されていました。

    file /mnt/c/Users/kazu/AppData/Local/Programs/Python/Python313-arm64/python.exe
    
    /mnt/c/Users/kazu/AppData/Local/Programs/Python/Python313-arm64/python.exe: PE32+ executable (console) Aarch64, for MS Windows, 6 sections
    

    しかしながら、Pythonを使う際にセットで使われることが多いAnacondaやpyenvなどのPython仮想化環境がうまくAarch64環境に対応できないようで、これらのツールを使ってPythonの環境を切り替えようとするとx86-64向けの環境がインストールされてしまうので使い物にならない感じです。

  • Docker Desktop
    https://docs.docker.com/desktop/setup/install/windows-install/
    Windowsネイティブで動くPython環境はちょっとまだ使えないかな?な感じだったので、仕方がないのでDockerコンテナ上でなんとかしようか?ということで、Docker Desktopをインストールしてみましたが、Docker Desktopはβ版ではありますが、ちゃんとAarch64に対応する環境が用意されていました。

  • WSL2
    まあ、Microsoft純正の仕組みな訳ですから当たり前と言えば当たり前なのですが、WSL2はきちんとAarch64対応のものが用意されているし、そこで稼働するUbuntuなどもちゃんとしたAarch64アーキテクチャ向けのものとなっています。

    uname -a
    
    Linux ThinkPad-T14s 5.15.167.4-microsoft-standard-WSL2 #1 SMP Tue Nov 5 00:19:58 UTC 2024 aarch64 aarch64 aarch64 GNU/Linux
    

ただし、残念なことにAarch64環境で動くWSL2ではカスタムカーネルを動作させるための仕組みが用意されていないようで、Githubで公開されているカーネルソースコードを使ってカスタムカーネルをビルドしても、それを利用する手段がありません。

  • Vim
    Vimはwingetコマンドを使ってインストールしましたが、残念ながらx86-64アーキテクチャ向けのパッケージがインストールされてしまいました。

    file /mnt/c/Program\ Files/Vim/vim91/vim.exe
    
    /mnt/c/Program Files/Vim/vim91/vim.exe: PE32+ executable (console) x86-64, for MS Windows, 7 sections
    

    wingetのインストール時にアーキテクチャを指定するオプション-a arm64を付加してインストールしようとしてもパッケージが見つかりません。

    winget install -a arm64 --id GNU.Emacs
    
    該当するインストーラーが見つかりません。詳細については、ログを参照してください。
    
  • Git
    Gitもwingetコマンドを使ってインストールしましたが、こちらはちゃんとAarch64のバイナリパッケージがインストールされました。

    file /mnt/c/Program\ Files/Git/bin/git.exe
    
    /mnt/c/Program Files/Git/bin/git.exe: PE32+ executable (console) Aarch64, for MS Windows, 8 sections
    
  • OpenJDK 11 (LTS)
    いままではOpenJDKはZulu OpenJDKが好みで使ってきたのだけど、残念ながらZulu OpenJDKはAarch64に未対応だったため、今回はMicrosoftが提供するOpenJDK 11をインストールして使いました。

    winget install -a arm64 --id Microsoft.OpenJDK.11
    
    java -version
    
    openjdk version "11.0.26" 2025-01-21 LTS
    OpenJDK Runtime Environment Microsoft-10823447 (build 11.0.26+4-LTS)
    OpenJDK 64-Bit Server VM Microsoft-10823447 (build 11.0.26+4-LTS, mixed mode, sharing)
    
  • Marven 3
    Java向けのプロジェクトマネージャーの一つであるMarvenも日常的に使っているのでこれもインストールしてみます。
    MarvenはまだwingetのパッケージにはなっていないようなのでMarvenプロジェクトのダウンロードページからバイナリパッケージのZIPファイルをダウンロードしてこれを展開して利用しました。
    Mavenは基本的にはJavaのアプリケーションとそれを起動するためのプラットフォーム毎のシェルスクリプトの組み合わせなのでネイティブで動作できるかはインストールされているJavaの実行環境に左右される感じでしょうか

  • Go Lang (Go言語)
    自分はほとんどGoでプログラムを書くことはないのですが、Aarch64ネイティブなnvmを見つけられず、仕方がないので自分でビルドしてみようかな?と思ったらnvm-windowsのビルドスクリプトの中で使われていたのでインストールしてみました。

    winget install -a arm64 Golang.Go
    

で、結果的にはインストールしたGo Langを使ってビルドしたnvmを動かすことには正解したのですが、残念なことに自分が使いたかったバージョンのNodeがAarch64ネイティブでは用意されていなかったのでいまのところは役に立っていない状態です

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?