安装服务器和存储库工具
fdroidserver 提供了你所需的全部工具,可用于设置和维护你自己的存储库,运行 fdroid 构建服务器,还可以像 f-droid.org 一样,运行自己的网站 。F-Droid 开发人员大多使用 Debian、Arch 和 Ubuntu,所以它们是当前具有最佳支持的平台。
要从命令行设置和维护你自己的应用和媒体文件集合,请使用来自 fdroidserver 的工具设置一个 F-Droid 存储库。要进行完整的 F-Droid 构建服务器设置,请查看构建服务器安装。
F-Droid 工具,也被称为 fdroidserver,可以从标准操作系统包存储库安装。 在基于 Debian 的操作系统上,如下命令应该足以安装基本的 F-Droid 设置:
sudo apt-get install fdroidserver
但是,通常会发现标准操作系统包存储库中可用的 fdroidserver 版本已过时。
获取更新版本
可以在 F-Droid PPA 或你操作系统的 backports 存储库中找到更新版本的 fdroidserver。
Ubuntu/Mint:使用 F-Droid PPA (指纹:
9AAC 2531 93B6 5D4D F1D0 A13E EC46 32C7 9C5E 0151
):sudo add-apt-repository ppa:fdroid/fdroidserver sudo apt-get update sudo apt-get install fdroidserver
Debian:首先设置 backports,然后将下列指令中的 ‘buster’ 替换为你使用的Debian 发行版并运行:
bash apt-get install fdroidserver/buster-backports
Fedora/Archlinux
由于这些发行版中的软件包可能比 pypi 上的官方软件包要新,因此在一个单独的虚拟环境中安装依赖关系可以解决依赖关系解析失败的问题:
python3 -m venv env
source env/bin/activate
pip install -e .
Guix
这些工具也可在主 Guix 频道中找到。运行以下指令进行安装:
guix install fdroidserver
macOS
你可使用 Homebrew 直接安装 fdroidserver
, 或将 easy_install
作为最终手段:
Homebrew:
- 准备工作:查看 Homebrew formula 以获取说明。例如:
brew install android-sdk
android update sdk --no-ui --all --filter tools,platform-tools,build-tools-25.0.0
- 安装 fdroidserver:
brew install fdroidserver
仅用 easy_install
:
sudo easy_install fdroidserver
Windows
适用于 Linux 的 Windows 10 子系统
从Windows 10”周年更新”开始,你可以在 Windows 中启用 Ubuntu 环境,这也被称为 “Windows 上的 Bash”,”Windows 上的 Ubuntu” 或 “适用于 Linux 的 Windows 子系统”。
- 安装适用于 Linux 的 Windows 子系统
- 从F-Droid PPA 安装 fdroidserver (指纹:
9AAC 2531 93B6 5D4D F1D0 A13E EC46 32C7 9C5E 0151
),方法是在 Bash shell 窗口中运行:sudo add-apt-repository ppa:fdroid/fdroidserver sudo apt-get update sudo apt-get install fdroidserver
Cygwin
- 将 Java 加入你的 PATH:http://www.kingluddite.com/tools/how-do-i-add-java-to-my-windows-path
- 安装 Cygwin https://www.sourceware.org/cygwin/
- 在 Cygwin 中安装这些包: gcc-core git openssh python3 python3-pyasn1 python3-imaging python3-paramiko python3-requests python3-setuptools rsync wget
- 打开 Cygwin bash shell 并运行:
easy_install fdroidserver
然后进行存储库设置:
export ANDROID_HOME=/cygdrive/c/path/to/android-sdk
fdroid init # keystore 生成将失败
运行 fdroid init
后,你需要在 config.yml 中将 Windows 路径设置为你的 keystore。也可以使用 virtualenv 和 pip 在虚拟环境中安装 fdroidserver。
Docker 可执行镜像 (任何平台)
如果你已经在运行 Docker “可执行镜像”,那么运行 fdroidserver 的最简单方法是使用我们的 可执行镜像
安装最新代码(任何平台)
从源代码安装 fdroidserver 工具的最简单方法是使用 virtualenv 和 pip。首先,确保你安装了 Python3 版本的 virtualenv 或 pyvenv,它应该包含在你的操作系统的 Python 发行版中或通过 dnf/yum/pacman/emerge/Fink /MacPorts/Brew 等其他方式安装。接下来介绍如何将 fdroidserver 安装到 Python“虚拟环境”中:
pyvenv fdroidserver-env
. fdroidserver-env/bin/activate
pip install git+https://gitlab.com/fdroid/fdroidserver.git
你可以在CI测试中找到上述步骤的一个用例:https://gitlab.com/fdroid/fdroidserver/blob/master/.gitlab-ci.yml
构建应用
要使用 F-Droid 构建应用,必须安装 Java 和完整的 Android SDK。这个过程目前仅在 GNU/Linux 上进行,但我们欢迎使其能在 macOS 和 Windows 上运行的补丁。如果你只想为已有的 APK 文件制作 F-Droid 存储库或不知道这意味着什么,那么你可以跳过本节。
为了使用 fdroidserver 工具链构建 Android 应用,必须安装 Java、Android SDK 以及其他必要工具。在 Debian 中只有 部分 Android SDK 可用,因此必须手动安装 Android SDK 以及它需要的包(Android SDK 工具包括一些 32 位二进制文件,所以即使是 64 位系统也需要这些 i386 库包 _)。 F-Droid 工具使用 Android SDK 来构建和检查应用,因此你必须在使用 _fdroidserver 之前安装和设置 Android SDK。
安装 Android SDK 并确保 ANDROID_HOME
环境变量设置正确。请务必验证你下载的文件,你可以在 Google 的下载页面上仔细检查 SHA-1 校验和。
$ sudo apt-get install fdroidserver
$ mkdir ~/android-sdk-linux
$ cd ~/android-sdk-linux
$ wget https://dl.google.com/android/repository/commandlinetools-linux-6858069_latest.zip
$ echo "87f6dcf41d4e642e37ba03cb2e387a542aa0bd73cb689a9e7152aad40a6e7a08 commandlinetools-linux-6858069_latest.zip" | sha256sum -c
commandlinetools-linux-6858069_latest.zip: OK
$ unzip commandlinetools-linux-6858069_latest.zip
$ export ANDROID_HOME="$HOME/android-sdk-linux"
$ ./cmdline-tools/bin/sdkmanager --sdk_root="$ANDROID_HOME" platform-tools "build-tools;30.0.3"
注意:如果你安装了 Android Studio,则你已经安装了 Android SDK。它应该位于 ~/Android/Sdk
而不是 ~/android-sdk-linux
。当你在 Android Studio 中打开工具→SDK 管理器菜单时,就可以找到该位置。
要将这些设置永久添加到 shell 中,请执行以下操作:
$ echo export ANDROID_HOME=$ANDROID_HOME >> .bashrc
构建 f-droid.org 中的所有应用
为了构建 f-droid.org 收录的所有应用,就需要更多的软件包:
- 你想构建的应用所请求的所有 SDK 平台
- 每个应用构建过程所需的所有 Debian 包(maven、ant等)
- 每个源代码管理工具(git、subversion、mercurial等)
- 应用使用的 Android NDK 的每个版本
除此之外,要以 f-droid.org 所使用的方式构建应用,就需要完整的构建服务器设置。 这是一个更安全的、可用于生产的设置,需要稍多的设置和资源。构建服务器设置脚本提供了一个全面的参考。
如果你想用 F-Droid 工具制作你自己的官方版本,那么你还需要设置签名过程。
专有的非自由库
Android SDK 由 Google 以专有许可提供。其中,基本的构建工具、SDK 平台、支持库和一些其他组件都在 Apache 许可下提供源代码。
使用 Google Maps 构建应用时使用的 Google API 是自由的,因为该库已预装在设备上。Google Play 服务、Google Admob、GCM 和许多其他第三方库是专有的,不能包含在 F-Droid 主存储库中。 MicroG 项目正在为一些最常用的专有 Google 库开发免费软件替代品
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论