加载论坛时出错,请强制刷新页面重试。

自建二进制翻译应用测试仓库

yetist

为了互相测试交流,有条件的朋友可以为archlinux自建二进制翻译应用软件测试仓库。

一、Demo 仓库(仅用于测试)

https://██████████████████████████

1.1 Demo 仓库配置方法

编辑 /etc/pacman.conf 文件,在最后追加以下内容:

[wine-apps]
# 如果是 x86_64 archlinux,请删除下面一行首的#,以跳过软件包签名验证
#SigLevel = Never
Server = https://██████████████████████████

1.2 仓库软件包查询方法

使用以下命令可列出 wine-apps 仓库中包含的软件包名称:

$ pacman -Sl | grep ^wine-apps

1.3 安装软件方法:

软件安装方法和通常安装 archlinux 软件包方法一致:

$ sudo pacman -Sy <包名>

二、wine 应用打包

打包 wine 应用,需要考虑几点:

  • 安装应用包后可在主菜单显示菜单项
  • 应用容器(.wine)目录特定于操作系统用户,所以应支持不同用户使用
  • 应用应可升级,升级时不应重置注册表等个人项目
  • 个别应用可能在特定版本的wine上运行效果较好,所以需要安装多个版本的wine,并且应用能指定特定wine版本

为满足以上需求,分别设计了 wine-app-helper 和 wine 应用包规范(适用于 x86 和 loongarch)。

wine-app-helper 包括2个命令:

  • wine-mkapp,创建 app 打包辅助工具
  • wine-run,用于封装 app 运行。

2.1 app 目录结构

app 打包后,目录结构如下:

├── opt
│   └── wine-apps
│       └── cstrike
│           ├── .appignore               # 应用容器升级时忽略的文件
│           ├── cstrike.metainfo         # 应用的描述信息,描述应用名称、如何解压、如果运行等信息
│           └── cstrike.tar.zst          # 纯净的应用容器文件,首次运行时解压
└── usr
    ├── bin
    │   └── cstrike -> wine-run          # 可执行文件,由 wine-app-helper 包中的 wine-run 脚本负责
    └── share
        ├── applications
        │   └── cstrike.desktop          # 菜单项
        └── icons                        # 图标文件
            └── hicolor
                ├── 16x16
                │   └── apps
                │       └── cstrike.png
                └── 32x32
                    └── apps
                        └── cstrike.png

2.2 app制作过程

1. 制作容器

在本机(loongarch、x86_64)使用 wine 安装应用软件,并测试调整好 wine 应用状态。

建议从 wine-apps 仓库安装 win32app 包,安装完成之后,运行win32app命令,会调出 winecfg 界面,然后以它做为基础容器进行安装,此容器目录位于 ~/.local/share/wineprefixes/win32app,可设置 WINEPREFIX 变量指向这个路径,再进行后续的安装、调试:

export WINEPREFIX=~/.local/share/wineprefixes/win32app

2. 应用打包

容器制作、调试好之后,运行 wine-app-helper 包中的 wine-mkapp 生成 archlinux 打包模板目录:

$ wine-mkapp ~/.local/share/wineprefixes/win32app

将会在 /tmp 目录下生成包含 PKGBUILD 文件的 Archlinux 打包模板,对其进行适当调整,最后在此目录中运行 makepkg 命令可完成应用打包。

打包示例可参考:https://github.com/loongarchlinux/wine-apps

三、自建仓库

自建仓库时,请先为自己的仓库起个好名字,假设叫 custom

3.1 生成仓库

将所有打包好的软件包 *.pkg.tar.zst 文件保存在同一个目录中(假设为~/repos),然后运行以下命令生成仓库:

$ cd ~/repos
$ repo-add -p custom.db.tar.gz *.pkg.tar.zst

如果生成的仓库要签名,请加上 --sign --key <密钥> 参数,更多用法请查看 repo-add --help

3.2 本地仓库测试

生成好仓库之后,可以先在本地进行测试。

请在 pacman.conf 文件最后追加以下内容:

[custom]
#SigLevel = Never
Server = file:///home/<USER>/repos    #请将此路径替换为仓库的绝对路径

假设打包的应用名称为 testapp,可用以下命令安装、运行:

$ sudo pacman -Sy <testapp>
$ testapp
$ testapp --help               # 可以查看帮助

如果应用运行有问题,请重新调整制作,如果应用已经发布过,重新打包时,pkgrel 应该自增 1

3.3 发布公网仓库

将生成好的目录发布到服务器上,假如使用https://example.com/archlinux/custom/os/any/custom.db.tar.gz 可下载到 custom.db.tar.gz 文件,
则仓库配置内容为:

[custom]
#SigLevel = Never
Server = https://example.com/archlinux/custom/os/any

知识共享许可协议
本站文章除其作者特殊声明外,一律采用CC BY-NC-SA 4.0许可协议进行授权。
进行转载或二次创作时务必以相同协议进行共享,严禁用于商业用途