]> vilimpoc.org git repositories - dotfiles/commit
dotfiles: install AGI from setup-linux.sh, on Ubuntu and on CachyOS master
authorMax Vilimpoc <max@vilimpoc.org>
Mon, 31 Aug 2026 09:20:55 +0000 (11:20 +0200)
committerMax Vilimpoc <max@vilimpoc.org>
Mon, 31 Aug 2026 09:20:55 +0000 (11:20 +0200)
commit03b846cd7abe33973416d13f981462969bce4507
tree2d4b01b9ae55843ea0820520b73f59799d7f2f8a
parentd68d73b6badfe1170a30008073d69fbcc38d80c1
dotfiles: install AGI from setup-linux.sh, on Ubuntu and on CachyOS

The script died on anything without apt-get, which is most of the machines it
now has to run on, so the package layer is a two-line wrapper over apt-get and
pacman and the rsync lists gained their Arch spellings -- base-devel, pkgconf,
and the libraries without the -dev half Arch does not split out.

AGI ships a .deb and a .zip per release; Debian and Ubuntu get the .deb, Arch
and CachyOS the .zip unpacked to /opt/agi, since there is no AUR package for it
(the AUR RPC knows no agi, agi-bin or android-graphics-inspector).  The .zip
route replays the .desktop and MIME files the .deb installs, so both routes
leave the same system behind, and only ever replaces a /opt/agi that carries a
build.properties.

The .deb cannot be installed as it stands.  It declares "Depends:
openjdk-22-jre, libgtk-3-0, libwebkit2gtk-4.1-0" and Ubuntu has never packaged
openjdk-22 -- jammy through resolute ship 11, 17, 21 and 25 -- so apt has
nothing to resolve that against.  Nothing in the package needs 22 either: it
bundles no JRE, the Go launcher settles for >= 11, and the highest class file
version in gapic.jar is 63, i.e. Java 19.  openjdk-21-jre satisfies both and
exists on every release from 22.04 on, so the install picks a JRE that is
actually in the archive and rewrites that one control field to name it.

Only the control member is rebuilt, with ar; dpkg-deb -R/-b would unpack and
recompress 230MB of payload for a one-line edit.  Verified against the real
84MB package: member order preserved, Depends retargeted, and dpkg-deb still
parses the result.  Should any of that fail, the zip installer is the fallback,
so the .deb path can only cost time.

libgtk-3-0 became libgtk-3-0t64 in 24.04 and SWT wants webkit 4.1 rather than
the 4.0 only jammy has, so both are chosen by asking the archive rather than by
name.  adb is installed too: it is not a hard dependency, but gapis carries the
string "adb could not be found from ANDROID_HOME or PATH", which is all AGI can
do without one.

--agi-only and --no-agi split the two halves; --minimal implies --no-agi.
AGI_VERSION pins a release, otherwise the version comes from the releases API
with the last-checked 3.3.3 as the offline fallback, and a re-run whose
/opt/agi/build.properties already matches skips the 85MB download.  No pacman
-Sy anywhere -- refreshing the database without upgrading is how an Arch box
ends up half-broken -- so a stale database is reported rather than worked
around.

Exercised on CachyOS: every --dry-run path, the version lookup, and AGI 3.3.3
itself starting against the installed JRE with gtk3 and webkit2gtk-4.1.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PqwcPKuLX7xML2DZqHnNJY
setup-linux.sh [changed mode: 0644->0755]