Windows 11 (Ubuntu WSL) に Anbox をインストールする

Windows 11 (Ubuntu WSL) に Anbox をインストールする

Windows 11にUbuntu WSLをインストールしました。このガイド問題なくインストールできました。しかし、Anboxを以下の手順でインストールしようとすると、公式ウェブサイト、次のようなエラーが繰り返し発生します:

error: cannot communicate with server: Post http://localhost/v2/snaps/anbox: dial unix /run/snapd.socket: connect: no such file or directory

そして

System has not been booted with systemd as init system (PID 1). Can't operate. Failed to connect to bus: Host is down

そこで私はこの解決策を試しました:

# This part adds the Microsoft repository to install dotnet-runtime, which you need for `systemd-genie`
wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb
# This part installs the .NET runtime
sudo apt-get update; \
  sudo apt-get install -y apt-transport-https && \
  sudo apt-get update && \
  sudo apt-get install -y aspnetcore-runtime-6.0
# This part adds the transdebian repository, which contains systemd-genie
wget -O /etc/apt/trusted.gpg.d/wsl-transdebian.gpg https://arkane-systems.github.io/wsl-transdebian/apt/wsl-transdebian.gpg

chmod a+r /etc/apt/trusted.gpg.d/wsl-transdebian.gpg

cat << EOF > /etc/apt/sources.list.d/wsl-transdebian.list
deb https://arkane-systems.github.io/wsl-transdebian/apt/ $(lsb_release -cs) main
deb-src https://arkane-systems.github.io/wsl-transdebian/apt/ $(lsb_release -cs) main
EOF
#This part installs systemd-genie
sudo apt update
sudo apt install -y systemd-genie
# This part adds a script to `~/.profile` to automatically start genie every time you start up bash.
echo "# Are we in the bottle?
if [[ ! -v INSIDE_GENIE ]]; then
  read -t 3 -p 'yn? * Preparing to enter genie bottle (in 3s); abort? ' yn
  echo

  if [[ $yn != y ]]; then
    echo 'Starting genie:'
    exec /usr/bin/genie -s
  fi
fi
" >> ~/.profile
# Restart bash
exec bash

次に Ubuntu WSL を起動したとき、コマンドを実行する前に次のメッセージが表示されました。

-bash: /root/.profile: line 15: conditional binary operator expected
-bash: /root/.profile: line 15: syntax error near `y'
-bash: /root/.profile: line 15: `  if [[  != y ]]; then'

そして、私が手順に従おうとするとアンボックス私はこれらを受け取ります:

/dev/binder$: command not found
-bash: /dev/ashmem: No such file or directory
$: command not found

何が間違っているのでしょうか?

追記:この質問は元々スタックオーバーフローしかし強制的に閉鎖されました。

追記: 私の技術的な知識は非常に限られています。

答え1

私の技術的なバックグラウンドは非常に限られています

心配しないでください。ここには実際に役立つ情報があります。少なくとも私には役に立ちます試すあなたの経験レベルに合った答えを提供するためです。とはいえ、その理由はかなり技術的ですが、これまでいくつかの問題に取り組んで素晴らしい成果を上げてきました。

ご存知のとおり、最初に表示された 2 つのエラーは、どちらも WSL が Systemd をサポートしていない (したがって Snaps もサポートしていない) ために発生しました。これはおそらく、WSL を「本物の」Linux システムの 1 対 1 の代替品として使用しようとする際に遭遇する最大の課題の 1 つです。

Systemd はほとんどの Linux ディストリビューションの「標準」初期化システムですが、WSL は独自のシステムを/init起動時に使用します。これには、ここでは詳しく説明しない正当な理由があります。

しかし、それは、Systemd を前提とする一部のソフトウェアが、追加の作業なしでは WSL 上で動作しないことを意味します。 スナップSystemd を利用して Linux にソフトウェアをインストールする方法です。

としてAnbox インストール ガイド言及:

Anbox をインストールするには、システムが snaps をサポートしている必要があります。現時点では、Anbox の他の配布方法は公式にはサポートされていませんが、さまざまなディストリビューション (Arch Linux など) 向けにコミュニティが作成したパッケージはありますが...

WSLでのSystemd/Snapのサポートには回避策があり、2回目の試みであるGenieもその1つです。とはいえ、考えるGenieのインストール手順が古いです。ジーニー github最新情報についてはこちらをご覧ください。

私の最初の回答に対するコメントに基づきます:

@moyadin *私が windowscentral.com に投稿したこのリンクは、Amazon ストアを Google ストアに置き換えるためのものです。この点では成功しました。

すごいですね。かなり技術的ですね。感心しました。最初は、そのガイドを使用して WSL2 をインストールすることだけを指していると思いました。今、ざっと目を通し、何をしたのかを理解しました。

もしそれを実行していたら、WSA(Windows Subsystem for Android)の初期バージョン(ただし修正版)を使用していることになります。すべきWSL2 のような仮想マシンで実行されるため、分離される必要があります。このガイドには、Windows 11 の「通常」バージョンで実行するようにはまだ設計されていない、かなり「ベータ」なテクノロジが含まれているため、私自身はおそらくこのガイドには従わないでしょう。しかし、私は自分のシステムに関しては非常に保守的です。

一方、私が持っている Windows 11 VM で試してみるかもしれません。

昨日、WSL2 に Anbox をインストールしようと時間を費やしましたが、成功しませんでした。少なくとも、次のものが必要です。

  • Systemdは私が思っていたよりもうまく動作している

  • 私の知る限り、サポート付きのカーネルを自分で構築する必要がある。Anboxbinderashmemカーネルモジュール私の知る限り、これは成功しましたが、正しく実行するには 2 回の試行が必要でした。

  • WSL2 をカスタム カーネルを使用するように設定します (繰り返しますが、私はこれを成功させ、Anbox モジュールが適切に読み込まれたことを確認しました)。

  • Anboxをインストールする -- 私はだったWSL2 に Snap をインストールできましたが、実際に実行することはできませんでした。これは Systemd の問題によるものであると 95% 確信しています。

    もっと時間をかけてやれば成功するかもしれませんが、Play ストアに掲載するには次のステップを踏む必要があります...

  • 非常に複雑な脚本皮肉なことに、この記事でこれを見つけたのは面白い。Anbox: Google Play ストアをインストールして ARM (libhoudini) サポートを有効にする簡単な方法そして、それは簡単な方法だと言った後、彼らは次のように言います(当然です)。

    警告: 自分で書いたスクリプトを、その動作を知らずに実行しないでください。このスクリプトを実行する前に、コードを確認してください。残念ながら、そのスクリプトが何をしているかを理解するには、高いLinux の知識レベル。

しかし、Anbox にそれほど大規模な作業が必要になる場合は、すべてを無視することになります。

それが正しい選択だと私は思います。私の推奨は、(a) 現在実行中のものを使い続けること、(b) おそらく Anbox ソリューションと同等かそれ以上の性能 (および安全性) があるということです。

私の最終目標は、アプリがすべてのものにアクセスできない隔離された環境で Android アプリをダウンロードすることです (たとえば、Microsoft Store からダウンロードしたものなど)。現在私が使用しているオプションは、VMware 上の Android x86 です。

そうですね、Windows Central が文書化した WSA オプションが機能しているのであれば、それはおそらく同じくらい安全です。Microsoft はリリースが近づくにつれて WSA のアーキテクチャ情報をさらに公開すると思いますが、VM で実行されると Microsoft は言っています。アーキテクチャは WSL2 と非常に似ていると思います。

私たちが本当にWSAがリリースMicrosoft によって。そうすれば、Google Play ストアを使用するためのより良いオプション (まだサポートされていませんが) がいくつか提供されることを期待しています。

関連情報