yay的安装与使用与Anbox的安装"/>
yay的安装与使用与Anbox的安装
yay的安装
安装
首先安装所需软件包base-devel和git
pacman -Syu base-devel git
之后使用git clone下载代码
git clone [URL_FORM_AUR]
这里的[URL_FROM_AUR]指从yay的AUR页面复制的Git Clone URL
最后进入clone下来的文件夹运行makepkg生成软件包
cd yay
makepkg
可以额外增加makepkg的一些选项改变使用体验:
-s 使用pacman自动安装缺失依赖
-i 编译成功后自动安装软件包
-r 编译成功后删除安装的依赖关系
-c 编译成功后删除编译过程临时文件
最后使用pacman 安装编译好的安装包
pacman -U [PACKAGE_NAME]
另外yay可能使用了一些站点位于国外的脚本,我在安装时出现了多次下载失败的情况,且其中除了github之外还有其他包。
GOPROXY.IO - 一个全球代理 为 Go 模块而生
以上是一个代理,可以缓解golang依赖下载失败的情况,官网给出的使用指令如下:
export GOPROXY=,direct
使用
yay的使用与pacman是几乎相同的。如yay -Syu就可以更新包缓存并进行自动升级。
Anbox
Anbox - ArchWiki
根据项目页,Anbox已经不再开发,作者推荐转去使用waydroid。这里的笔记不再有任何意义,仅作为存档,以及之后可能的安装Waydroid时的参考。
arch wiki页更新了新的问题,最新的Linux Zen内核已经不再包含ashmem转而使用memfd
ashmem being removed in upstream and Debian kernels · Issue #2042 · anbox/anbox (github)
安装
首先是安装Anbox的模块,Arch Wiki上提供了多种解决方案。我选择使用Linux Zen内核的方案。这个内核有开箱即用ashmem和binderfs支持。binderfs需要在运行Anbox之前挂载,这一步我放在了服务中。
之后安装一个Android镜像:我选择带houdini和root的anbox-image-houdini-rooted:
yay -S anbox-image-houdini-rooted
最后就是安装anbox本体了
yay -S anbox-git
配置
首先配置Anbox的网络
有三个方式可以配置网络:anbox-bridge、systemd、Network Manager。另外我这里安装的anbox-git是不带anbox-bridge这个脚本的。
我选择使用Network Manager
nmcli con add type bridge ifname anbox0 -- connection.id anbox-net ipv4.method shared ipv4.addresses 192.168.250.1/24
这是Arch Wiki上给出的最简单的配置命令行,如果要更改请参考Arch Wiki上的相关内容。
编辑anbox服务,在启动服务之前挂载binderfs并启动网桥:
在 [Unit]下加入After使程序在NetworkManager启动后再运行(如果不成功请见第三次更新)
在[Service]下加上下图中开头为ExecStartPre和ExecStopPost的行
在 [Install]下注释掉最后一行Also
Wants=NetworkManager-wait-online.service
After=NetworkManager-wait-online.service
ExecStartPre=/usr/bin/mkdir --mode=0755 /dev/binderfs
ExecStartPre=/usr/bin/mount -t binder none /dev/binderfs #这两句实现binderfs
ExecStartPre=/usr/bin/nmclt con up anbox-net #这句启动网桥
ExecStopPost=/usr/bin/umount /dev/binderfs
ExecStopPost=/usr/bin/rmdir /dev/binderfs #这两句关闭binderfs,防止下次启动失败
ExecStartPre=/usr/bin/nmclt con down anbox-net #这句关闭网桥
更新1:之后出现了重启后无法联网的问题,于是在之前的配置文件中再增加启动服务时重启网桥的语句,已经更新添加在前面。
更新2:由于NM没有启动导致整个服务启动失败的情况,需要使服务在NM服务启动之后运行,已经更新添加在前面。
*更新3:NetworkManager-wait-online.service有时候会启动失败导致Anbox不能启动,这时需要修改/lib/systemd/system/NetworkManager-wait-online.service,将其中的ExecStart=中的-s选项去掉。NetworkManager - ArchWiki (archlinux)
这时候使用Systemctl start 启动这个服务后就可以启动Anbox了。
使用
安装android-tools,使用adb 安装应用程序。adb install xx.apk
卸载笔记(不保证完全正确和不留残留)
卸载程序:yay -Rsn anbox-git anbox-image-houdini-rooted
*以上指令将卸载anbox和Android镜像的配置文件、依赖(且不被其他程序依赖)、程序
删除启动器中的项:~/.local/share/applications/中删掉anbox文件夹(KDE桌面环境)
删除文件残留:删除/var/lib/anbox文件夹(从根搜索4级只找到这一个tree -L 4 | grep anbox)
清理yay构建:/home/kevin/.cache/yay/ 最好能观察yay卸载时的反馈,把被卸载的软件的构建都删掉
*如果像我一样忘了看反馈,也可以去看AUR中anbox-git的依赖,或者用pacman -Qi 一个个查也行
更多推荐
yay的安装与使用与Anbox的安装
发布评论