Service provide overlayFS functionality to install updates from external repositories. Updates are represented as tar archive for now.
You need script are apropriated for your architecture for run ofs-service as service. Example of script for Ubuntu 20.04/18.04:
./install/install_ubuntu2004.sh
Also it is possible to run and use ofsservice from user space.
- Kernel version 3.18 or highter (required for overlayfs).
- Third-party requirements:
python3.8
python3-pip
shutil
hashlib
gi.repository.GLib
dbus
syslog
You should prepare tar archive and file with check-sum (md5 or sha256). For example:
update1.tar
update1.tar.md5
The 'tar' archive should contain:
- files for update (this files will be copied to target system)
- the 'manifest' file with list of files to remove (each line is absolute path to file or folder which should be removed on target system)
Check-sum file should contains only hash. Example of generation:
md5sum ./update1.tar | cut -d ' ' -f 1 > update1.tar.md5
Note: tar and check-sum files should be placed to the same folder (path) during 'update' command.
Common procedure:
- Run 'update' command. System will be rebooted automatically.
- Check the system state/stability. Note: all changes on filesystem until 'apply' or 'discard' commands will be lost.
- Run 'apply' command, if you want to apply update, or run 'discard' in order to revert. System will be rebooted.
You can use following commands to access ofsservice dbus service (all commands require system's reboot):
python3 /updater/ofsclient.py update absolute_path_to_update
It will prepare path to update to use throuht overlay file system
python3 /updater/ofsclient.py discard
It will discard changes after update command
python3 /updater/ofsclient.py apply
It will apply changes after update command and copy path's data to real file system
Tests are not ready yet, to be filled once tests are added
- We're using PEP-0008)) indentation style
- The identation is 4 spaces
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
We use SemVer for versioning. For the versions available, see the tags on this repository.
- Dmitry Yudenich - Initial work - Overlay File System Service
See also the list of contributors who participated in this project.
This project is licensed under the Apache 2.0 License - see the LICENSE file for details
- Hat tip to anyone whose code was used
- Inspiration
- etc