Zero Install загружает приложение и его зависимости в отдельный кэш, выбирает совместимые версии и запускает программу без записи файлов в системные каталоги. Такой подход подходит для тестирования разных выпусков, работы без прав администратора и распространения программ напрямую с сайта разработчика.

Zero Install хранит каждую версию программы в отдельном каталоге
Zero Install — децентрализованная система распространения и запуска программ для Windows, Linux, macOS и других Unix-подобных платформ. Разработчик публикует архив приложения и XML-файл с описанием версий, зависимостей, архитектур и адресов загрузки. Пользователь передаёт системе ссылку на этот файл, после чего Zero Install подбирает совместимый набор компонентов.
Обычный установщик часто копирует файлы в Program Files, /usr/bin, /usr/lib и другие общие каталоги. Zero Install распаковывает каждый компонент в собственную директорию внутри кэша. Официальная документация указывает стандартный путь ~/.cache/0install.net/ в Linux и пользовательский кэш приложения в Windows.
Раздельное хранение даёт несколько практических преимуществ:
- разные версии одной программы могут находиться на компьютере одновременно;
- обновление одной версии не перезаписывает другую;
- удаление приложения сводится к очистке записи и файлов в кэше;
- системный пакетный менеджер продолжает работать независимо;
- запуск тестовой сборки не меняет файлы стабильного выпуска.
Простой пример — редактору требуется библиотека версии 3, а утилите сборки нужна версия 2. Zero Install сохраняет обе версии и передаёт каждой программе подходящий набор файлов. Система использует решатель зависимостей, который сопоставляет ограничения по версиям, архитектуре и платформе.
Проект существует с 2003 года и распространяется по лицензии LGPL. Основные сведения о принципах работы опубликованы в официальной документации Zero Install.
XML-лента описывает версии, зависимости и источники загрузки
Центральный элемент Zero Install называется feed — XML-лента приложения. В ней разработчик указывает название программы, доступные выпуски, команды запуска, поддерживаемые процессорные архитектуры, зависимости и контрольные данные архивов.
Zero Install не требует специального формата пакета. Разработчик может использовать обычный ZIP, TAR.GZ или другой поддерживаемый архив. Это упрощает публикацию уже существующего приложения: содержимое сборки не приходится перекладывать в новый контейнер.
Во время первого запуска система выполняет несколько действий:
- Загружает XML-ленту по указанному адресу.
- Проверяет подпись и доверие к ключу издателя, если лента подписана.
- Анализирует платформу, архитектуру процессора и выбранную политику обновлений.
- Подбирает совместимые версии приложения и библиотек.
- Скачивает отсутствующие архивы.
- Проверяет содержимое по криптографическим хешам.
- Распаковывает компоненты в кэш и запускает нужную команду.
Повторный запуск обычно проходит быстрее: готовые компоненты уже находятся на диске. Сеть понадобится при проверке обновлений или загрузке отсутствующей зависимости.
Лента может ссылаться на компоненты с других серверов. Например, графическая программа публикуется на сайте автора, а библиотека обработки изображений — на сайте другого проекта. Такая схема сохраняет независимость разработчиков и позволяет повторно использовать общие компоненты.
Параллельные версии упрощают тестирование и откат
Zero Install полезен в ситуациях, где одна установленная версия программы создаёт ограничения. Разработчик может проверить стабильный выпуск, предварительную сборку и локальную версию из Git на одном компьютере. Каждая сборка получает собственный набор зависимостей.
Политика выбора версии задаёт, какие выпуски разрешено использовать. Пользователь может выбирать стабильный канал, тестовые сборки или закреплённую версию. В актуальных выпусках командной строки доступны параметры закрепления, которые помогают сохранить выбранный вариант во время последующих обновлений.
Такой механизм удобен для нескольких сценариев:
- тестирование новой версии до перехода всей команды;
- воспроизведение старой среды для обслуживания проекта;
- запуск учебного инструмента на компьютере без прав администратора;
- перенос набора приложений между рабочими станциями;
- выдача сотрудникам одинаковых версий внутренних утилит;
- запуск программы, отсутствующей в репозитории дистрибутива Linux.
Разделение программных файлов не изолирует пользовательские данные. Две версии редактора могут открыть один профиль настроек или один документ. Новая версия способна изменить формат конфигурации, после чего старый выпуск перестанет его понимать. Для рискованного тестирования лучше использовать отдельный профиль приложения, виртуальную машину или песочницу.
Системный пакетный менеджер сохраняет контроль над ОС
Zero Install работает рядом с APT, DNF, Pacman, Homebrew, WinGet и другими средствами управления программами. Его кэш отделён от системных каталогов, поэтому установка через Zero Install не заменяет пакет, установленный средствами операционной системы.
В Linux система умеет учитывать пакеты дистрибутива при разрешении зависимостей. Если подходящая библиотека уже установлена через APT или DNF, Zero Install может использовать её согласно правилам интеграции. Остальные компоненты останутся в собственном кэше.
Сочетание двух подходов удобно распределять по назначению:
| Задача | Подходящий инструмент |
| Обновление ядра, драйверов и системных библиотек | Пакетный менеджер ОС |
| Установка служб с системными пользователями и конфигурацией | Пакетный менеджер ОС |
| Запуск нескольких версий пользовательской программы | Zero Install |
| Тестирование приложения без изменения системных каталогов | Zero Install |
| Массовое управление стандартным набором корпоративного ПО | Корпоративный менеджер пакетов или MDM |
| Публикация программы напрямую разработчиком | Zero Install |
Системные службы, драйверы, расширения ядра и компоненты, требующие глубокой интеграции с ОС, остаются задачей штатного установщика. Zero Install лучше раскрывается на уровне пользовательских приложений, командных утилит, библиотек и инструментов разработки.
Цифровые подписи и хеши защищают канал распространения
Безопасность Zero Install строится на проверке метаданных и содержимого. XML-лента может быть подписана ключом разработчика, а каждый архив идентифицируется криптографическим хешем. После загрузки система вычисляет хеш файлов и сравнивает его со значением в ленте.
Хеш решает конкретную задачу: обнаруживает изменение архива после публикации. Подпись связывает ленту с ключом издателя. Пользователь должен проверить, кому принадлежит ключ, прежде чем доверять новой ленте. Автоматическая проверка теряет смысл, если источник или ключ были приняты без проверки.
Zero Install не превращает загруженное приложение в безопасную программу. Запущенный процесс получает права текущего пользователя и способен читать доступные ему файлы, подключаться к сети и менять настройки профиля. Для неизвестного или экспериментального ПО нужны дополнительные меры:
- запуск от отдельной учётной записи;
- песочница;
- виртуальная машина;
- ограничение сетевого доступа;
- резервная копия пользовательских данных;
- проверка репутации разработчика и исходного кода.
Официальное описание модели безопасности доступно в разделе Security. Документация отдельно подчёркивает роль стандартной модели прав операционной системы: ОС защищает системные файлы и данные других пользователей, а Zero Install отвечает за проверку полученных компонентов и управление кэшем.
Windows-версия добавляет графический интерфейс и интеграцию с рабочим столом
Zero Install for Windows объединяет кроссплатформенное ядро на .NET с графическим интерфейсом, ярлыками, меню приложений и средствами интеграции с Windows. Пользователь может добавить программу по ссылке, выбрать версию, создать ярлык и управлять кэшем без постоянной работы в терминале.
На 27 июля 2026 года актуальным пользовательским выпуском является Zero Install for Windows 2.29.2, опубликованный 26 июля 2026 года. В нём исправили ошибку поиска сборки .NET Framework, обработку неудачных передач архивов и обновили библиотеки сжатия. Релиз основан на Zero Install .NET 2.29.2.
Предыдущая крупная ветка 2.29.0 принесла встроенный SAT-решатель зависимостей, поддержку архитектуры ARM64EC, передачу признака исполняемого файла между Windows и WSL через расширенные атрибуты NTFS, а также дополнительные проверки рабочих каталогов.
Скачать актуальную Windows-версию можно через официальную страницу загрузки. Журнал выпусков доступен в репозитории 0install-win.
Командная строка подходит для скриптов и воспроизводимых сред
Команда 0install позволяет запускать приложения, проверять выбранные версии, загружать компоненты заранее и управлять интеграцией. Базовый запуск выглядит так:
0install run https://example.org/app.xmlАдрес должен вести на настоящую ленту Zero Install. После первого обращения программа загрузит метаданные, покажет сведения об издателе, подберёт зависимости и сохранит их в кэш.
Для просмотра выбранных компонентов используется команда:
0install select https://example.org/app.xmlПредварительная загрузка без запуска подходит для ноутбука, который позже будет работать без сети:
0install download https://example.org/app.xmlРазработчики могут включить XML-ленту в репозиторий проекта и описать зависимости незавершённой сборки. Участник команды клонирует исходный код, запускает команду через Zero Install и получает согласованный набор библиотек без изменения глобальной среды.
В CI такой подход помогает фиксировать источник каждого компонента и версию инструмента. Для строгой воспроизводимости одной ленты недостаточно: архивы должны оставаться доступными, хеши — неизменными, а политика выбора версий — зафиксированной.
Кэш требует контроля свободного места и доступности архивов
Zero Install сохраняет загруженные реализации, поэтому со временем кэш занимает больше места. Автоматическое удаление редко используемых версий может нарушить офлайн-сценарий. Перед очисткой стоит проверить, какие программы и версии понадобятся без подключения к сети.
Для управления хранилищем используется графический интерфейс или команда:
0install store manageДецентрализованная модель зависит от доступности сайтов издателей. Если разработчик удалит старый архив, новая установка этой версии станет невозможной. Уже загруженная копия продолжит работать, пока её файлы остаются в кэше.
Для команды или организации разумно поддерживать зеркало нужных архивов. Это снижает зависимость от внешнего сервера, ускоряет повторные загрузки и сохраняет старые версии для сборок и тестов.
Ещё одно ограничение связано с количеством опубликованных приложений. В экосистеме Zero Install есть тысячи лент, качество и актуальность у них различаются. Перед использованием нужно проверить дату выпуска, сайт автора, подпись, доступность исходного кода и состояние репозитория.
Zero Install подходит разработчикам, тестировщикам и автономным приложениям
Наибольшую пользу система приносит там, где важны параллельные версии и отсутствие изменений в системных каталогах. Разработчики получают управляемые зависимости, тестировщики — быстрый переход между выпусками, пользователи — запуск части приложений без административных прав.
Для домашнего компьютера Zero Install имеет смысл, когда нужная программа уже публикует официальную ленту или требуется несколько её версий. Для стандартного набора браузеров, офисных пакетов и драйверов привычный менеджер приложений ОС обычно проще благодаря широкому каталогу и системной интеграции.
Перед внедрением достаточно проверить четыре пункта:
- У проекта есть официальная и подписанная лента.
- Архивы доступны с надёжного домена.
- Приложение не требует драйверов или системной службы.
- Настройки разных версий можно разделить или безопасно обновить.
Zero Install решает конкретную задачу распространения пользовательских программ: хранит компоненты отдельно, выбирает совместимые зависимости и позволяет запускать несколько версий рядом. Начать знакомство лучше с одной тестовой утилиты, проверить подпись издателя и посмотреть, как система управляет её кэшем и обновлениями.