{"id":48801316,"url":"https://github.com/galpt/cachyos-updater","last_synced_at":"2026-04-14T03:02:36.912Z","repository":{"id":339551587,"uuid":"1162409246","full_name":"galpt/cachyos-updater","owner":"galpt","description":"CachyOS Update Script","archived":false,"fork":false,"pushed_at":"2026-03-23T19:46:45.000Z","size":16,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-24T17:54:35.667Z","etag":null,"topics":["cachyos","linux","linux-kernel","linux-shell"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/galpt.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-20T08:20:43.000Z","updated_at":"2026-03-23T19:46:50.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/galpt/cachyos-updater","commit_stats":null,"previous_names":["galpt/cachyos-updater"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/galpt/cachyos-updater","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/galpt%2Fcachyos-updater","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/galpt%2Fcachyos-updater/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/galpt%2Fcachyos-updater/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/galpt%2Fcachyos-updater/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/galpt","download_url":"https://codeload.github.com/galpt/cachyos-updater/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/galpt%2Fcachyos-updater/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31779951,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-14T02:24:21.117Z","status":"ssl_error","status_checked_at":"2026-04-14T02:24:20.627Z","response_time":153,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["cachyos","linux","linux-kernel","linux-shell"],"created_at":"2026-04-14T03:02:33.806Z","updated_at":"2026-04-14T03:02:36.903Z","avatar_url":"https://github.com/galpt.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CachyOS Update Script\n\nSafe, simple updater for CachyOS (Arch-based). This script detects and\nuses one primary Arch-style package tool (`pamac`, `paru`, `yay`, or\n`pacman`) to avoid duplicate work, with optional updates for `flatpak`\nand `snap`. It provides interactive prompts, a non-interactive mode,\ndry-run support, logging, sudo keepalive, better reboot detection, and\nlive terminal progress passthrough for long-running downloads.\n\n---\n\n## Table of Contents\n- [Status](#status)\n- [Features](#features)\n- [Requirements](#requirements)\n- [Usage](#usage)\n- [Examples](#examples)\n- [Design Notes](#design-notes)\n- [Limitations \u0026 Next Steps](#limitations--next-steps)\n- [Contributing](#contributing)\n- [License](#license)\n\n## Status\n- Basic, stable script for local interactive and automated updates on\n  CachyOS and other Arch-based systems. Verified locally.\n\n## Features\n- Detects Arch-style package tools and selects one primary updater: `pamac`, `paru`, `yay`, or `pacman`.\n- Runs AUR helpers as the original non-root user when invoked through `sudo`, and skips unsafe root-only AUR runs.\n- Updates `flatpak` system installs and user installs separately when possible.\n- Updates `snap` if present.\n- Interactive prompt with `--auto` for non-interactive runs.\n- `--dry-run` mode to show commands without executing them.\n- Keeps the sudo ticket warm for the full update so long updates do not ask for the password again.\n- Preserves package-manager progress output by running updates through a PTY when available.\n- Logs output to volatile storage by default, or to `/var/log/cachyos-update.log` / `$HOME/.cache/cachyos-update.log` when `--no-volatile-log` is used.\n- Detects reboot requirements from update output, reboot marker files, and kernel mismatches.\n\n## Requirements\n- CachyOS or another Arch-based distro (recommended).\n- One or more of: `pacman`, `pamac`, `yay`, `paru` (optional), `flatpak` (optional), `snap` (optional).\n- `sudo` when running as non-root for system-level updates.\n\n## Usage\n1. Make executable (run from the `Update CachyOS` directory):\n\n```bash\nchmod +x update_all.sh\n```\n\n2. Run interactively (recommended, from the same directory):\n\n```bash\n./update_all.sh\n```\n\n3. Non-interactive automatic update (assumes yes):\n\n```bash\n./update_all.sh --auto\n```\n\n4. Dry-run (no changes, useful for checking what will run):\n\n```bash\n./update_all.sh --dry-run\n```\n\nOptions:\n- `--auto` — assume yes to prompts and reboot automatically if required.\n- `--dry-run` — show the commands that would be executed (no root required).\n- `--no-reboot` — never reboot even if updates require it.\n- `--no-volatile-log` — force persistent logging to `/var/log` (when root) or `$HOME/.cache`.\n\nNotes:\n- By default the updater writes logs to volatile storage (prefers `/dev/shm`, then `/tmp`) so logs are automatically cleared on reboot. Use `--no-volatile-log` to keep logs persistent.\n- The script asks for sudo only when a system-level update step is about to run, then keeps that ticket alive until the script exits.\n\n## Examples\n- Interactive update (will prompt before running and request sudo only when needed):\n\n```bash\n./update_all.sh\n```\n\n- Automatic update (no prompts, will reboot if necessary):\n\n```bash\n./update_all.sh --auto\n```\n\n- Dry-run to verify commands:\n\n```bash\n./update_all.sh --dry-run\n```\n\n## Design Notes\n- The script prefers `pamac` when available. If it is absent, it falls back to `paru`, then `yay`, then `pacman`.\n- Only one primary Arch updater runs per execution, which avoids redundant syncs and conflicting update passes.\n- AUR helpers are executed as the invoking non-root user when the script is run under `sudo` to avoid running AUR builds as root.\n- Package-manager commands are run inside a PTY when `script(1)` is available so progress bars remain visible during large downloads.\n- Logging is volatile by default; use `--no-volatile-log` to keep logs after reboot.\n- The script continues executing remaining update commands even if one\n  command fails, but it exits non-zero afterward so automation can detect partial failures.\n\n## Limitations \u0026 Next Steps\n- This script does not create a systemd timer or service to run\n  automatically on a schedule — that can be added if desired.\n- Use caution with `--auto` on systems with manual package pinning or\n  partial upgrades; review output when in doubt.\n- Kernel and lower-level updates may still need human judgment; the script improves reboot detection, but package-specific instructions should still be respected.\n\n## Contributing\n- Suggest improvements or open a PR. When adding features, prefer\n  conservative defaults and keep AUR operations executed as the\n  non-root user by default.\n\n## License\n- MIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgalpt%2Fcachyos-updater","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgalpt%2Fcachyos-updater","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgalpt%2Fcachyos-updater/lists"}