Summary
Linglong, an open source package format developed by UnionTech Software, is designed to manage, distribute, create a sandbox for packages, and integrate development tools, instead of using package management tools such as deb or rpm.
Problems with current package management
- Both
debandrpmare strongly-dependent package management systems and allow complex cross dependencies (or circular dependencies) between components, which makes maintenance a matter of great expertise. A little carelessness will lead to a complete system failure that cannot be repaired. - Installation dependencies and running dependencies are coupled so that multiple versions can hardly coexist. Although
debandrpmhave provided several solutions to solve the multi-version coexistence problem, these solutions require changes in source code and are infeasible. - The
Hooksystem is complex and has no restrictions, through which many operations can damage the system. - They have insufficient reliability, no redundant recovery design, and a lack of verification mechanisms. Once the package management system fails, the system can hardly be repaired.
- The permissions of
debandrpmare loosely controlled with big security risks. - The current package updates do not support incremental updates, which is a great waste of resources.
Linglong advantages
- Improve usability and solve the dependency conflict problem of
debandrpm. - Perform the application permission management mechanism to strengthen security.
- Support incremental updates of applications.
Comparison
| Features | Linglong | Flatpak | Snap | AppImage |
|---|---|---|---|---|
| Package desktop apps | ✔ | ✔ | ✔ | ✔ |
| Package terminal apps | ✔ | ✔ | ✔ | ✔ |
| Deal with server apps | ✔ | ✘ | ✔ | ✘ |
| Package system services (root access) | ✘ | ✘ | ✔ | ✘ |
| Normal themes | ✔ | ✔ | ✔ | ✔ |
| Library hosting services | ✔ | ✘ | ✘ | ✘ |
| Source of libraries/dependencies | In packages | |||
| Host system | In packages | |||
| SDK | In packages | |||
| snap base | ||||
| Commercial support | ✔ | ✘ | ✔ | ✘ |
| Apps quantity | About 3000+ | 1400+ | 6600+ | 1300+ |
| Development tools | GNOME Builder | electron-builder | ||
| GNOME Builder | electron-builder | |||
| Sandbox | ✔ | ✔ | ✔ | ◐ (Not officially available, but technically feasible) |
| Rootless sandbox | ✔ | ✘ | ✘ | ✘ |
| Run without installation | ✔ (Offer Bundle packages) | ✘ | ✘ | ✔ |
| Run without decompression | ✔ (Offer Bundle packages) | ✘ | ✔ | ✔ |
| Self-distribution/Green-format distribution | ◐ (Technically feasible, but system limits it) | ✘ | ✘ | ✔ |
| Run Wine apps | ◐ (Adapting now) | ◐ (Theoretically possible) | ◐ (Theoretically possible) | ◐ (Use LD to modify open calls, with poor compatibility) |
| Support offline environment | ✔ | ✔ | ✔ | ✔ |
| Permission management | ✔ | ✔ | ✔ | ✘ |
| Center repository | mirror-repo-linglong.deepin.com | FlatHub | Snap Store | AppImageHub |
| Multi-version coexistence | ✔ | ✔ | ✔ | ✔ |
| Peer-to-peer distribution | ✔ | ✔ | ✔ | ✔ |
| App upgrades | By repository | By repository | By repository | By official tool |