Skip to content

Instantly share code, notes, and snippets.

@porteusconf
Last active January 22, 2026 02:30
Show Gist options
  • Select an option

  • Save porteusconf/d0cb25ee001992eef4902f2477709389 to your computer and use it in GitHub Desktop.

Select an option

Save porteusconf/d0cb25ee001992eef4902f2477709389 to your computer and use it in GitHub Desktop.
eos (endless-OS 6.0) tweaks like how to install homebrew/linuxbrew package manager (since apt does not work in eos)

Stop audit from spamming dmesg by adding audit=0 to kernel params in *.conf file in /boot/loader/entries/

cd /boot/loader/entries/
sudo nano <the conf file?  ### add " audio=0 " after  "loglevel=0" so it says:
$ head -3 *.conf
title Endless OS 6.0.8 (ostree:0)
version 1
options rw splash plymouth.ignore-serial-consoles quiet loglevel=0 audit=0 ostr...

Note: Endless OS does not use the standard update-grub command or the /etc/default/grub file for persistent kernel options. Instead, it uses a different mechanism based on Boot Loader Specification (BLS) entries. such as example above.


While apt does not work on eos, note that you can install homebrew/linuxbrew package-manager, and it mostly works (except some gtk apps like gsmartcontrol crash). You will first need to temporarily get a curl command which is not included with eos.

1 So, among other places, you can download curl-amd64 pre-compiled static binary from https://github.com/moparisthebest/static-curl/releases


chmod a+x ~/Downloads/curl-amd64 
$ whereis curl # says no curl is in path right now
curl:

cp  ~/Downloads/curl-amd64  ~/.local/bin/curl
student@desk3:~/.local/bin$ whereis curl
curl: /sysroot/home/student/.local/bin/curl

$ curl -V
curl 8.17.0 (x86_64-pc-linux-musl) libcurl/8.17.0 OpenSSL/3.5.4 zlib/1.3.1 libssh2/1.11.1 nghttp2/1.65.0
Release-Date: 2025-11-05
Protocols: dict file ftp ftps gopher gophers http https imap imaps ipfs ipns mqtt pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp ws wss
Features: alt-svc AsynchDNS HSTS HTTP2 HTTPS-proxy IPv6 Largefile libz NTLM SSL threadsafe TLS-SRP UnixSockets

Since we now have a working curl command, so we can run homebrew install script from brew.sh site.

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

==> Checking for `sudo` access (which may request your password)...
==> This script will install:
/home/linuxbrew/.linuxbrew/bin/brew
/home/linuxbrew/.linuxbrew/share/doc/homebrew
/home/linuxbrew/.linuxbrew/share/man/man1/brew.1
/home/linuxbrew/.linuxbrew/share/zsh/site-functions/_brew
/home/linuxbrew/.linuxbrew/etc/bash_completion.d/brew
/home/linuxbrew/.linuxbrew/Homebrew

Press RETURN/ENTER to continue or any other key to abort:
==> Found cURL: /home/linuxbrew/.linuxbrew/bin/curl
==> Installation successful!

==> Homebrew has enabled anonymous aggregate formulae and cask analytics.
Read the analytics documentation (and how to opt-out) here:
  https://docs.brew.sh/Analytics
No analytics data has been sent yet (nor will any be during this install run).

==> Homebrew is run entirely by unpaid volunteers. Please consider donating:
  https://github.com/Homebrew/brew#donations

==> Next steps:
- Run these commands in your terminal to add Homebrew to your PATH:
    echo >> /sysroot/home/student/.bashrc  <=== You can NOT do these 2 items to modify ~/.bashrc (See below)
    echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv bash)"' >> /sysroot/home/student/.bashrc
    eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv bash)"
- Install Homebrew's dependencies if you have sudo access:
    sudo apt-get install build-essential   <=== will NOT work since apt fails in eos. So try brew install gcc etc...
  For more information, see:
    https://docs.brew.sh/Homebrew-on-Linux
- We recommend that you install GCC:
    brew install gcc
- Run brew help to get started
- Further documentation:
    https://docs.brew.sh

They suggest echo >> /sysroot/home/student/.bashrcBUT you do NOT have to modify your .bashrc file. Instead just create ~/brew-enable.shwith lines shown below

$ nano ~/brew-enable.sh ### paste in lines below
$ cat  ~/brew-enable.sh  ### should look something like this

  eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv bash)"
       HOMEBREW_FORCE_BREWED_CURL=1
export HOMEBREW_FORCE_BREWED_CURL=1
#       HOMEBREW_CURL_PATH=/home/linuxbrew/.linuxbrew/sbin/curl
# export HOMEBREW_CURL_PATH=/home/linuxbrew/.linuxbrew/sbin/curl

Then, anytime you want to use brew, just source ~/brew-enable.sh

student@desk3:~$ brew
bash: brew: command not found
student@desk3:~$ source ~/brew-enable.sh 
student@desk3:~$ brew --version
Homebrew 5.0.11
student@desk3:~$ brew install curl tree nmap netcat ### use brew search to find all your favorites

### After installing commands, run mandb to index their man-pages 
$ mandb
Purging old database entries in /home/linuxbrew/.linuxbrew/share/man...
Processing manual pages under /home/linuxbrew/.linuxbrew/share/man...
Updating index cache for path `/home/linuxbrew/.linuxbrew/share/man/man...
$ man brew

After you have the brew-installed curl, you want to use it instead of the staic-curl, so:

student@desk3:~$ which curl
/sysroot/home/student/.local/bin/curl
student@desk3:~$ mv ~/.local/bin/curl ~/.local/bin/curl-static
student@desk3:~$ which curl
/home/linuxbrew/.linuxbrew/bin/curl
student@desk3:~$ 

A lot of X/x11/x-org apps (like x11vnc) have issues due to wayland, but some run ok (like vncviewer in tiger-vnc package)...

$ brew install x11vnc
$ x11vnc
...
21/01/2026 20:55:38 x11vnc version: 0.9.17 lastmod: 2025-04-11  pid: 10907
21/01/2026 20:55:38 This x11vnc was built without X11 support (-rawfb only).
21/01/2026 20:55:38 Wayland display server detected.
21/01/2026 20:55:38 Wayland sessions are as of now only supported via -rawfb and the bundled deskshot utility. Exiting.

$ brew install tiger-vnc
$ vncviewer
TigerVNC viewer v1.15.0
Built on: 2025-02-13 10:01
Copyright (C) 1999-2025 TigerVNC team and many others (see README.rst)
See https://www.tigervnc.org for information on TigerVNC.
Fontconfig warning: using without calling FcInit()
###  (the VNCviewer x-window opens and works ok...) 
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment