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'

그리고 내가 다음 단계를 따르려고 할 때Anbox나는 이것을 얻습니다 :

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

내가 도대체 ​​뭘 잘못하고있는 겁니까?

PS: 이 질문은 원래 다음 위치에 게시되었습니다.스택 오버플로하지만 강제 폐쇄됐다.

추신: 제 기술적인 배경은 극히 제한되어 있습니다. 감사해요

답변1

내 기술적 배경은 극히 제한되어 있습니다.

걱정하지 마세요. 이는 실제로 유용한 정보입니다. 적어도 나에게는 도움이 된다노력하다귀하의 경험 수준에 맞는 답변을 제공합니다. 즉, 그 이유는 다음과 같습니다.~이다상당히 기술적인 내용이지만 지금까지 그 중 일부를 해결하기 위해 노력하는 것은 훌륭했습니다.

제 생각에 여러분이 본 처음 두 오류는 모두 WSL이 Systemd를 지원하지 않기 때문에 발생했습니다(따라서 Snaps도 지원하지 않음). 이것은 아마도 사람들이 "실제" Linux 시스템을 일대일로 대체하려고 할 때 직면하게 되는 가장 큰 과제 중 하나일 것입니다.

Systemd는 대부분의 Linux 배포판에 대한 "표준" 초기화 시스템이지만 WSL은 자체 시스템을 /init시작으로 사용하므로 여기서는 다루지 않겠습니다.

그러나 이는 Systemd를 기대하는 일부 소프트웨어가 추가 노력 없이는 WSL에서 작동하지 않는다는 것을 의미합니다. 스냅Systemd를 활용하는 Linux에 소프트웨어를 설치하는 방법입니다.

다음과 같이앤박스 설치 가이드언급:

Anbox를 설치하려면 시스템이 스냅을 지원해야 합니다. 우리는 현재 Anbox의 다른 배포 방법을 공식적으로 지원하지 않지만 다양한 배포판(예: Arch Linux)을 위해 커뮤니티에서 만든 패키지가 있지만...

WSL의 Systemd/Snap 지원에 대한 해결 방법이 있으며 두 번째 시도인 Genie가 그 중 하나입니다. 즉, 나는생각하다Genie 설치에 오래된 지침을 사용하고 있습니다. 확인해 보세요지니 깃허브그것에 대한 최신 정보는.

내 원래 답변에 대한 의견을 바탕으로 :

@moyadin *windowscentral.com에 게시한 이 링크는 Amazon 스토어를 Google 스토어로 대체하기 위한 것입니다. 나는 이 점에서 성공했다.

와우 - 꽤 기술적인 부분이라 정말 감동받았습니다 ;-). 원래는 해당 가이드를 사용하여 WSL2를 설치하는 것을 언급하고 있다고 생각했습니다. 나는 지금 당신이 한 일을 이해하기 위해 그것을 훑어 보았습니다.

해당 프로그램이 실행 중이라면 WSA(Android용 Windows 하위 시스템)의 초기(수정된) 버전을 사용하고 있는 것입니다.~해야 한다WSL2와 같은 가상 머신에서 실행되므로 격리됩니다. 이 가이드에는 아직 "일반" 버전의 Windows 11에서 실행되도록 설계되지 않은 일부 "베타" 기술이 포함되어 있기 때문에 아마도 해당 가이드를 직접 따르지는 않을 것입니다. 하지만 저는 시스템에 관해서는 매우 보수적입니다.

반면에 내가 가지고 있는 Windows 11 VM에서 사용해 볼 수도 있습니다.

어제 WSL2에 Anbox를 설치하려고 시간을 보냈으나 성공하지 못했습니다. 최소한 다음이 필요합니다.

  • 나보다 더 나은 수준으로 달리는 시스템

  • 내가 아는 한, 다음을 지원하는 커널을 직접 빌드해야 합니다.Anbox binderashmem커널 모듈. 내가 아는 한 나는 이것으로 성공했지만, 제대로 하려면 두 번의 시도가 필요했습니다.

  • 사용자 정의 커널을 사용하도록 WSL2를 설정합니다(다시 한번 이 작업을 성공적으로 수행했으며 Anbox 모듈이 제대로 로드되었는지 확인했습니다).

  • Anbox 설치 -- 내가 있는 동안~였다WSL2에 Snap을 설치할 수 있었지만 실제로 실행하는 데는 실패했으며 여전히 Systemd 문제로 인한 것이라고 95% 확신합니다.

    시간을 더 투자하면 성공할 수도 있지만 Play 스토어로 이동하려면 다음 단계를 수행해야 합니다.

  • 매우 복잡한 실행스크립트. 기사에서 이런 내용을 발견한 것이 아이러니하게도 웃긴다Anbox: Google Play 스토어를 설치하고 ARM(libhoudini) 지원을 활성화하는 쉬운 방법. 그리고 그것이 쉬운 방법이라고 말한 후에 그들은 당신에게 다음과 같이 말합니다:

    경고: 작성하지 않은 스크립트는 내용을 모르고 실행하지 마십시오. 이 스크립트를 실행하기 전에 해당 코드를 확인하세요. 불행하게도 해당 스크립트가 수행하는 작업을 이해하려면높은리눅스 지식 정도.

하지만 Anbox에 그렇게 많은 작업이 필요하다면 모든 것을 무시하겠습니다.

나는 그것이 올바른 선택이라고 말하고 싶습니다. 내 추천은 (a) 실행 중인 것을 고수하는 것입니다. (b) 아마도 Anbox 솔루션보다 좋거나 더 나을 것입니다(그리고 그만큼 안전합니다).

내 최종 목표는 앱이 모든 것에 액세스할 수 없는 격리된 환경(예: Microsoft Store에서 다운로드한 앱 등)에서 Android 앱을 다운로드하는 것입니다. VMware의 Android x86은 현재 사용 중인 옵션입니다.

글쎄요, Windows Central에 문서화된 WSA 옵션이 작동한다면 그것도 안전할 가능성이 높습니다. Microsoft는 출시가 가까워지면 WSA에 대한 더 많은 아키텍처 정보를 공개할 것이라고 확신하지만 WSA는 VM에서 실행된다고 말했습니다. 나는 그것이 WSL2의 아키텍처와 매우 유사하다고 생각합니다.

우리가 무엇을정말WSA가되기를 기다리고 있습니다출시된마이크로소프트에 의해. 그러면 Google Play 스토어 사용을 위한 더 나은 옵션(아직 지원되지는 않지만)이 제공되기를 바랍니다.

관련 정보