Some checks failed
Compile apt-layer (v2) / compile (push) Has been cancelled
- Added 20-daemon-integration.sh scriptlet for D-Bus and daemon lifecycle management - Updated 99-main.sh with new daemon subcommands (start, stop, status, install, uninstall, test, layer, deploy, upgrade, rollback) - Enhanced help and usage text for daemon integration - Fixed bash syntax errors in daemon integration scriptlet - Updated compile.sh to include daemon integration in build process - Updated .gitignore to exclude src/rpm-ostree/ reference source - Updated CHANGELOG.md and TODO.md to document daemon integration milestone - Removed src/rpm-ostree/ from git tracking (reference only, not committed)
152 lines
No EOL
7 KiB
Markdown
152 lines
No EOL
7 KiB
Markdown
# rpm-ostree Documentation
|
|
|
|
This directory contains comprehensive documentation about rpm-ostree, the reference implementation that inspires our apt-layer project. rpm-ostree is a true hybrid image/package system that provides atomic, immutable OS image management with package layering capabilities.
|
|
|
|
## Overview
|
|
|
|
rpm-ostree combines the benefits of:
|
|
- **Image-based deployments**: Atomic, immutable filesystem trees
|
|
- **Package management**: Traditional RPM package installation and updates
|
|
- **Transactional updates**: Safe, rollback-capable system updates
|
|
- **Container integration**: Native support for OCI containers
|
|
|
|
## Key Concepts
|
|
|
|
### Hybrid System
|
|
rpm-ostree bridges the gap between traditional package managers and image-based systems by:
|
|
- Converting RPM packages into OSTree commits
|
|
- Maintaining package metadata and relationships
|
|
- Providing both image and package-level operations
|
|
|
|
### Atomic Operations
|
|
Every system change is atomic and transactional:
|
|
- Updates are applied atomically
|
|
- Rollbacks are instant and safe
|
|
- System state is always consistent
|
|
|
|
### Layering Model
|
|
- **Base image**: Pre-tested, immutable foundation
|
|
- **Layered packages**: User-installed packages on top of base
|
|
- **Extensions**: Optional system components
|
|
|
|
## Documentation Sections
|
|
|
|
### Core Documentation
|
|
- [Background](background.md) - History and philosophy
|
|
- [Administrator Handbook](administrator-handbook.md) - System administration guide
|
|
- [Count Me](countme.md) - Usage statistics collection
|
|
- [Build Chunked OCI](build-chunked-oci.md) - OCI container integration
|
|
|
|
### [Composing Images](compose/)
|
|
- [Compose Server](compose/compose-server.md) - Building OSTree commits
|
|
- [Treefile Reference](compose/treefile.md) - Configuration format
|
|
- [Extensions](compose/extensions.md) - System extensions
|
|
|
|
### [Architecture](architecture/)
|
|
- [RPM Packages, OSTree Commits](architecture/architecture-core.md) - Core architecture
|
|
- [Daemon Model](architecture/architecture-daemon.md) - Client/daemon architecture
|
|
- [Architecture of Apply-Live](architecture/apply-live.md) - Live package application
|
|
|
|
### Container Integration
|
|
- [Container](container.md) - Native container support
|
|
|
|
### [Man Pages](man-pages/)
|
|
- [rpm-ostree(1)](man-pages/rpm-ostree.1.md) - Main command-line tool
|
|
- [rpm-ostreed.conf(5)](man-pages/rpm-ostreed.conf.5.md) - Daemon configuration
|
|
- [rpm-ostreed-automatic.service(8)](man-pages/rpm-ostreed-automatic.service.8.md) - Automatic updates service
|
|
- [rpm-ostree-countme.service(8)](man-pages/rpm-ostree-countme.service.8.md) - Usage statistics service
|
|
|
|
### [Contributing](contributing/)
|
|
- [Hacking on rpm-ostree](contributing/hacking.md) - Development environment setup
|
|
- [Debugging rpm-ostree](contributing/debug.md) - Debugging techniques and tools
|
|
- [Repository Structure](contributing/repo-structure.md) - Codebase organization
|
|
- [Releasing rpm-ostree](contributing/release.md) - Release process and versioning
|
|
|
|
### [Experimental Features](experimental/)
|
|
- [DEPRECATED: CLI Wrapping](experimental/cliwrap.md) - Deprecated CLI wrapping feature
|
|
- [Declarative System Changes](experimental/ex-rebuild.md) - Experimental declarative configuration
|
|
- [Override Replace Experimental](experimental/ex-replace.md) - Advanced package replacement
|
|
- [CoreOS Layering](experimental/layering.md) - Advanced package layering
|
|
|
|
## Relevance to apt-layer
|
|
|
|
Our apt-layer project aims to provide the same capabilities for Debian/Ubuntu systems:
|
|
|
|
1. **Package Conversion**: Converting .deb packages to atomic layers
|
|
2. **Atomic Operations**: Transactional updates and rollbacks
|
|
3. **Layering**: Base image + user packages
|
|
4. **Container Integration**: OCI container support via ComposeFS
|
|
5. **Live Updates**: Apply packages without rebooting
|
|
|
|
## Key Differences
|
|
|
|
| Feature | rpm-ostree | apt-layer |
|
|
|---------|------------|-----------|
|
|
| Package Format | RPM | DEB |
|
|
| Base Technology | OSTree | ComposeFS |
|
|
| Container Support | Native OSTree | OCI via skopeo |
|
|
| Package Manager | DNF/YUM | APT |
|
|
| Init System | systemd | systemd |
|
|
|
|
## Implementation Notes
|
|
|
|
When implementing apt-layer features, we reference these rpm-ostree patterns:
|
|
|
|
- **Transaction Model**: Client/daemon architecture for safe operations
|
|
- **Metadata Handling**: Comprehensive package metadata extraction
|
|
- **Conflict Resolution**: Advanced strategies for package conflicts
|
|
- **Bootloader Integration**: GRUB and systemd-boot support
|
|
- **Service Integration**: systemd service and timer management
|
|
|
|
## Resources
|
|
|
|
- [Official rpm-ostree Documentation](https://coreos.github.io/rpm-ostree/)
|
|
- [rpm-ostree GitHub Repository](https://github.com/coreos/rpm-ostree)
|
|
- [OSTree Documentation](https://ostreedev.github.io/ostree/)
|
|
- [ComposeFS Documentation](https://github.com/containers/composefs)
|
|
|
|
## Documentation Structure
|
|
|
|
This documentation is organized to match the official rpm-ostree documentation structure:
|
|
|
|
```
|
|
rpm-ostree/
|
|
├── README.md # This overview
|
|
├── background.md # History and philosophy
|
|
├── administrator-handbook.md # System administration
|
|
├── countme.md # Usage statistics
|
|
├── build-chunked-oci.md # OCI container building
|
|
├── container.md # Native container support
|
|
├── compose/ # Composing images
|
|
│ ├── README.md # Compose overview
|
|
│ ├── compose-server.md # Build server
|
|
│ ├── treefile.md # Configuration reference
|
|
│ └── extensions.md # System extensions
|
|
├── architecture/ # Architecture documentation
|
|
│ ├── README.md # Architecture overview
|
|
│ ├── architecture-core.md # Core architecture
|
|
│ ├── architecture-daemon.md # Daemon model
|
|
│ └── apply-live.md # Live updates
|
|
├── man-pages/ # Manual pages
|
|
│ ├── README.md # Man pages overview
|
|
│ ├── rpm-ostree.1.md # Main command-line tool
|
|
│ ├── rpm-ostreed.conf.5.md # Daemon configuration
|
|
│ ├── rpm-ostreed-automatic.service.8.md # Automatic updates service
|
|
│ └── rpm-ostree-countme.service.8.md # Usage statistics service
|
|
├── contributing/ # Contributing documentation
|
|
│ ├── README.md # Contributing overview
|
|
│ ├── hacking.md # Development setup
|
|
│ ├── debug.md # Debugging guide
|
|
│ ├── repo-structure.md # Codebase structure
|
|
│ └── release.md # Release process
|
|
└── experimental/ # Experimental features
|
|
├── README.md # Experimental overview
|
|
├── cliwrap.md # Deprecated CLI wrapping
|
|
├── ex-rebuild.md # Declarative changes
|
|
├── ex-replace.md # Advanced overrides
|
|
└── layering.md # CoreOS layering
|
|
```
|
|
|
|
---
|
|
|
|
*This documentation serves as reference material for apt-layer development. All content is based on the official rpm-ostree documentation and implementation.* |