apt2ostree
eget
Our great sponsors
apt2ostree | eget | |
---|---|---|
6 | 11 | |
71 | 496 | |
- | - | |
3.7 | 8.6 | |
4 months ago | about 1 month ago | |
Python | Go | |
- | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
apt2ostree
-
Why Use Make
Hm yes now I remember that point about how the data is anonymous Python objects that you can pass around to functions.
Are there any open source examples? I looked around the github account, but I mostly remember this tool
https://github.com/stb-tester/apt2ostree
I'd be interested in seeing the Python config and Ninja output, to see how it works. Right now it looks to me like the dependencies are more implicit than explicit, e.g. with your copen example
---
The system I ended up with is more like Bazel, but it's not building containers, so it's a slightly different problem. But I'm interested in building containers incrementally without 'docker build'.
I like the apt lockfile idea definitely ... However I also have a bunch of other blobs and tarballs, that I might not want to check into git. I guess you just put those in OSTree?
Our config looks like this
https://github.com/oilshell/oil/blob/master/core/NINJA_subgr...
And all the code is in build/ninja* of the same repo
-
An ode to Flatpak (and Fedora Silverblue)
However, you can get pretty close yourself with a tool like this https://github.com/stb-tester/apt2ostree
-
Docker containers usually still reachable even if bound to 127.0.0.1
With apt2ostree[1] we use lockfiles to allow us to version control the exact versions that were used to build a container. This makes updating the versions explicit and controlled, and building the containers functionally reproducible - albeit not byte-for-byte reproducible.
-
Reproducible builds for Debian: a big step forward
On the subject of reproducible debian-based environments I wrote apt2ostree[1]. It applies the cargo/npm lockfile idea to debian rootfs images. From a list of packages we perform dependency resolution and generate a "lockfile" that contains the complete list of all packages, their versions and their SHAs. You can commit this lockfile to git.
You can then install Debian or Ubuntu into a chroot just based on this lockfile and end up with a functionally reproducible result. It won't be completely byte identical as your SSH keys, machine-id, etc. will be different between installations, but you'll always end up with the same packages and package versions installed for a given lockfile.
This has saved us on a few occasions where an apt upgrade had broken the workflow of some of our customers. We could see exactly which package versions changed in git history and roll-back the problematic package before working on fixing it properly. This is vastly better than the traditional `RUN apt-get install -y blah blah` you see in `Dockerfile`s.
IMO it's also more convenient than debootstrap as you don't need to worry about gpg keys, etc. when building the image. Dependency resolution and gpg key stuff is done at lockfile generation time, so the installation process can be much simpler. In theory it could be made such that only dpkg is required to do the install, rather than the whole of apt, but that's by-the-by.
apt2ostree itself is probably not interesting to most people as it depends on ostree and ninja but I think the lockfile concept as applied to debian repos could be of much broader interest.
eget
-
Install GitHub release binaries from the CLI interactively
would be good if you added a comparison with https://github.com/zyedidia/eget on your repo
-
The culmination of several months of work by dozens of people, Flatpak 1.14.0 is now out!
There used to be a project called ginstall.sh that kept like, a manually maintained database of various projects with static binaries and how to install them. It still exists, but maintenance stopped because its model was also not sustainable. Its use case is better covered by tools like asdf, stew, and if you want to get even simpler, eget.
- An ode to Flatpak (and Fedora Silverblue)
-
Asdf Performance
I'm a huge fan of asdf and have been using for years together with direnv! It's great to see how much effort is put into it! I hope more people adopt it so that we don't have to `curl | sh`! One thing I have issues with asdf is security as are no checksums, so, you if I project get compromised you'll get compromised, too. This, of course, is in addition to the third-party asdf plugin getting itself compromised (which is the greater risk). Last, but not least - I wish asdf came with something like eget [0] incorporated so that it can install 99% of the plugins directly and safely! Last, but not least - 99% of the plugins have almost identical code and all that changes is the repo, so, this should be generalized. For example, many years ago I made just one codebase of all HashiCorp plugins [1] and it's been working great!
- get latest github
- Eget: easily install prebuilt binaries from GitHub
- Eget: Easily install prebuilt binaries from GitHub
What are some alternatives?
ostree - Operating system and container binary deployment and upgrades
fetch - Download files, folders, and release assets from a specific git commit, branch, or tag of public and private GitHub repos.
tflint - A Pluggable Terraform Linter
chromium - The official GitHub mirror of the Chromium source
pastel - A command-line tool to generate, analyze, convert and manipulate colors
bin - Effortless binary manager
micro-editor - A modern and intuitive terminal-based text editor
stew - 🥘 An independent package manager for compiled binaries.
flatpak-external-data-checker - A tool for checking if the external data used in Flatpak manifests is still up to date
proton-ge-custom - Compatibility tool for Steam Play based on Wine and additional components
nixpkgs - Nix Packages collection
flathub - Pull requests for new applications to be added