{"id":13440728,"url":"https://github.com/ostreedev/ostree","last_synced_at":"2025-12-22T23:02:50.816Z","repository":{"id":3553626,"uuid":"4614541","full_name":"ostreedev/ostree","owner":"ostreedev","description":"Operating system and container binary deployment and upgrades","archived":false,"fork":false,"pushed_at":"2025-04-30T22:45:15.000Z","size":23775,"stargazers_count":1399,"open_issues_count":393,"forks_count":315,"subscribers_count":43,"default_branch":"main","last_synced_at":"2025-05-08T17:16:57.915Z","etag":null,"topics":["ostree","package-manager"],"latest_commit_sha":null,"homepage":"https://ostreedev.github.io/ostree/","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ostreedev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2012-06-10T11:22:40.000Z","updated_at":"2025-05-08T01:51:51.000Z","dependencies_parsed_at":"2024-03-21T18:54:11.985Z","dependency_job_id":"bc538e83-bad1-466c-8c18-a25eaac10669","html_url":"https://github.com/ostreedev/ostree","commit_stats":{"total_commits":6208,"total_committers":200,"mean_commits":31.04,"dds":0.4434600515463918,"last_synced_commit":"3625130ec098e19bfa3c26696ffb237b0120b546"},"previous_names":[],"tags_count":144,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ostreedev%2Fostree","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ostreedev%2Fostree/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ostreedev%2Fostree/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ostreedev%2Fostree/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ostreedev","download_url":"https://codeload.github.com/ostreedev/ostree/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253347026,"owners_count":21894279,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ostree","package-manager"],"created_at":"2024-07-31T03:01:25.582Z","updated_at":"2025-12-22T23:02:45.070Z","avatar_url":"https://github.com/ostreedev.png","language":"C","readme":"# libostree\n\nThis project is now known as \"libostree\", though it is still appropriate to use\nthe previous name: \"OSTree\" (or \"ostree\"). The focus is on projects which use\nlibostree's shared library, rather than users directly invoking the command line\ntools (except for build systems). However, in most of the rest of the\ndocumentation, we will use the term \"OSTree\", since it's slightly shorter, and\nchanging all documentation at once is impractical. We expect to transition to\nthe new name over time.\n\nAs implied above, libostree is both a shared library and suite of command line\ntools that combines a \"git-like\" model for committing and downloading bootable\nfilesystem trees, along with a layer for deploying them and managing the\nbootloader configuration.\n\nThe core OSTree model is like git in that it checksums individual files and has\na content-addressed-object store. It's unlike git in that it \"checks out\" the\nfiles via hardlinks, and they thus need to be immutable to prevent corruption.\nTherefore, another way to think of OSTree is that it's just a more polished\nversion of\n[Linux VServer hardlinks](http://linux-vserver.org/index.php?title=util-vserver:Vhashify\u0026oldid=2285).\n\n**Features:**\n\n - Transactional upgrades and rollback for the system\n - Replicating content incrementally over HTTP via GPG signatures and \"pinned TLS\" support\n - Support for parallel installing more than just 2 bootable roots\n - Binary history on the server side (and client)\n - Introspectable shared library API for build and deployment systems\n - Flexible support for multiple branches and repositories, supporting\n   projects like [Flatpak](https://github.com/flatpak/flatpak) which\n   use libostree for applications, rather than hosts.\n\n## Documentation\n\nFor more information, see the [project documentation](docs/index.md) or the\n[project documentation website](https://ostreedev.github.io/ostree).\n\n## Operating systems and distributions using OSTree\n\n[Apertis](https://www.apertis.org/) uses libostree for their host system as\nwell as Flatpak. See [update documentation](https://www.apertis.org/guides/ostree/) and\n[apertis-update-manager](https://gitlab.apertis.org/pkg/apertis-update-manager)\n\n[Endless OS](https://endlessos.com/) uses libostree for their host system as\nwell as Flatpak. See\ntheir [eos-updater](https://github.com/endlessm/eos-updater)\nand [deb-ostree-builder](https://github.com/dbnicholson/deb-ostree-builder)\nprojects.\n\nFor Debian/apt, see also https://github.com/stb-tester/apt2ostree\nand the LWN article [Merkle trees and build systems](https://lwn.net/Articles/821367/).\n\nFedora derivatives use rpm-ostree (noted below); there are 4 variants using OSTree:\n\n - [Fedora CoreOS](https://getfedora.org/en/coreos/)\n - [Fedora Silverblue](https://silverblue.fedoraproject.org/)\n - [Fedora Kinoite](https://kinoite.fedoraproject.org/)\n - [Fedora IoT](https://iot.fedoraproject.org/)\n\nRed Hat Enterprise Linux CoreOS is a derivative of Fedora CoreOS, used in [OpenShift 4](https://try.openshift.com/).\nThe [machine-config-operator](https://github.com/openshift/machine-config-operator/blob/master/docs/OSUpgrades.md)\nmanages upgrades.  RHEL CoreOS is also the successor to RHEL Atomic Host, which\nuses rpm-ostree as well.\n\n[Red Hat In-Vehicle Operating System](https://www.redhat.com/en/blog/new-standard-red-hat-vehicle-operating-system-modern-and-future-vehicles) is a derivative of CentOS Automotive Stream Distribution that uses OSTree, it's closest Fedora derivative is Fedora IoT although it was created as it's own distribution.\n\n[webOS](https://www.webosose.org/) is an OS for smart devices such as\nsmart TVs. From version 2.0.0, webOS Open Source Edition (OSE) supports\n[Firmware-Over-the-Air (FOTA)](https://www.webosose.org/docs/guides/setup/setting-up-fota/)\nbased on libostree.\n\n[GNOME Continuous](https://wiki.gnome.org/Projects/GnomeContinuous) is\nwhere OSTree was born - as a high performance continuous delivery/testing\nsystem for GNOME.\n\n[GNOME OS](https://os.gnome.org/) is a testing OS that uses libostree for\ntheir host system as well as Flatpak.\n\n[Liri OS](https://liri.io/download/silverblue/) has the option to install\ntheir distribution using ostree.\n\n[Torizon OS](https://developer.toradex.com/torizon/torizoncore/torizoncore-technical-overview/)\nis a Linux distribution for embedded systems that updates via OSTree images\ndelivered via [Uptane](https://uptane.github.io/) and\n[aktualizr](https://github.com/uptane/aktualizr/).\n\n## Distribution build tools\n\n[meta-updater](https://github.com/advancedtelematic/meta-updater) is\na layer available for [OpenEmbedded](http://www.openembedded.org/wiki/Main_Page)\nsystems.\n\n[QtOTA](http://doc.qt.io/QtOTA/) is Qt's over-the-air update framework\nwhich uses libostree.\n\nThe [BuildStream](https://github.com/apache/buildstream/) build and\nintegration tool supports importing and exporting from libostree repos.\n\n[fedora-iot/otto](https://github.com/fedora-iot/otto) is a tool that helps\nship ostree commits inside Docker/OCI containers and run a webserver\nto serve the commits.\n\nFedora [coreos-assembler](https://github.com/coreos/coreos-assembler) is\nthe build tool used to generate Fedora CoreOS derivatives.\n\n[debos](https://github.com/go-debos/debos) is a tool-chain for simplifying the\nprocess of building a Debian-based OS image.\n\n[gardenlinux/ostree-image-builder](https://github.com/gardenlinux/ostree-image-builder)\nis a sample for building Debian-based OS images.\nIt is not production ready but it might be useful to get started.\n\n## Projects linking to libostree\n\n[rpm-ostree](https://github.com/projectatomic/rpm-ostree) is used by the\nFedora-derived operating systems listed above.  It is a full hybrid\nimage/package system.  By default it uses libostree to atomically replicate a base OS\n(all dependency resolution is done on the server), but it supports \"package layering\", where\nadditional RPMs can be layered on top of the base.  This brings a \"best of both worlds\"\"\nmodel for image and package systems.\n\n[eos-updater](https://github.com/endlessm/eos-updater) is a daemon that implements updates\non EndlessOS.\n\n[Flatpak](https://github.com/flatpak/flatpak) uses libostree for desktop\napplication containers. Unlike most of the other systems here, Flatpak does not\nuse the \"libostree host system\" aspects (e.g. bootloader management), just the\n\"git-like hardlink dedup\". For example, Flatpak supports a per-user OSTree\nrepository.\n\n[aktualizr](https://github.com/uptane/aktualizr/) is an\n[Uptane](https://uptane.github.io/)-conformant software update client library\nintended for use in automotive and other security-sensitive embedded devices.\nIt uses OSTree to manage the OS of the host device by default.\n\n## Language bindings\n\nlibostree is accessible via [GObject Introspection](https://gi.readthedocs.io/en/latest/);\nany language which has implemented the GI binding model should work.\nFor example, Both [pygobject](https://pygobject.readthedocs.io/en/latest/)\nand [gjs](https://gitlab.gnome.org/GNOME/gjs) are known to work\nand further are actually used in libostree's test suite today.\n\nSome bindings take the approach of using GI as a lower level and\nwrite higher level manual bindings on top; this is more common\nfor statically compiled languages.  Here's a list of such bindings:\n\n - [ostree-go](https://github.com/ostreedev/ostree-go/)\n - [ostree-rs](./rust-bindings)\n\n## Building\n\nReleases are available as GPG signed git tags, and most recent\nversions support extended validation using\n[git-evtag](https://github.com/cgwalters/git-evtag).\n\nHowever, in order to build from a git clone, you must update the\nsubmodules.  If you're packaging OSTree and want a tarball, I\nrecommend using a \"recursive git archive\" script.  There are several\navailable online;\n[this code](https://github.com/ostreedev/ostree/blob/main/ci/Makefile.dist-packaging#L18)\nin OSTree is an example.\n\nOnce you have a git clone or recursive archive, building is the\nsame as almost every autotools project:\n\n```\ngit submodule update --init\nenv NOCONFIGURE=1 ./autogen.sh\n./configure --prefix=...\nmake\nmake install DESTDIR=/path/to/dest\n```\n\n## Contact and discussion forums\n\nThere is also an `#ostree` channel on [Libera.Chat](ircs://irc.libera.chat/ostree) as\nwell as [enabled Github discussions](https://github.com/ostreedev/ostree/discussions/).\n\n## Contributing\n\nSee [Contributing](CONTRIBUTING.md).\n\n## Licensing\n\nThe licensing for the *code* of libostree can be canonically found in the individual files;\nand the overall status in the [COPYING](https://github.com/ostreedev/ostree/blob/main/COPYING)\nfile in the source.  Currently, that's LGPLv2+.  This also covers the man pages and API docs.\n\nThe license for the manual documentation in the `doc/` directory is:\n`SPDX-License-Identifier: (CC-BY-SA-3.0 OR GFDL-1.3-or-later)`\nThis is intended to allow use by Wikipedia and other projects.\n\nIn general, files should have a `SPDX-License-Identifier` and that is canonical.\n","funding_links":[],"categories":["HarmonyOS","C","package-manager","Lower level tools"],"sub_categories":["Windows Manager"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fostreedev%2Fostree","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fostreedev%2Fostree","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fostreedev%2Fostree/lists"}