4 ms·
exa is abandoned. There is now a maintained fork called eza: https://github.com/eza-community/eza https://github.com/eza-community/eza
by netol 2y ago
exa is abandoned. There is now a maintained fork called eza: https://github.com/eza-community/eza https://github.com/eza-community/eza
- yu3zhou4 2y agoI just ran `brew install eza` and I'm overwhelmed with amount of dependencies it installs. Among many others - openjdk, qt, node - what is going on?
- quadhome 2y agoYou’re likely running on an old version of MacOS that isn’t able to use the precompiled binaries. So, brew is installing all the dependencies necessary to build eza from scratch. Intel-era Mac?
- yu3zhou4 2y agoMacBook Air M2 2022, macOS Sequoia 15.0
- zbentley 2y agoYour Homebrew may not be configured to pull only the runtime dependencies; as others in this thread have mentioned, it's pulling in all those dependencies becauase it's building "eza" (or something, perhaps one of "eza"'s few transitives) from source, which brings in quite the list, including openjdk as you saw. Homebrew can accidentally end up configured to do this in a number of ways. Some of these may no longer be issues; this list is from memory and should be taken with a grain of salt: - You might be running an outdated homebrew. - You might have homebrew checked out as a git checkout, thus missing "brew update" abilities. "brew doctor" will report on this. - You might have "inherited" your Homebrew install from a prior Mac (e.g. via disk clone or Time Machine), or from the brief transitional period where Homebrew was x86-via-Rosetta on ARM macs, thus leaving your brew in a situation where it can't find prebuilt packages ("bottles") for what it observes as a hybrid/unique platform. Tools, including your shell, which install Homebrew for you might install it as the wrong (rosetta-emulated) architecture if any process-spawning part of the tool is an x86-only binary. More details on a similar situation I found myself in are here: https://blog.zacbentley.com/post/dtrace-macos/ https://blog.zacbentley.com/post/dtrace-macos/ - (I'm pretty sure most issues in this area have been fixed, but) you might have an old or "inherited" XCode or XCode CLT installation. These, too, can propagate from backups. Removing Homebrew, uninstalling/reinstalling XCode/CLT, and reinstalling Homebrew can help with this. - The HOMEBREW_ARCH, HOMEBREW_ARTIFACT_DOMAIN, HOMEBREW_BOTTLE_DOMAIN, or other environment variables may be set in your shell such that Homebrew either thinks the platform doesn't have bottles available or it shouldn't download them: https://docs.brew.sh/Manpage#environment https://docs.brew.sh/Manpage#environment - Perhaps obvious, but your "brew" command might be invoked such that it always builds from source, e.g. via a shell alias. - Homebrew may be unable to access the bottle repository (https://ghcr.io/v2/homebrew/core/ https://ghcr.io/v2/homebrew/core/), either due to a network/firewall issue or a temporary outage.
- yu3zhou4 2y agoThank you for such a comprehensive guide! I’ll try to resolve the issue today with your help
- zbentley 2y agoYou’re welcome! One more issue that I missed calling out: a bottle may not yet be available for your platform (Sequoia) as it is very new. In that case, patience.
- specialist 2y agoYour (awesome) comment reminds me... Noob me has had to troubleshoot homebrew. Like keeping laptop and desktop in sync. Like fixing stuff I've somehow borked. So I tried a handful of GUIs (wrappers). Like these two top hits: https://corkmac.app/ https://corkmac.app/ https://aerolite.dev/applite https://aerolite.dev/applite But sort of bounced off. Noob friendly homebrew seems like such a great idea. I especially want just one strategy which spans both utils and apps (casks). Versus cobbling together Apple App Store, SetApp, and homebrew. Those GUIs would be even more useful if they spotted and explained the config issues you listed. (I have no idea if "brew doctor" suffices.)
- IshKebab 2y agoBut why would it need all of those dependencies?
- groby_b 2y agoBecause all dependency managers at some point devolve to "install ocean, then boil ocean". (If you care, "brew deps <package> --tree" will tell you.)
- yu3zhou4 2y agobrew deps eza --tree prints: eza └── libgit2 ├── libssh2 │ └── openssl@3 │ └── ca-certificates └── openssl@3 └── ca-certificates
- deleted 2y ago[deleted]
- jasonpeacock 2y agoBecause most of those are dependencies required to build the actual dependencies. There's (generally) 4 types of dependencies: - Toolchains (frameworks, compilers) - Build (headers and libraries) - Runtime (libraries) - Test (frameworks, headers, libraries) And those dependencies all bring their own dependencies...
- Aaron2222 2y agoFrom what I can tell, it doesn't: $ brew deps --include-build eza autoconf automake ca-certificates cabal-install certifi cmake ghc ghc@9.8 libgit2 libssh2 llvm@18 lz4 m4 mpdecimal ninja openssl@3 pandoc pkg-config python@3.11 python@3.12 readline rust sphinx-doc sqlite xz zstd
- gitaarik 2y agoYou also have lsd: https://github.com/lsd-rs/lsd https://github.com/lsd-rs/lsd