đĻ Introduction
Linyaps (Linyaps Is Not Yet Another Packaging System) is a cross-distribution Linux package format developed and open-sourced by the Linyaps community. It implements application packaging, management, and distribution through independent sandbox containers, aiming to replace traditional package managers like deb and rpm. Linyaps ensures Linux software runs with better compatibility, security, and efficiency.
⨠Highlights
- Innovative Partial Runtime Design: Based on a standardized sandbox Runtime, applications can be built once and run across all Linux distributions. Multiple Runtime versions coexist with shared files to reduce redundancy. Shared resources are reused during startup via dynamic libraries, significantly improving speed and avoiding dependency conflicts.
- Non-Privileged Sandbox with Dual-Layer Isolation: Runs without root privileges by default. Utilizes kernel Namespace isolation (process/filesystem/network) to create a secure sandbox. Atomic incremental updates and version rollbacks are provided via OSTree repositories, resulting in lower resource consumption compared to full sandbox solutions.
đ Progress
- Supported Distributions: deepin, UOS, openEuler, Ubuntu, Debian, openKylin, Anolis OS. More distributions are under adaptation. Contributions are welcome.
- CPU Architectures: X86, ARM64, LoongArch. Future support for RISC-V and others.
âī¸ Installation
Installation instructions for supported distributions:
deepin 23
Install:
echo "deb [trusted=yes] https://ci.deepin.com/repo/obs/linglong:/CI:/release/Deepin_23/ ./" | sudo tee /etc/apt/sources.list.d/linglong.list sudo apt update sudo apt install linglong-bin
Fedora 41
sudo dnf config-manager addrepo --from-repofile "https://ci.deepin.com/repo/obs/linglong:/CI:/release/Fedora_41/linglong%3ACI%3Arelease.repo"
sudo dnf update
sudo dnf install linglong-binUbuntu 24.04
echo "deb [trusted=yes] https://ci.deepin.com/repo/obs/linglong:/CI:/release/xUbuntu_24.04/ ./" | sudo tee /etc/apt/sources.list.d/linglong.list sudo apt update sudo apt install linglong-bin
Debian 12
echo "deb [trusted=yes] https://ci.deepin.com/repo/obs/linglong:/CI:/release/Debian_12/ ./" | sudo tee /etc/apt/sources.list.d/linglong.list sudo apt update sudo apt install linglong-bin
openEuler 23.09
sudo dnf config-manager --add-repo "https://ci.deepin.com/repo/obs/linglong:/CI:/release/openEuler_23.09/linglong%3ACI%3Arelease.repo" sudo sh -c "echo gpgcheck=0 >> /etc/yum.repos.d/linglong%3ACI%3Arelease.repo" sudo dnf update sudo dnf install linglong-bin
uos 1070
echo "deb [trusted=yes] https://ci.deepin.com/repo/obs/linglong:/CI:/release/uos_1070/ ./" | sudo tee /etc/apt/sources.list.d/linglong.list sudo apt update sudo apt install linglong-bin
AnolisOS 8
sudo dnf config-manager addrepo --from-repofile "https://ci.deepin.com/repo/obs/linglong:/CI:/release/AnolisOS_8/linglong%3ACI%3Arelease.repo"
sudo dnf update
sudo dnf install linglong-binopenkylin 2.0
echo "deb [trusted=yes] https://ci.deepin.com/repo/obs/linglong:/CI:/release/openkylin_2.0/ ./" | sudo tee /etc/apt/sources.list.d/linglong.list sudo apt update sudo apt install linglong-bin
đ Quick Start
ll-cli install cn.org.linyaps.demo ll-cli run cn.org.linyaps.demo
đ¯ Motivation
Why develop Linyaps when Snap, Flatpak, and AppImage already exist?
- In 2017, we evaluated Flatpak and built 100+ packages, but discontinued due to large application size, excessive disk usage, and slow security fixes.
- Snap has compatibility issues outside Ubuntu and lacks an open ecosystem.
- AppImage offers portability but lacks centralized repository management and robust sandboxing, compromising security.
After extensive experimentation, we designed Linyaps to address these shortcomings. Key advantages over alternatives include:
- Partial Runtime: Smaller footprint and faster startup via shared resources.
- Rootless Sandbox: Enhanced security without requiring root privileges.
Benchmark results demonstrate Linyaps' performance superiority:
| Test # | Linyaps Frames | Linyaps Time (ms) | Flatpak Frames | Flatpak Time (ms) | AppImage Frames | AppImage Time (ms) | Snap Frames | Snap Time (ms) |
|---|---|---|---|---|---|---|---|---|
| 1 | 9 | 149.4 | 14 | 232.4 | 16 | 265.6 | 42 | 697.2 |
| 2 | 9 | 149.4 | 13 | 215.8 | 17 | 282.2 | 41 | 680.6 |
| 3 | 8 | 132.8 | 9 | 149.4 | 15 | 249 | 40 | 664 |
| 4 | 9 | 149.4 | 13 | 215.8 | 15 | 249 | 41 | 680.6 |
| 5 | 8 | 132.8 | 14 | 232.4 | 16 | 265.6 | 42 | 697.2 |
| 6 | 8 | 132.8 | 13 | 215.8 | 15 | 249 | 39 | 664 |
| 7 | 9 | 149.4 | 12 | 199.2 | 15 | 249 | 39 | 647.4 |
| 8 | 8 | 132.8 | 14 | 232.4 | 16 | 265.6 | 40 | 680.6 |
| Avg | 8.5 | 141.1 | 12.8 | 213.7 | 15.6 | 261.6 | 40.5 | 676.2 |
đ¨ Getting Help
For assistance, use the following channels:
đ Documentation
Getting Started
- Overview - What Linyaps is, its features, use cases, and how to use the documentation
- Quick Start - Set up
ll-cli, then search for, install, and run an application - Release Notes - New features, bug fixes, and other important changes in each release
User Guide
- Install Linyaps - Installation instructions for different Linux distributions
- Manage Applications - Install, inspect, upgrade, uninstall, and manage application processes
Advanced
- Runtime Configuration - Runtime configuration load order, examples, and field reference
- Manage Runtimes - Inspect and clean up runtimes, analyze dependencies, and perform forced operations
- Repository Management - Repository configuration, priorities, and routine management
Developer Guide
- Build Your First Linyaps Application - Configure a project and complete your first application build
- ll-builder Workflow - Create, build, debug, validate, export, and push a project
Build Examples
-
Understanding the Build Configuration - A section-by-section walkthrough of
linglong.yaml -
Convert a deb Package - Convert a deb package into a Linyaps application
-
Publish in UAB Format - Publish applications in UAB format
-
Desktop Integration Guide - Integrate Linyaps with desktop environments
Advanced
- Debug a Linyaps Application - Debug a Linyaps application with GDB
- Module Management - Split, build, and install modules
- Multi-architecture Support - Configure and perform native and cross-architecture builds
Tutorial Series
- Linyaps Packaging Basics
- Manual Compilation in Container
- Offline Source Compilation
- Compilation with Git & Patch
- Automated Testing Suite
Related Projects
Explore more tutorials at Linyaps Official Website.
âī¸ Contribution
We welcome issue reports and contributions. See the Developer Guide for instructions on building Linyaps from source.
Start discussions on GitHub Discussions.
âī¸ License
Licensed under LGPL-3.0-or-later.
đĨ Community
Acknowledgment to all contributors! Visit our Community Page.