Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: homebrew on image #1293

Merged
merged 21 commits into from
May 16, 2024
Merged

feat: homebrew on image #1293

merged 21 commits into from
May 16, 2024

Conversation

m2Giles
Copy link
Member

@m2Giles m2Giles commented May 12, 2024

No description provided.

@m2Giles
Copy link
Member Author

m2Giles commented May 12, 2024

ToDo:

Better handling of permissions for lower to upper directory.

Right now the lower dir is owned by root. How do we make sure that brew can modify things without making duplicates of everything in the mutable upper directory. Or if duplication is fine getting that immediate chown fired.

But brew is on image.

@castrojo
Copy link
Member

Ok to replicate the bluefin-cli experience we'll need:

eza
fd
ripgrep (we may want ugrep in addition or instead of?)
zoxide

Things already on the image that we'll probably want to leave there but maybe move over later?:

atuin
fish
fzf
starship
zsh

We'll need to test root things too, for example not sure if rclone/restic is worth swapping over if they can't access things to backup, etc.

@m2Giles
Copy link
Member Author

m2Giles commented May 13, 2024

Root can use homebrew binaries if you have an interactive login shell.

For systemd services you can specify the binary with the full path. So something like rclone would be /home/linuxbrew/.linuxbrew/bin/rclone instead of /usr/bin/rclone.

@m2Giles
Copy link
Member Author

m2Giles commented May 13, 2024

We'll need to adjust the brew just commands from config to not mess with this.

@m2Giles
Copy link
Member Author

m2Giles commented May 13, 2024

Assumptions made:

  1. The brew user is UID 1000. This makes sense for our systems:
    1. The Bluefin ISO will create the first user as a wheel user and UID 1000.
    2. The Aurora ISO needs the user to go into the advanced options to change the UID.
  2. Single User system.
    1. Brew expects to be owned by a single user. Since most of our systems are single user our setup should be fine. However, for a multi-user system, UID 1000 needs to be the brew user.
  3. Auto Updates
    1. Brew controls if it should auto-update based on an environment variable. Since brew and the portable ruby are on image, we do not want this to occur. This means that if a user goes awhile without rebooting, brew will not update.
    2. Need to inspect how auto upgrades work since normally you update prior to running upgrade. This appears to work on my host system without running brew update.

system_files/kinoite/usr/share/ublue-os/motd/bluefin.md Outdated Show resolved Hide resolved
system_files/silverblue/usr/share/ublue-os/motd/bluefin.md Outdated Show resolved Hide resolved
just/bluefin-system.just Outdated Show resolved Hide resolved
@m2Giles m2Giles marked this pull request as ready for review May 15, 2024 19:17
@m2Giles
Copy link
Member Author

m2Giles commented May 16, 2024

Switching from the downloaded version of homebrew to the version installed by bluefin-cli, drops the duplicated data size down to 20 MB.

@castrojo castrojo merged commit 6bc98f0 into main May 16, 2024
58 of 64 checks passed
@castrojo castrojo deleted the homebrew branch May 16, 2024 01:45
@m2Giles
Copy link
Member Author

m2Giles commented May 16, 2024

#1301

This needs to be added.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants