yay的安装与使用与Anbox的安装

2023-05-16

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

-s        使用pacman自动安装缺失依赖
-i        编译成功后自动安装软件包
-r        编译成功后删除安装的依赖关系
-c        编译成功后删除编译过程临时文件

最后使用pacman 安装编译好的安装包
pacman -U [PACKAGE_NAME]

以上是基本步骤,在实际安装过程中可能出现一些编译依赖等问题,也可以通过makepkg的一些选项改变使用体验

另外yay可能使用了一些站点位于国外的脚本,我在安装时出现了多次下载失败的情况,且其中除了github之外还有其他包。

GOPROXY.IO - 一个全球代理 为 Go 模块而生

以上是一个代理,可以缓解golang依赖下载失败的情况,官网给出的使用指令如下:
export GOPROXY=https://proxy.golang.com.cn,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.com)

安装

首先是安装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.org)

这时候使用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 一个个查也行

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

yay的安装与使用与Anbox的安装 的相关文章

随机推荐

  • 算法模型---时间序列模型

    文章来源 时间序列 时间序列是时间间隔不变的情况下收集的不同时间点数据集合 xff0c 这些集合被分析用来了解长期发展趋势及为了预测未来 时间序列与常见的回归问题的不同点在于 1 时间序列是跟时间有关的 而线性回归模型的假设 xff1a 观
  • java: 找不到符号 符号: 类 BASE64Encoder 位置: 程序包 sun.misc

    1 问题 新项目编译报错如下 xff1a java 找不到符号 符号 类 BASE64Encoder 位置 程序包 sun misc 2 解决方案 依图如下 xff0c 修改jdk对应的版本即可
  • tar 打包隐藏文件

    前言 xff1a 先说一下遇到的场景 xff1a 前段时间在配合做 DevOps xff0c 组内有块代码是 php 的 xff0c 需要用 tar 命令打包归档上传到 nexus 库 xff0c 后来发现解压出来的包居然缺失了隐藏文件 x
  • The server selected protocol version TLS10 is not accepted by client preferences [TLS12] 报错处理

    一 问题描述 xff1a 项目工程需求要连接 SqlServer 服务器 xff0c 但是报错了 xff0c 完整错误如下 xff1a com microsoft sqlserver jdbc SQLServerException 驱动程序
  • 23种设计模式

    目录 创建型 1 Factory Method xff08 工厂方法 xff09 2 Abstract Factory xff08 抽象工厂 xff09 3 Builder xff08 建造者 xff09 4 Prototype xff08
  • SpringBoot开启异步多线程

    前言 xff1a SpringBoot 的异步多线程需要从 java 的多线程基础说起 xff0c 可以参考 java 多线程实现的三种方式区别 SpringBoot 在此基础上进行了多次封装 xff0c 所以使用起来非常方便 一 核心参数
  • 制作 java-sdk 的两种方式

    前言 xff1a 平时maven工程里 pom 中的引用的依赖就是别人开发好的 sdk 包 xff1b 工作中为了方便一些开发也需要自定义开发 sdk 包 xff0c 下面介绍下怎么开发 一 两种方式 我们平时引用 sdk 有两种方式 xf
  • SpringBoot 之 AOP

    前言 xff1a Spring 三大核心思想是啥 xff0c 还记得不 xff1f IOC xff08 控制反转 xff09 xff0c DI xff08 依赖注入 xff09 xff0c AOP xff08 面向切面编程 xff09 回顾
  • mongodb 的常用数据操作

    摘要 xff1a 主要记录一些常见 的mongodb 的增删改查 xff0c 方便以后查阅 1 增 基本格式 xff1a db test doc insert 或 db test doc save 样例 xff1a db test doc
  • Python键盘输入转换为列表

    Python输入字符串转列表是为了方便后续处理 xff0c 这种操作在考试的时候比较多见 1 在Python3 0以后 xff0c 键盘输入使用input函数 eg1 span class hljs prompt gt gt gt span
  • java.lang.NoSuchMethodError 原因和处理方案

    问题描述 工程中明明有该方法 xff0c 却提示 java lang NoSuchMethodError 错误 1 原因 java 的类加载机制是把所有不同名称的本类和引用类的包全部加载到内存 xff0c 这样就有一个问题 xff0c 如果
  • java:try...catch跳过异常继续处理循环

    问题描述 在代码循环体中 xff0c 抛出异常后代码会停止执行 xff0c 导致代码不能完整运行 解决方案很简单 xff0c 捕获异常并简单处理一下就可以 1 捕获异常继续执行代码 只贴核心样例代码 public void getTest
  • python去掉空格常用方式

    前言 xff1a 处理字符串时经常要定制化去掉无用的空格 xff0c python 中要么用存在的常规方法 xff0c 或者用正则处理 1 去掉左边空格 string 61 34 it is blank space test 34 prin
  • 20190226-LCD_GUI

    LCD GUI 这里需要先剃度填色 xff0c 然后再显示汉字 xff0c 最后在显示符号和数字 xff0c 否则会被覆盖 xff0c 显示不出来汉字或者数字符号
  • Arch安装

    从2021年4月起 xff0c Arch Linux安装镜像中已经包含了一个官方的简易安装程序archinstall 可以支持在连接网络后进行英文交互式安装 Arch Linux News Installation medium with
  • 存储过程懂不懂

    存储过程的官方定义是这么说的 xff1a 存储过程 xff08 Stored Procedure xff09 是一组为了完成特定功能的 SQL 语句集 xff0c 经编译后存储在数据库中 用户通过指定存储过程的名字并给出参数 xff08 如
  • ArchLinux的用户配置和KDE安装

    用户配置 建立用户 目标是新建一个普通用户 xff0c 这个普通用户可以使用sudo提权 以下默认使用username作为用户名 建立无密码用户并创立其默认用户组 useradd username 更改账户密码 passwd usernam
  • Zsh的简单配置

    Zsh 简体中文 ArchWiki archlinux org 本配置的目标是增加一些简单的功能以及一个能过得去的界面 安装 安装zsh xff08 本体 xff09 和zsh completions xff08 补全 xff09 两个包
  • Arch(KDE Plasma)中文化

    Localization 简体中文 Simplified Chinese 简体中文 ArchWiki 生成中文locale xff08 这一步在安装篇就有写 xff09 在 etc locale gen中取消中文的zh CN UTF 8 U
  • yay的安装与使用与Anbox的安装

    yay的安装 安装 首先安装所需软件包base devel和git pacman Syu base devel git 之后使用git clone下载代码 git clone URL FORM AUR 这里的 URL FROM AUR 指从