Инструменты fdroidserver предоставляют все необходимое для создания и поддержки собственных репозиториев, запуска сервера сборки fdroid и даже размещения собственного сайта, например f-droid.org. Разработчики F-Droid в основном работают на Debian, Arch и Ubuntu, поэтому в настоящее время это наиболее поддерживаемые платформы.
Чтобы создать и поддерживать собственную коллекцию приложений и мультимедиа из командной строки, настройте репозиторий F-Droid с помощью инструментов из fdroidserver. Чтобы запустить полную настройку сервера сборки F-Droid, смотрите Build Server Setup.
- Debian/Ubuntu/Mint и другие
- Fedora/Archlinux
- Guix
- macOS
- Windows
- Исполняемый образ Docker (любая платформа)
- Установка новейшего кода (любая платформа)
- Создание приложений
- Сборка всех приложений с сайта f-droid.org
- Проприетарные, несвободные библиотеки
Debian/Ubuntu/Mint и другие
Инструменты F-Droid, также известные как fdroidserver, могут быть установлены из стандартного репозитория пакетов ОС. В ОС на основе Debian этого должно быть достаточно для базовой установки F-Droid:
sudo apt-get install fdroidserver
Однако часто бывает так, что версия fdroidserver, доступная в стандартном репозитории пакетов ОС, уже устарела.
Получение новой версии
Более новую версию fdroidserver можно найти в F-Droid PPA или в репозитории backports вашей ОС.
-
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: сначала настройте бэкпорты, затем замените «buster» на свой выпуск Debian:
bash apt-get install fdroidserver/buster-backports
Fedora/Archlinux
Since packages in these distros could be newer than the official ones on pypi, installing the dependencies in a separate virtual environment workarounds dependency resolving failures:
python3 -m venv env
source env/bin/activate
pip install -e .
Guix
Инструменты также доступны на основном канале Guix. Чтобы установить:
guix install fdroidserver
macOS
Вы можете установить fdroidserver
напрямую, используя Homebrew или, в
крайнем случае, easy_install
:
Homebrew:
- Подготовка: проверьте формулу Homebrew для получения инструкций. Пример:
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
Подсистема Windows 10 для Linux
Начиная с Windows 10 “Anniversary Update”, вы можете включить среду Ubuntu, которая работает в Windows, известную как “Bash on Windows”, “Ubuntu on Windows” или “Windows Subsystem for Linux”.
- настройка подсистемы Windows для Linux
- установите fdroidserver из F-Droid
PPA
(отпечаток:
9AAC 2531 93B6 5D4D F1D0 A13E EC46 32C7 9C5E 0151
), выполнив это в окне оболочки Bash: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 и запустите:
easy_install fdroidserver
Затем настройка репозитория:
export ANDROID_HOME=/cygdrive/c/path/to/android-sdk
fdroid init # создание хранилища ключей будет неудачным
После запуска fdroid init
необходимо задать Windows-путь к вашему
хранилищу ключей в config.yml. Также можно установить fdroidserver в
виртуальной среде с помощью virtualenv и pip.
Исполняемый образ Docker (любая платформа)
Если вы уже используете “исполняемые образы” Docker, то самый простой способ запустить fdroidserver - это использовать наш исполняемый образ
Установка новейшего кода (любая платформа)
Самый простой способ установить инструменты fdroidserver из исходного кода - использовать virtualenv и pip. Во-первых, убедитесь, что у вас установлена версия virtualenv или pyvenv для Python3. Она должна быть включена в дистрибутив 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. Если вы хотите только сделать репозитории F-Droid из APK-файлов, которые у вас уже есть, или не знаете, что это значит, то можете пропустить этот раздел.
Чтобы создавать приложения для Android с помощью инструментария fdroidserver, необходимо установить Java, Android SDK и некоторые другие необходимые инструменты. В Debian доступны только части Android SDK, поэтому Android SDK должен быть установлен вручную, а также пакеты, которые он требует (инструменты Android SDK включают некоторые 32-битные двоичные файлы, поэтому даже 64-битные системы нуждаются в этих пакетах библиотек i386). Инструменты F-Droid используют Android SDK для создания и проверки приложений, поэтому перед использованием fdroidserver необходимо установить и настроить Android SDK.
Установите Android
SDK и убедитесь,
что переменная окружения ANDROID_HOME
правильно установлена. Обязательно
проверьте файл, который вы скачали, вы можете дважды проверить контрольную
сумму SHA-1 на странице загрузки Google.
$ 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, открыв
меню Tools→SDK Manager.
Чтобы добавить эти настройки в оболочку навсегда:
$ echo export ANDROID_HOME=$ANDROID_HOME >> .bashrc
Сборка всех приложений с сайта f-droid.org
Для того чтобы собрать все приложения, которые включены в f-droid.org, требуется гораздо больше пакетов программного обеспечения:
- all SDK platforms requested by the apps you want to build
- all Debian packages required by every app build process (maven, ant, etc)
- every source code management tool (git, subversion, mercurial, etc)
- every version of the Android NDK that apps use
Кроме того, для создания приложений, как они создаются на f-droid.org, требуется целая Build Server Setup. Это более безопасная, готовая к производству установка, которая требует гораздо больше настроек и ресурсов. Сценарии build server provisioning scripts являются полезным справочником по всем необходимым битам.
Если вы хотите создавать собственные официальные релизы с помощью инструментов F-Droid, то вам также потребуется настроить Signing Process.
Проприетарные, несвободные библиотеки
Android SDK предоставляется компанией Google по проприетарной лицензии. При этом основные инструменты сборки, платформы SDK, библиотека поддержки и некоторые другие компоненты находятся под лицензией Apache, и исходный код предоставляется.
API Google, используемые для создания приложений с использованием Google Maps, бесплатны в том объеме, в котором библиотека предустановлена на устройстве. Google Play Services, Google Admob, GCM и многие другие библиотеки сторонних разработчиков являются проприетарными и не могут быть включены в основной репозиторий F-Droid. Проект MicroG разрабатывает свободные программные замены для некоторых наиболее используемых проприетарных библиотек Google