Recently, Linyaps 1.14 was released. From 1.13.0 to 1.14.0, this update focused on fixing a set of real pain points—whether it is the “lost module” annoyance ordinary users encounter during upgrades, the trouble packagers have debugging applications, or operations teams’ needs around disk usage and compliance auditing, this version provides better solutions.
The following sections are organized by role. Feel free to read the parts that matter to you.
Ordinary Users : Everyday use is easier; no more worrying about minor issues.
If you only use Linyaps to install and run applications, you will feel these changes directly after upgrading.
- Upgrading or downgrading apps no longer ‘leaves things behind’
Previously, sometimes after upgrading an app, an old module bundled with it was accidentally deleted, and you had to manually reinstall it. 1.14 fixes this logic error. Now, no matter how you switch versions, installed modules are kept securely.
- Automatic disk cleanup and transparent analysis
Automatically clean up unused dependencies: Previously, after every install, uninstall, or upgrade, dependencies that ‘no one uses anymore but no one deletes’ accumulated on the disk. Now the system automatically cleans up unused dependencies, helping you free up disk space. If you have a special reason to keep all historical versions, add:
Command‑Line: ll-cli install <app> --no-auto-prune
Accurately analyze disk usage: No need to search through folders anymore. New commands support viewing an application’s dependency relationships and space usage. Two commands make it clear at a glance:
Command‑Line:
ll-cli analyze depends <app> # What does it depend on?
ll-cli analyze size <app> # How big is it?
‘analyze size’ lists space usage precisely across four dimensions: exclusive, shared, logical, and actual.
Developers / Packagers : Debugging, export, and build toolchain comprehensively enhanced
If you are a developer maintaining Linyaps application packaging, the following new tools and optimizations can directly improve your daily efficiency.
- New export format UABX: lightweight runtime, no container
A new ultra-lightweight runtime package export is available:
Command‑Line: ll-builder export --uabx
UABX contains only the application’s own modules and loader, excluding Base, Runtime, uab-loader, and ll-box. It does not enter container isolation at runtime and is suitable for lightweight scenarios that require direct execution.
- Dedicated debugging entry point: no more manually piecing together the environment
Debugging applications in the sandbox used to be troublesome. Now there is a dedicated command:
Command‑Line: ll-cli run --debug <app>
It starts the application through gdbserver and supports three debugging parameters:
--debug-listen: custom listening address. By default, it only listens on the loopback address for safety.
--debug-debuginfod: connect to a debug information server.
--debug-symbol-dir: specify a local symbol directory.
Together with the ‘-vv’ parameter, it can output more detailed logs and backtraces, making it easier to troubleshoot crashes or exceptions.
- Improved build experience and simplified configuration
- Cleanup command: a new 'll-builder clean' command quickly cleans build artifacts.
- Intelligent configuration inference: in the packaging YAML configuration, when the 'base' field is omitted, it can be automatically inferred from the runtime.
- Local file installation error prevention: when executing 'll-cli install ./xxx.uab' or '.layer', it prioritizes recognition as a local file path and directly reports an error if the path is invalid, preventing it from being mistaken for a remote repository reference.
- Command arguments and status viewing: fixed the 'll-init' empty-argument exception; 'll-cli ps' adds a '--no-truncated' parameter, supporting viewing the complete container ID in long format.
Hook script parsing enhanced
Installation hooks now correctly parse commands and arguments according to quotes, avoiding incorrect splitting when spaces or complex strings are present, so arguments are passed more accurately.
- More stable UAB export: automatic smooth downgrade for hard links
When exporting UAB packages across devices, if hard link creation fails due to file system limitations, ll-builder automatically falls back to copy mode to ensure export is not interrupted. Directory symbolic links are fully preserved during export. This improvement prevents applications from failing due to file system differences, making packaging more reliable.
System Architecture and Operations : Drop-in incremental configuration, CDI devices, and security enhancements
- Drop-in incremental configuration and multi-level merging
Supports placing incremental configuration files in 'config.d/.json', enabling configuration append and override without modifying the main configuration file.
The system automatically merges configurations in priority order: System -> App -> User.
- CDI (Container Device Interface) support and hardware recognition
- Added '/etc/linglong/cdi' as a search path for CDI device declarations, making it easier to integrate third-party device plugins.
- Built-in 'll-driver-detect' tool compares NVIDIA and other graphics drivers by SemVer semantic versioning, ensuring precise matching for graphics rendering and hardware acceleration environments.
- Isolation and build environment security hardening
- Host information isolation: the build environment no longer mounts the host’s '/etc/passwd' and '/etc/group', improving build security.
- Propagation fixes: fixed QtDBus file descriptor passing, bind mount propagation mechanism, and overlayfs detection issues.
- Version tracking: non-release build version numbers are forced to include a Git Hash and Channel identifier. Together with '-vv' detailed logs and Backtrace, this improves troubleshooting efficiency.
- Stability and daemon: fixed 'll-package-manager' startup exceptions and unstable final task status retrieval; optimized Overlayfs detection and supports explicit mode override.
30-Second Quick Reference
Command‑Line
ll-cli run --debug <app> # gdbserver startup + default loopback listening
ll-cli analyze depends <app> # Dependency tree
ll-cli analyze size <app> # Size in four dimensions
ll-builder export --uabx # Runtime mode UABX(excludingbase/runtime/ll-box)
ll-builder clean # Clean build artifacts
ll-cli install ./xxx.uab # Standard syntax for local packages
The base field in linglong.yaml can now be omitted; it is inferred from runtime by default.
Upgrade Recommendations
Version 1.14 is fully compatible with the configuration of 1.13. A normal upgrade is sufficient; no additional adjustments are needed.
- Ordinary users: before upgrading, you can run 'll-cli --version' to check the current version. After upgrading, it is recommended to immediately try two things: 'll-cli analyze size' to see how large your most-used application actually is, and add '--enable-pipewire' to frequently used audio/video applications.
- Developers: it is recommended to try '--uabx' export and '--debug' mode first; they can significantly shorten your iteration cycle.
Reference Links
Release 1.14.0: https://github.com/OpenAtom-Linyaps/linyaps/releases/tag/1.14.0
Release notes: https://www.linyaps.org.cn/guide/start/release_note.html
Installation documentation: https://www.linyaps.org.cn
If you also love Linux and open source, welcome to join us! Whether submitting bugs, making suggestions, contributing code, or simply using and sharing it with friends around you, it is all the greatest support for Linyaps.
If you encounter any problems during installation or use, welcome to provide feedback!
Community forum: deepin Forum – Linyaps Section
Linyaps official website: https://linyaps.org.cn/
About the Project
Linyaps is a new type of independent package management toolset, focused on solving compatibility issues caused by the complexity of traditional software package formats and cross-dependencies under Linux systems. Through advanced isolation technology, the project completely decouples applications from the system, fundamentally solving application compatibility issues caused by environmental changes and achieving “one architecture, one build.” It is committed to simplifying software development processes, reducing maintenance costs, strengthening data security, promoting collaboration between technologies and platforms, and building a more prosperous, secure, and efficient Linux software ecosystem.

中文