@fredlackey/devutils 0.0.1 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -5
- package/package.json +1 -1
- package/src/commands/install.js +374 -36
- package/src/installs/adobe-creative-cloud.js +527 -25
- package/src/installs/adobe-creative-cloud.md +605 -0
- package/src/installs/appcleaner.js +303 -26
- package/src/installs/appcleaner.md +699 -0
- package/src/installs/apt-transport-https.js +390 -0
- package/src/installs/apt-transport-https.md +678 -0
- package/src/installs/atomicparsley.js +624 -26
- package/src/installs/atomicparsley.md +795 -0
- package/src/installs/aws-cli.js +779 -26
- package/src/installs/aws-cli.md +727 -0
- package/src/installs/balena-etcher.js +688 -26
- package/src/installs/balena-etcher.md +761 -0
- package/src/installs/bambu-studio.js +912 -26
- package/src/installs/bambu-studio.md +780 -0
- package/src/installs/bash-completion.js +554 -23
- package/src/installs/bash-completion.md +833 -0
- package/src/installs/bash.js +399 -26
- package/src/installs/bash.md +993 -0
- package/src/installs/beyond-compare.js +585 -26
- package/src/installs/beyond-compare.md +813 -0
- package/src/installs/build-essential.js +511 -26
- package/src/installs/build-essential.md +977 -0
- package/src/installs/ca-certificates.js +618 -0
- package/src/installs/ca-certificates.md +937 -0
- package/src/installs/caffeine.js +490 -26
- package/src/installs/caffeine.md +839 -0
- package/src/installs/camtasia.js +577 -25
- package/src/installs/camtasia.md +762 -0
- package/src/installs/chatgpt.js +458 -26
- package/src/installs/chatgpt.md +814 -0
- package/src/installs/chocolatey.js +447 -0
- package/src/installs/chocolatey.md +661 -0
- package/src/installs/chrome-canary.js +472 -26
- package/src/installs/chrome-canary.md +641 -0
- package/src/installs/chromium.js +645 -26
- package/src/installs/chromium.md +838 -0
- package/src/installs/claude-code.js +558 -26
- package/src/installs/claude-code.md +1173 -0
- package/src/installs/curl.js +361 -26
- package/src/installs/curl.md +714 -0
- package/src/installs/cursor.js +561 -26
- package/src/installs/cursor.md +970 -0
- package/src/installs/dbschema.js +674 -26
- package/src/installs/dbschema.md +925 -0
- package/src/installs/dependencies.md +435 -0
- package/src/installs/development-tools.js +600 -0
- package/src/installs/development-tools.md +977 -0
- package/src/installs/docker.js +1010 -25
- package/src/installs/docker.md +1109 -0
- package/src/installs/drawio.js +1001 -26
- package/src/installs/drawio.md +795 -0
- package/src/installs/elmedia-player.js +328 -25
- package/src/installs/elmedia-player.md +556 -0
- package/src/installs/ffmpeg.js +870 -25
- package/src/installs/ffmpeg.md +852 -0
- package/src/installs/file.js +464 -0
- package/src/installs/file.md +987 -0
- package/src/installs/gemini-cli.js +793 -26
- package/src/installs/gemini-cli.md +1153 -0
- package/src/installs/git.js +382 -26
- package/src/installs/git.md +907 -0
- package/src/installs/gitego.js +931 -26
- package/src/installs/gitego.md +1172 -0
- package/src/installs/go.js +913 -26
- package/src/installs/go.md +958 -0
- package/src/installs/google-chrome.js +801 -25
- package/src/installs/google-chrome.md +862 -0
- package/src/installs/gpg.js +412 -73
- package/src/installs/gpg.md +1056 -0
- package/src/installs/homebrew.js +1015 -26
- package/src/installs/homebrew.md +988 -0
- package/src/installs/imageoptim.js +950 -26
- package/src/installs/imageoptim.md +1119 -0
- package/src/installs/installers.json +2297 -0
- package/src/installs/jq.js +382 -26
- package/src/installs/jq.md +809 -0
- package/src/installs/keyboard-maestro.js +701 -26
- package/src/installs/keyboard-maestro.md +825 -0
- package/src/installs/latex.js +771 -26
- package/src/installs/latex.md +1095 -0
- package/src/installs/lftp.js +338 -26
- package/src/installs/lftp.md +907 -0
- package/src/installs/lsb-release.js +346 -0
- package/src/installs/lsb-release.md +814 -0
- package/src/installs/messenger.js +829 -26
- package/src/installs/messenger.md +900 -0
- package/src/installs/microsoft-office.js +550 -26
- package/src/installs/microsoft-office.md +760 -0
- package/src/installs/microsoft-teams.js +782 -25
- package/src/installs/microsoft-teams.md +886 -0
- package/src/installs/node.js +886 -26
- package/src/installs/node.md +1153 -0
- package/src/installs/nordpass.js +698 -26
- package/src/installs/nordpass.md +921 -0
- package/src/installs/nvm.js +977 -26
- package/src/installs/nvm.md +1057 -0
- package/src/installs/openssh.js +734 -64
- package/src/installs/openssh.md +1056 -0
- package/src/installs/pandoc.js +644 -26
- package/src/installs/pandoc.md +1036 -0
- package/src/installs/pinentry.js +492 -26
- package/src/installs/pinentry.md +1142 -0
- package/src/installs/pngyu.js +851 -26
- package/src/installs/pngyu.md +896 -0
- package/src/installs/postman.js +781 -26
- package/src/installs/postman.md +940 -0
- package/src/installs/procps.js +425 -0
- package/src/installs/procps.md +851 -0
- package/src/installs/safari-tech-preview.js +355 -25
- package/src/installs/safari-tech-preview.md +533 -0
- package/src/installs/sfnt2woff.js +640 -26
- package/src/installs/sfnt2woff.md +795 -0
- package/src/installs/shellcheck.js +463 -26
- package/src/installs/shellcheck.md +1005 -0
- package/src/installs/slack.js +722 -25
- package/src/installs/slack.md +865 -0
- package/src/installs/snagit.js +566 -25
- package/src/installs/snagit.md +844 -0
- package/src/installs/software-properties-common.js +372 -0
- package/src/installs/software-properties-common.md +805 -0
- package/src/installs/spotify.js +858 -25
- package/src/installs/spotify.md +901 -0
- package/src/installs/studio-3t.js +803 -26
- package/src/installs/studio-3t.md +918 -0
- package/src/installs/sublime-text.js +780 -25
- package/src/installs/sublime-text.md +914 -0
- package/src/installs/superwhisper.js +687 -25
- package/src/installs/superwhisper.md +630 -0
- package/src/installs/tailscale.js +727 -26
- package/src/installs/tailscale.md +1100 -0
- package/src/installs/tar.js +389 -0
- package/src/installs/tar.md +946 -0
- package/src/installs/termius.js +780 -26
- package/src/installs/termius.md +844 -0
- package/src/installs/terraform.js +761 -26
- package/src/installs/terraform.md +899 -0
- package/src/installs/tidal.js +752 -25
- package/src/installs/tidal.md +864 -0
- package/src/installs/tmux.js +328 -26
- package/src/installs/tmux.md +1030 -0
- package/src/installs/tree.js +393 -26
- package/src/installs/tree.md +833 -0
- package/src/installs/unzip.js +460 -0
- package/src/installs/unzip.md +879 -0
- package/src/installs/vim.js +403 -26
- package/src/installs/vim.md +1040 -0
- package/src/installs/vlc.js +803 -26
- package/src/installs/vlc.md +927 -0
- package/src/installs/vscode.js +825 -26
- package/src/installs/vscode.md +1002 -0
- package/src/installs/wget.js +415 -0
- package/src/installs/wget.md +791 -0
- package/src/installs/whatsapp.js +710 -25
- package/src/installs/whatsapp.md +854 -0
- package/src/installs/winpty.js +352 -0
- package/src/installs/winpty.md +620 -0
- package/src/installs/woff2.js +535 -26
- package/src/installs/woff2.md +977 -0
- package/src/installs/wsl.js +572 -0
- package/src/installs/wsl.md +699 -0
- package/src/installs/xcode-clt.js +520 -0
- package/src/installs/xcode-clt.md +351 -0
- package/src/installs/xcode.js +542 -26
- package/src/installs/xcode.md +573 -0
- package/src/installs/yarn.js +806 -26
- package/src/installs/yarn.md +1074 -0
- package/src/installs/yq.js +636 -26
- package/src/installs/yq.md +944 -0
- package/src/installs/yt-dlp.js +683 -26
- package/src/installs/yt-dlp.md +946 -0
- package/src/installs/yum-utils.js +297 -0
- package/src/installs/yum-utils.md +648 -0
- package/src/installs/zoom.js +740 -25
- package/src/installs/zoom.md +884 -0
- package/src/scripts/README.md +567 -45
- package/src/scripts/STATUS.md +208 -0
- package/src/scripts/afk.js +395 -7
- package/src/scripts/backup-all.js +731 -9
- package/src/scripts/backup-source.js +711 -8
- package/src/scripts/brewd.js +373 -7
- package/src/scripts/brewi.js +505 -9
- package/src/scripts/brewr.js +512 -9
- package/src/scripts/brews.js +462 -9
- package/src/scripts/brewu.js +488 -7
- package/src/scripts/c.js +185 -7
- package/src/scripts/ccurl.js +325 -8
- package/src/scripts/certbot-crontab-init.js +488 -8
- package/src/scripts/certbot-init.js +641 -9
- package/src/scripts/ch.js +339 -7
- package/src/scripts/claude-danger.js +253 -8
- package/src/scripts/clean-dev.js +419 -8
- package/src/scripts/clear-dns-cache.js +525 -7
- package/src/scripts/clone.js +417 -7
- package/src/scripts/code-all.js +420 -7
- package/src/scripts/count-files.js +195 -8
- package/src/scripts/count-folders.js +195 -8
- package/src/scripts/count.js +248 -8
- package/src/scripts/d.js +203 -7
- package/src/scripts/datauri.js +373 -8
- package/src/scripts/delete-files.js +363 -7
- package/src/scripts/docker-clean.js +410 -8
- package/src/scripts/dp.js +426 -7
- package/src/scripts/e.js +375 -9
- package/src/scripts/empty-trash.js +497 -7
- package/src/scripts/evm.js +428 -9
- package/src/scripts/fetch-github-repos.js +441 -10
- package/src/scripts/get-channel.js +329 -8
- package/src/scripts/get-course.js +384 -11
- package/src/scripts/get-dependencies.js +290 -9
- package/src/scripts/get-folder.js +783 -10
- package/src/scripts/get-tunes.js +411 -10
- package/src/scripts/get-video.js +352 -9
- package/src/scripts/git-backup.js +561 -9
- package/src/scripts/git-clone.js +477 -9
- package/src/scripts/git-pup.js +303 -7
- package/src/scripts/git-push.js +380 -8
- package/src/scripts/h.js +607 -9
- package/src/scripts/hide-desktop-icons.js +483 -7
- package/src/scripts/hide-hidden-files.js +522 -7
- package/src/scripts/install-dependencies-from.js +440 -9
- package/src/scripts/ips.js +647 -10
- package/src/scripts/iso.js +354 -8
- package/src/scripts/killni.js +561 -7
- package/src/scripts/ll.js +451 -8
- package/src/scripts/local-ip.js +310 -8
- package/src/scripts/m.js +508 -8
- package/src/scripts/map.js +293 -8
- package/src/scripts/mkd.js +287 -7
- package/src/scripts/ncu-update-all.js +441 -8
- package/src/scripts/nginx-init.js +702 -12
- package/src/scripts/npmi.js +366 -7
- package/src/scripts/o.js +495 -8
- package/src/scripts/org-by-date.js +321 -7
- package/src/scripts/p.js +208 -7
- package/src/scripts/packages.js +313 -8
- package/src/scripts/path.js +209 -7
- package/src/scripts/ports.js +582 -8
- package/src/scripts/q.js +290 -8
- package/src/scripts/refresh-files.js +378 -10
- package/src/scripts/remove-smaller-files.js +500 -8
- package/src/scripts/rename-files-with-date.js +517 -9
- package/src/scripts/resize-image.js +523 -9
- package/src/scripts/rm-safe.js +653 -8
- package/src/scripts/s.js +525 -9
- package/src/scripts/set-git-public.js +349 -7
- package/src/scripts/show-desktop-icons.js +459 -7
- package/src/scripts/show-hidden-files.js +456 -7
- package/src/scripts/tpa.js +265 -8
- package/src/scripts/tpo.js +264 -7
- package/src/scripts/u.js +489 -7
- package/src/scripts/vpush.js +422 -8
- package/src/scripts/y.js +267 -7
- package/src/utils/common/os.js +94 -2
- package/src/utils/ubuntu/apt.js +13 -7
- package/src/utils/windows/choco.js +82 -26
- package/src/utils/windows/winget.js +89 -27
|
@@ -0,0 +1,988 @@
|
|
|
1
|
+
# Installing Homebrew
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
Homebrew is a free and open-source package management system that simplifies the installation of software on macOS and Linux. Originally created for macOS to fill the void of a missing system package manager, Homebrew has expanded to support Linux distributions. It installs packages to their own directory and symlinks their files into standard locations, avoiding conflicts with system software.
|
|
6
|
+
|
|
7
|
+
Key features of Homebrew:
|
|
8
|
+
|
|
9
|
+
- **Simple installation**: Install software with a single command (`brew install <package>`)
|
|
10
|
+
- **Dependency management**: Automatically installs required dependencies
|
|
11
|
+
- **Binary packages (bottles)**: Pre-compiled packages for fast installation on supported platforms
|
|
12
|
+
- **Easy updates**: Update all installed packages with `brew upgrade`
|
|
13
|
+
|
|
14
|
+
**Platform Support Summary**:
|
|
15
|
+
|
|
16
|
+
| Platform | Support Level | Notes |
|
|
17
|
+
|----------|---------------|-------|
|
|
18
|
+
| macOS (Intel/Apple Silicon) | Full | Primary platform with complete bottle support |
|
|
19
|
+
| Ubuntu/Debian (x86_64) | Full | Complete bottle support via Linuxbrew |
|
|
20
|
+
| Amazon Linux (x86_64) | Full | Complete bottle support via Linuxbrew |
|
|
21
|
+
| WSL (Ubuntu on Windows) | Full | Complete bottle support via Linuxbrew |
|
|
22
|
+
| Raspberry Pi OS (ARM64) | Limited | No bottles; packages compile from source |
|
|
23
|
+
| Raspberry Pi OS (ARM32) | Minimal | Tier 3 support; requires manual Ruby installation |
|
|
24
|
+
| Windows (Native) | Not Supported | Use WSL for Homebrew on Windows |
|
|
25
|
+
| Git Bash | Not Supported | Use WSL for Homebrew on Windows |
|
|
26
|
+
|
|
27
|
+
## Dependencies
|
|
28
|
+
|
|
29
|
+
### macOS (Homebrew)
|
|
30
|
+
- **Required:**
|
|
31
|
+
- `/bin/bash` - Pre-installed with macOS
|
|
32
|
+
- `curl` - Pre-installed with macOS
|
|
33
|
+
- **Optional:** None
|
|
34
|
+
- **Auto-installed:**
|
|
35
|
+
- Xcode Command Line Tools (includes compilers, git, and build tools) - Installed automatically by the Homebrew installer if not already present
|
|
36
|
+
|
|
37
|
+
### Ubuntu (APT/Snap)
|
|
38
|
+
- **Required:**
|
|
39
|
+
- `build-essential` - Install via `sudo apt-get install -y build-essential`
|
|
40
|
+
- `procps` - Install via `sudo apt-get install -y procps`
|
|
41
|
+
- `curl` - Install via `sudo apt-get install -y curl`
|
|
42
|
+
- `file` - Install via `sudo apt-get install -y file`
|
|
43
|
+
- `git` - Install via `sudo apt-get install -y git`
|
|
44
|
+
- `/bin/bash` - Pre-installed on Ubuntu
|
|
45
|
+
- `sudo` privileges
|
|
46
|
+
- **Optional:** None
|
|
47
|
+
- **Auto-installed:**
|
|
48
|
+
- `tar` - Installed as dependency of build-essential
|
|
49
|
+
|
|
50
|
+
### Raspberry Pi OS (APT/Snap)
|
|
51
|
+
- **Required (64-bit aarch64):**
|
|
52
|
+
- `build-essential` - Install via `sudo apt-get install -y build-essential`
|
|
53
|
+
- `procps` - Install via `sudo apt-get install -y procps`
|
|
54
|
+
- `curl` - Install via `sudo apt-get install -y curl`
|
|
55
|
+
- `file` - Install via `sudo apt-get install -y file`
|
|
56
|
+
- `git` - Install via `sudo apt-get install -y git`
|
|
57
|
+
- `/bin/bash` - Pre-installed on Raspberry Pi OS
|
|
58
|
+
- `sudo` privileges
|
|
59
|
+
- **Required (32-bit armv7l):**
|
|
60
|
+
- All of the above, PLUS:
|
|
61
|
+
- `ruby` - Install via `sudo apt-get install -y ruby`
|
|
62
|
+
- `ruby-dev` - Install via `sudo apt-get install -y ruby-dev`
|
|
63
|
+
- **Optional:**
|
|
64
|
+
- Swap space (recommended for systems with limited RAM to avoid out-of-memory errors during package compilation) - Configure via `sudo fallocate -l 2G /swapfile && sudo chmod 600 /swapfile && sudo mkswap /swapfile && sudo swapon /swapfile`
|
|
65
|
+
- **Auto-installed:**
|
|
66
|
+
- `tar` - Installed as dependency of build-essential
|
|
67
|
+
|
|
68
|
+
### Amazon Linux (DNF/YUM)
|
|
69
|
+
- **Required:**
|
|
70
|
+
- Development Tools group - Install via `sudo dnf groupinstall -y "Development Tools"` (AL2023) or `sudo yum groupinstall -y "Development Tools"` (AL2)
|
|
71
|
+
- `procps-ng` - Install via `sudo dnf install -y procps-ng` (AL2023) or `procps` via `sudo yum install -y procps` (AL2)
|
|
72
|
+
- `curl` - Install via `sudo dnf install -y curl` (AL2023) or `sudo yum install -y curl` (AL2)
|
|
73
|
+
- `file` - Install via `sudo dnf install -y file` (AL2023) or `sudo yum install -y file` (AL2)
|
|
74
|
+
- `git` - Install via `sudo dnf install -y git` (AL2023) or `sudo yum install -y git` (AL2)
|
|
75
|
+
- `/bin/bash` - Pre-installed on Amazon Linux
|
|
76
|
+
- `sudo` privileges
|
|
77
|
+
- **Optional:** None
|
|
78
|
+
- **Auto-installed:**
|
|
79
|
+
- `gcc`, `g++`, `make` and various compiler dependencies - Installed via Development Tools group
|
|
80
|
+
|
|
81
|
+
### Windows (Chocolatey/winget)
|
|
82
|
+
- **Required:** Installation not supported on native Windows
|
|
83
|
+
- **Optional:** None
|
|
84
|
+
- **Auto-installed:** None
|
|
85
|
+
- **Note:** Homebrew does not run natively on Windows. Use Windows Subsystem for Linux (WSL) with Ubuntu to run Homebrew. See WSL installation instructions in the Platform-Specific Installation section below.
|
|
86
|
+
|
|
87
|
+
### Git Bash (Manual/Portable)
|
|
88
|
+
- **Required:** Installation not supported in Git Bash
|
|
89
|
+
- **Optional:** None
|
|
90
|
+
- **Auto-installed:** None
|
|
91
|
+
- **Note:** Git Bash does not provide a full Linux userspace required by Homebrew. Use Windows Subsystem for Linux (WSL) with Ubuntu to run Homebrew. See WSL installation instructions in the Platform-Specific Installation section below.
|
|
92
|
+
|
|
93
|
+
## Prerequisites
|
|
94
|
+
|
|
95
|
+
Before installing Homebrew on any platform, ensure:
|
|
96
|
+
|
|
97
|
+
1. **Internet connectivity** - Required to download the installer and packages
|
|
98
|
+
2. **Command-line access** - Terminal (macOS), bash shell (Linux), or WSL terminal (Windows)
|
|
99
|
+
3. **Administrative privileges** - Required for initial installation (sudo access on Linux)
|
|
100
|
+
4. **Sufficient disk space** - At least 5 GB free (Homebrew itself plus cached downloads)
|
|
101
|
+
|
|
102
|
+
## Platform-Specific Installation
|
|
103
|
+
|
|
104
|
+
### macOS (Homebrew)
|
|
105
|
+
|
|
106
|
+
#### Prerequisites
|
|
107
|
+
|
|
108
|
+
- macOS 14 (Sonoma) or later for full support (macOS 10.15-13 may work but are unsupported)
|
|
109
|
+
- Apple Silicon (M1/M2/M3/M4) or 64-bit Intel processor
|
|
110
|
+
- Command Line Tools for Xcode (installed automatically if not present)
|
|
111
|
+
- Bash shell available (default on macOS)
|
|
112
|
+
|
|
113
|
+
Run this command to pre-install the Command Line Tools (optional, as the Homebrew installer handles this automatically):
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
xcode-select --install
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
#### Installation Steps
|
|
120
|
+
|
|
121
|
+
Run the following command in Terminal to install Homebrew non-interactively:
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
NONINTERACTIVE=1 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
The `NONINTERACTIVE=1` environment variable tells the installer to run without prompting for confirmation, making it suitable for automation and scripts. The installer will:
|
|
128
|
+
|
|
129
|
+
1. Download Homebrew to `/opt/homebrew` (Apple Silicon) or `/usr/local` (Intel)
|
|
130
|
+
2. Install the Command Line Tools for Xcode if not already present
|
|
131
|
+
3. Configure the Homebrew environment
|
|
132
|
+
|
|
133
|
+
**Post-Installation PATH Configuration**:
|
|
134
|
+
|
|
135
|
+
After installation, add Homebrew to your shell PATH. The exact command depends on your processor:
|
|
136
|
+
|
|
137
|
+
**For Apple Silicon Macs (M1/M2/M3/M4):**
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zshrc
|
|
141
|
+
eval "$(/opt/homebrew/bin/brew shellenv)"
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
**For Intel Macs:**
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
echo 'eval "$(/usr/local/bin/brew shellenv)"' >> ~/.zshrc
|
|
148
|
+
eval "$(/usr/local/bin/brew shellenv)"
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
**Note**: The above commands assume you are using zsh (the default shell on modern macOS). If you use bash, replace `~/.zshrc` with `~/.bash_profile`.
|
|
152
|
+
|
|
153
|
+
#### Verification
|
|
154
|
+
|
|
155
|
+
Confirm Homebrew is installed and configured correctly:
|
|
156
|
+
|
|
157
|
+
```bash
|
|
158
|
+
brew --version
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
Expected output (version numbers may vary):
|
|
162
|
+
|
|
163
|
+
```
|
|
164
|
+
Homebrew 4.4.15
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
Run the diagnostic command to check for issues:
|
|
168
|
+
|
|
169
|
+
```bash
|
|
170
|
+
brew doctor
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
A healthy installation displays:
|
|
174
|
+
|
|
175
|
+
```
|
|
176
|
+
Your system is ready to brew.
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
Test installing a package:
|
|
180
|
+
|
|
181
|
+
```bash
|
|
182
|
+
brew install --quiet wget
|
|
183
|
+
wget --version
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
#### Troubleshooting
|
|
187
|
+
|
|
188
|
+
**Problem**: `brew: command not found` after installation
|
|
189
|
+
|
|
190
|
+
**Solution**: The PATH was not configured correctly. Run the shellenv command for your processor:
|
|
191
|
+
|
|
192
|
+
```bash
|
|
193
|
+
# Apple Silicon
|
|
194
|
+
eval "$(/opt/homebrew/bin/brew shellenv)"
|
|
195
|
+
|
|
196
|
+
# Intel
|
|
197
|
+
eval "$(/usr/local/bin/brew shellenv)"
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
Then add it to your shell configuration file as shown in the Installation Steps.
|
|
201
|
+
|
|
202
|
+
**Problem**: Xcode Command Line Tools installation hangs or fails
|
|
203
|
+
|
|
204
|
+
**Solution**: Install the Command Line Tools manually before running the Homebrew installer:
|
|
205
|
+
|
|
206
|
+
```bash
|
|
207
|
+
xcode-select --install
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
Wait for the installation dialog to complete, then re-run the Homebrew installation command.
|
|
211
|
+
|
|
212
|
+
**Problem**: Permission errors during installation
|
|
213
|
+
|
|
214
|
+
**Solution**: Ensure you own the Homebrew directories:
|
|
215
|
+
|
|
216
|
+
```bash
|
|
217
|
+
# Apple Silicon
|
|
218
|
+
sudo chown -R $(whoami) /opt/homebrew
|
|
219
|
+
|
|
220
|
+
# Intel
|
|
221
|
+
sudo chown -R $(whoami) /usr/local/Homebrew
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
**Problem**: `brew update` fails with git errors
|
|
225
|
+
|
|
226
|
+
**Solution**: Reset the Homebrew repository:
|
|
227
|
+
|
|
228
|
+
```bash
|
|
229
|
+
brew update-reset
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
---
|
|
233
|
+
|
|
234
|
+
### Ubuntu/Debian (APT)
|
|
235
|
+
|
|
236
|
+
#### Prerequisites
|
|
237
|
+
|
|
238
|
+
- Ubuntu 20.04 LTS or later, or Debian 10 (Buster) or later (64-bit x86_64)
|
|
239
|
+
- sudo privileges
|
|
240
|
+
- curl and git installed
|
|
241
|
+
|
|
242
|
+
Install the required build dependencies before installing Homebrew:
|
|
243
|
+
|
|
244
|
+
```bash
|
|
245
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
|
|
246
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y build-essential procps curl file git
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
This command installs:
|
|
250
|
+
- `build-essential`: Compilers and build tools (gcc, g++, make)
|
|
251
|
+
- `procps`: Process utilities required by Homebrew
|
|
252
|
+
- `curl`: For downloading the installer
|
|
253
|
+
- `file`: File type detection utility
|
|
254
|
+
- `git`: Version control system used by Homebrew
|
|
255
|
+
|
|
256
|
+
#### Installation Steps
|
|
257
|
+
|
|
258
|
+
Run the following command to install Homebrew non-interactively:
|
|
259
|
+
|
|
260
|
+
```bash
|
|
261
|
+
NONINTERACTIVE=1 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
The installer creates the `/home/linuxbrew/.linuxbrew` directory and installs Homebrew there. This location is used (rather than a user home directory) because it enables the use of pre-compiled binary packages (bottles).
|
|
265
|
+
|
|
266
|
+
**Post-Installation PATH Configuration**:
|
|
267
|
+
|
|
268
|
+
Add Homebrew to your shell PATH:
|
|
269
|
+
|
|
270
|
+
```bash
|
|
271
|
+
echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> ~/.bashrc
|
|
272
|
+
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
For zsh users, replace `~/.bashrc` with `~/.zshrc`.
|
|
276
|
+
|
|
277
|
+
#### Verification
|
|
278
|
+
|
|
279
|
+
Confirm Homebrew is installed correctly:
|
|
280
|
+
|
|
281
|
+
```bash
|
|
282
|
+
brew --version
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
Expected output (version numbers may vary):
|
|
286
|
+
|
|
287
|
+
```
|
|
288
|
+
Homebrew 4.4.15
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
Run diagnostics:
|
|
292
|
+
|
|
293
|
+
```bash
|
|
294
|
+
brew doctor
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
Expected output for a healthy installation:
|
|
298
|
+
|
|
299
|
+
```
|
|
300
|
+
Your system is ready to brew.
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
Test installing a package:
|
|
304
|
+
|
|
305
|
+
```bash
|
|
306
|
+
brew install --quiet hello
|
|
307
|
+
hello
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
Expected output:
|
|
311
|
+
|
|
312
|
+
```
|
|
313
|
+
Hello, world!
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
#### Troubleshooting
|
|
317
|
+
|
|
318
|
+
**Problem**: `brew: command not found` after installation
|
|
319
|
+
|
|
320
|
+
**Solution**: The PATH was not configured. Run:
|
|
321
|
+
|
|
322
|
+
```bash
|
|
323
|
+
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
Then add it to your shell configuration file.
|
|
327
|
+
|
|
328
|
+
**Problem**: `Error: Failure while executing; tar` during package installation
|
|
329
|
+
|
|
330
|
+
**Solution**: Ensure all build dependencies are installed:
|
|
331
|
+
|
|
332
|
+
```bash
|
|
333
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y build-essential procps curl file git
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
**Problem**: Compilation errors when installing packages
|
|
337
|
+
|
|
338
|
+
**Solution**: Install the GCC compiler provided by Homebrew:
|
|
339
|
+
|
|
340
|
+
```bash
|
|
341
|
+
brew install --quiet gcc
|
|
342
|
+
```
|
|
343
|
+
|
|
344
|
+
**Problem**: Slow package installation (compiling from source instead of using bottles)
|
|
345
|
+
|
|
346
|
+
**Solution**: Verify your system meets the bottle requirements. Bottles are only available for x86_64 architecture. Check your architecture:
|
|
347
|
+
|
|
348
|
+
```bash
|
|
349
|
+
uname -m
|
|
350
|
+
```
|
|
351
|
+
|
|
352
|
+
If output is `x86_64`, bottles should work. If output is `aarch64` or `armv7l`, see the Raspberry Pi section.
|
|
353
|
+
|
|
354
|
+
---
|
|
355
|
+
|
|
356
|
+
### Raspberry Pi OS (APT)
|
|
357
|
+
|
|
358
|
+
#### Prerequisites
|
|
359
|
+
|
|
360
|
+
- Raspberry Pi OS Bookworm or Bullseye (64-bit recommended)
|
|
361
|
+
- Raspberry Pi 3B+ or later (64-bit capable hardware recommended)
|
|
362
|
+
- At least 2 GB RAM (4 GB recommended)
|
|
363
|
+
- sudo privileges
|
|
364
|
+
|
|
365
|
+
**Important Architecture Considerations**:
|
|
366
|
+
|
|
367
|
+
| Architecture | Command `uname -m` | Support Level | Binary Packages |
|
|
368
|
+
|--------------|-------------------|---------------|-----------------|
|
|
369
|
+
| 64-bit | `aarch64` | Tier 3 | No bottles available |
|
|
370
|
+
| 32-bit | `armv7l` | Tier 3 | No bottles; requires manual Ruby |
|
|
371
|
+
|
|
372
|
+
Homebrew on ARM Linux is a Tier 3 platform, meaning:
|
|
373
|
+
- It is supported on a best-effort basis
|
|
374
|
+
- No pre-compiled binary packages (bottles) are available
|
|
375
|
+
- All packages must be compiled from source
|
|
376
|
+
- Installation takes significantly longer than on x86_64 platforms
|
|
377
|
+
|
|
378
|
+
Verify your architecture:
|
|
379
|
+
|
|
380
|
+
```bash
|
|
381
|
+
uname -m
|
|
382
|
+
```
|
|
383
|
+
|
|
384
|
+
Install the required build dependencies:
|
|
385
|
+
|
|
386
|
+
```bash
|
|
387
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
|
|
388
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y build-essential procps curl file git
|
|
389
|
+
```
|
|
390
|
+
|
|
391
|
+
#### Installation Steps
|
|
392
|
+
|
|
393
|
+
**For 64-bit Raspberry Pi OS (aarch64):**
|
|
394
|
+
|
|
395
|
+
Run the following command to install Homebrew:
|
|
396
|
+
|
|
397
|
+
```bash
|
|
398
|
+
NONINTERACTIVE=1 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
|
399
|
+
```
|
|
400
|
+
|
|
401
|
+
**Post-Installation PATH Configuration**:
|
|
402
|
+
|
|
403
|
+
```bash
|
|
404
|
+
echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> ~/.bashrc
|
|
405
|
+
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
|
|
406
|
+
```
|
|
407
|
+
|
|
408
|
+
**For 32-bit Raspberry Pi OS (armv7l):**
|
|
409
|
+
|
|
410
|
+
Homebrew on 32-bit ARM requires manual Ruby installation because Homebrew does not distribute a Portable Ruby for this architecture.
|
|
411
|
+
|
|
412
|
+
First, install Ruby from the system package manager:
|
|
413
|
+
|
|
414
|
+
```bash
|
|
415
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y ruby ruby-dev
|
|
416
|
+
```
|
|
417
|
+
|
|
418
|
+
Then install Homebrew:
|
|
419
|
+
|
|
420
|
+
```bash
|
|
421
|
+
NONINTERACTIVE=1 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
|
422
|
+
```
|
|
423
|
+
|
|
424
|
+
Configure PATH:
|
|
425
|
+
|
|
426
|
+
```bash
|
|
427
|
+
echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> ~/.bashrc
|
|
428
|
+
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
|
|
429
|
+
```
|
|
430
|
+
|
|
431
|
+
**Note**: Package installation on Raspberry Pi will be slow because all packages compile from source. Consider using the native `apt` package manager for common tools when possible.
|
|
432
|
+
|
|
433
|
+
#### Verification
|
|
434
|
+
|
|
435
|
+
Confirm Homebrew is installed:
|
|
436
|
+
|
|
437
|
+
```bash
|
|
438
|
+
brew --version
|
|
439
|
+
```
|
|
440
|
+
|
|
441
|
+
Expected output (version numbers may vary):
|
|
442
|
+
|
|
443
|
+
```
|
|
444
|
+
Homebrew 4.4.15
|
|
445
|
+
```
|
|
446
|
+
|
|
447
|
+
Run diagnostics (expect some warnings about unsupported platform):
|
|
448
|
+
|
|
449
|
+
```bash
|
|
450
|
+
brew doctor
|
|
451
|
+
```
|
|
452
|
+
|
|
453
|
+
Test installing a package (this will compile from source and may take several minutes):
|
|
454
|
+
|
|
455
|
+
```bash
|
|
456
|
+
brew install --quiet hello
|
|
457
|
+
hello
|
|
458
|
+
```
|
|
459
|
+
|
|
460
|
+
#### Troubleshooting
|
|
461
|
+
|
|
462
|
+
**Problem**: `Error: No Homebrew ruby available for aarch64 processors!`
|
|
463
|
+
|
|
464
|
+
**Solution**: Install system Ruby before running the Homebrew installer:
|
|
465
|
+
|
|
466
|
+
```bash
|
|
467
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y ruby ruby-dev
|
|
468
|
+
```
|
|
469
|
+
|
|
470
|
+
Then re-run the Homebrew installation command.
|
|
471
|
+
|
|
472
|
+
**Problem**: Package installation extremely slow
|
|
473
|
+
|
|
474
|
+
**Solution**: This is expected behavior on ARM platforms because packages compile from source. For frequently-used tools, consider using the native `apt` package manager:
|
|
475
|
+
|
|
476
|
+
```bash
|
|
477
|
+
# Instead of: brew install wget
|
|
478
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y wget
|
|
479
|
+
```
|
|
480
|
+
|
|
481
|
+
**Problem**: Compilation fails with out-of-memory errors
|
|
482
|
+
|
|
483
|
+
**Solution**: Add swap space to your Raspberry Pi:
|
|
484
|
+
|
|
485
|
+
```bash
|
|
486
|
+
sudo fallocate -l 2G /swapfile
|
|
487
|
+
sudo chmod 600 /swapfile
|
|
488
|
+
sudo mkswap /swapfile
|
|
489
|
+
sudo swapon /swapfile
|
|
490
|
+
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
|
|
491
|
+
```
|
|
492
|
+
|
|
493
|
+
**Problem**: `brew doctor` shows many warnings
|
|
494
|
+
|
|
495
|
+
**Solution**: Warnings about unsupported platform and missing bottles are expected on Raspberry Pi. Focus on actual errors rather than warnings.
|
|
496
|
+
|
|
497
|
+
---
|
|
498
|
+
|
|
499
|
+
### Amazon Linux (DNF/YUM)
|
|
500
|
+
|
|
501
|
+
#### Prerequisites
|
|
502
|
+
|
|
503
|
+
- Amazon Linux 2023 (AL2023) or Amazon Linux 2 (AL2)
|
|
504
|
+
- 64-bit x86_64 architecture
|
|
505
|
+
- sudo privileges
|
|
506
|
+
- EC2 instance or compatible environment
|
|
507
|
+
|
|
508
|
+
**Note**: Amazon Linux 2023 uses DNF as the default package manager. Amazon Linux 2 uses YUM. The commands below use DNF; for AL2, substitute `dnf` with `yum`.
|
|
509
|
+
|
|
510
|
+
Install the required development tools and dependencies:
|
|
511
|
+
|
|
512
|
+
```bash
|
|
513
|
+
# For Amazon Linux 2023
|
|
514
|
+
sudo dnf groupinstall -y "Development Tools"
|
|
515
|
+
sudo dnf install -y procps-ng curl file git
|
|
516
|
+
|
|
517
|
+
# For Amazon Linux 2
|
|
518
|
+
sudo yum groupinstall -y "Development Tools"
|
|
519
|
+
sudo yum install -y procps curl file git
|
|
520
|
+
```
|
|
521
|
+
|
|
522
|
+
#### Installation Steps
|
|
523
|
+
|
|
524
|
+
Run the following command to install Homebrew non-interactively:
|
|
525
|
+
|
|
526
|
+
```bash
|
|
527
|
+
NONINTERACTIVE=1 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
|
528
|
+
```
|
|
529
|
+
|
|
530
|
+
The installer creates the `/home/linuxbrew/.linuxbrew` directory and installs Homebrew there.
|
|
531
|
+
|
|
532
|
+
**Post-Installation PATH Configuration**:
|
|
533
|
+
|
|
534
|
+
Add Homebrew to your shell PATH:
|
|
535
|
+
|
|
536
|
+
```bash
|
|
537
|
+
echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> ~/.bashrc
|
|
538
|
+
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
|
|
539
|
+
```
|
|
540
|
+
|
|
541
|
+
#### Verification
|
|
542
|
+
|
|
543
|
+
Confirm Homebrew is installed correctly:
|
|
544
|
+
|
|
545
|
+
```bash
|
|
546
|
+
brew --version
|
|
547
|
+
```
|
|
548
|
+
|
|
549
|
+
Expected output (version numbers may vary):
|
|
550
|
+
|
|
551
|
+
```
|
|
552
|
+
Homebrew 4.4.15
|
|
553
|
+
```
|
|
554
|
+
|
|
555
|
+
Run diagnostics:
|
|
556
|
+
|
|
557
|
+
```bash
|
|
558
|
+
brew doctor
|
|
559
|
+
```
|
|
560
|
+
|
|
561
|
+
Expected output for a healthy installation:
|
|
562
|
+
|
|
563
|
+
```
|
|
564
|
+
Your system is ready to brew.
|
|
565
|
+
```
|
|
566
|
+
|
|
567
|
+
Test installing a package:
|
|
568
|
+
|
|
569
|
+
```bash
|
|
570
|
+
brew install --quiet hello
|
|
571
|
+
hello
|
|
572
|
+
```
|
|
573
|
+
|
|
574
|
+
Expected output:
|
|
575
|
+
|
|
576
|
+
```
|
|
577
|
+
Hello, world!
|
|
578
|
+
```
|
|
579
|
+
|
|
580
|
+
#### Troubleshooting
|
|
581
|
+
|
|
582
|
+
**Problem**: `brew: command not found` after installation
|
|
583
|
+
|
|
584
|
+
**Solution**: The PATH was not configured. Run:
|
|
585
|
+
|
|
586
|
+
```bash
|
|
587
|
+
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
|
|
588
|
+
```
|
|
589
|
+
|
|
590
|
+
Then add the line to your `~/.bashrc`.
|
|
591
|
+
|
|
592
|
+
**Problem**: Missing development tools error
|
|
593
|
+
|
|
594
|
+
**Solution**: Install the development tools group:
|
|
595
|
+
|
|
596
|
+
```bash
|
|
597
|
+
# Amazon Linux 2023
|
|
598
|
+
sudo dnf groupinstall -y "Development Tools"
|
|
599
|
+
|
|
600
|
+
# Amazon Linux 2
|
|
601
|
+
sudo yum groupinstall -y "Development Tools"
|
|
602
|
+
```
|
|
603
|
+
|
|
604
|
+
**Problem**: GCC version too old
|
|
605
|
+
|
|
606
|
+
**Solution**: Install Homebrew's GCC:
|
|
607
|
+
|
|
608
|
+
```bash
|
|
609
|
+
brew install --quiet gcc
|
|
610
|
+
```
|
|
611
|
+
|
|
612
|
+
**Problem**: Locale warnings during installation
|
|
613
|
+
|
|
614
|
+
**Solution**: Set the locale before running the installer:
|
|
615
|
+
|
|
616
|
+
```bash
|
|
617
|
+
export LC_ALL=en_US.UTF-8
|
|
618
|
+
export LANG=en_US.UTF-8
|
|
619
|
+
NONINTERACTIVE=1 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
|
620
|
+
```
|
|
621
|
+
|
|
622
|
+
---
|
|
623
|
+
|
|
624
|
+
### Windows (Chocolatey/winget)
|
|
625
|
+
|
|
626
|
+
#### Platform Note
|
|
627
|
+
|
|
628
|
+
**Homebrew does not run natively on Windows.** The Homebrew project officially supports only macOS and Linux.
|
|
629
|
+
|
|
630
|
+
To use Homebrew on Windows, install Windows Subsystem for Linux (WSL) and run Homebrew within the Linux environment. See the WSL (Ubuntu) section below for complete instructions.
|
|
631
|
+
|
|
632
|
+
**Alternative package managers for native Windows:**
|
|
633
|
+
|
|
634
|
+
For native Windows package management, use one of these tools instead:
|
|
635
|
+
|
|
636
|
+
- **winget**: Microsoft's built-in package manager (Windows 10/11)
|
|
637
|
+
- **Chocolatey**: Third-party community package manager
|
|
638
|
+
|
|
639
|
+
These are documented in other installation guides within this project.
|
|
640
|
+
|
|
641
|
+
---
|
|
642
|
+
|
|
643
|
+
### WSL (Ubuntu)
|
|
644
|
+
|
|
645
|
+
#### Prerequisites
|
|
646
|
+
|
|
647
|
+
- Windows 10 version 2004 (build 19041) or higher, or Windows 11
|
|
648
|
+
- WSL 2 enabled (WSL 1 has known issues with Homebrew)
|
|
649
|
+
- Ubuntu distribution installed in WSL
|
|
650
|
+
- sudo privileges within WSL
|
|
651
|
+
|
|
652
|
+
**Step 1: Install WSL and Ubuntu**
|
|
653
|
+
|
|
654
|
+
Run this command in an Administrator PowerShell to install WSL with Ubuntu:
|
|
655
|
+
|
|
656
|
+
```powershell
|
|
657
|
+
wsl --install -d Ubuntu
|
|
658
|
+
```
|
|
659
|
+
|
|
660
|
+
Restart your computer when prompted. After restart, the Ubuntu setup will launch automatically. Create your UNIX username and password when prompted.
|
|
661
|
+
|
|
662
|
+
**Step 2: Verify WSL Version**
|
|
663
|
+
|
|
664
|
+
Open Ubuntu from the Start menu and verify you are running WSL 2:
|
|
665
|
+
|
|
666
|
+
```bash
|
|
667
|
+
wsl.exe -l -v
|
|
668
|
+
```
|
|
669
|
+
|
|
670
|
+
If your Ubuntu distribution shows Version 1, upgrade it to Version 2:
|
|
671
|
+
|
|
672
|
+
```powershell
|
|
673
|
+
wsl --set-version Ubuntu 2
|
|
674
|
+
```
|
|
675
|
+
|
|
676
|
+
#### Installation Steps
|
|
677
|
+
|
|
678
|
+
Open your WSL Ubuntu terminal and install the required build dependencies:
|
|
679
|
+
|
|
680
|
+
```bash
|
|
681
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
|
|
682
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y build-essential procps curl file git
|
|
683
|
+
```
|
|
684
|
+
|
|
685
|
+
Run the following command to install Homebrew non-interactively:
|
|
686
|
+
|
|
687
|
+
```bash
|
|
688
|
+
NONINTERACTIVE=1 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
|
689
|
+
```
|
|
690
|
+
|
|
691
|
+
**Post-Installation PATH Configuration**:
|
|
692
|
+
|
|
693
|
+
Add Homebrew to your shell PATH:
|
|
694
|
+
|
|
695
|
+
```bash
|
|
696
|
+
echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> ~/.bashrc
|
|
697
|
+
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
|
|
698
|
+
```
|
|
699
|
+
|
|
700
|
+
#### Verification
|
|
701
|
+
|
|
702
|
+
Confirm Homebrew is installed correctly:
|
|
703
|
+
|
|
704
|
+
```bash
|
|
705
|
+
brew --version
|
|
706
|
+
```
|
|
707
|
+
|
|
708
|
+
Expected output (version numbers may vary):
|
|
709
|
+
|
|
710
|
+
```
|
|
711
|
+
Homebrew 4.4.15
|
|
712
|
+
```
|
|
713
|
+
|
|
714
|
+
Run diagnostics:
|
|
715
|
+
|
|
716
|
+
```bash
|
|
717
|
+
brew doctor
|
|
718
|
+
```
|
|
719
|
+
|
|
720
|
+
Expected output for a healthy installation:
|
|
721
|
+
|
|
722
|
+
```
|
|
723
|
+
Your system is ready to brew.
|
|
724
|
+
```
|
|
725
|
+
|
|
726
|
+
Test installing a package:
|
|
727
|
+
|
|
728
|
+
```bash
|
|
729
|
+
brew install --quiet hello
|
|
730
|
+
hello
|
|
731
|
+
```
|
|
732
|
+
|
|
733
|
+
Expected output:
|
|
734
|
+
|
|
735
|
+
```
|
|
736
|
+
Hello, world!
|
|
737
|
+
```
|
|
738
|
+
|
|
739
|
+
#### Troubleshooting
|
|
740
|
+
|
|
741
|
+
**Problem**: `brew: command not found` after installation
|
|
742
|
+
|
|
743
|
+
**Solution**: The PATH was not configured. Run:
|
|
744
|
+
|
|
745
|
+
```bash
|
|
746
|
+
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
|
|
747
|
+
```
|
|
748
|
+
|
|
749
|
+
Add it to your `~/.bashrc` for persistence.
|
|
750
|
+
|
|
751
|
+
**Problem**: "WSL 1 is not supported" or compatibility warnings
|
|
752
|
+
|
|
753
|
+
**Solution**: Upgrade to WSL 2:
|
|
754
|
+
|
|
755
|
+
```powershell
|
|
756
|
+
# Run in PowerShell (not WSL)
|
|
757
|
+
wsl --set-version Ubuntu 2
|
|
758
|
+
```
|
|
759
|
+
|
|
760
|
+
**Problem**: Very slow disk performance
|
|
761
|
+
|
|
762
|
+
**Solution**: Store your files in the Linux filesystem (`/home/username/`) rather than the Windows filesystem (`/mnt/c/`). Accessing Windows files from WSL is significantly slower.
|
|
763
|
+
|
|
764
|
+
**Problem**: `apt-get update` fails with network errors
|
|
765
|
+
|
|
766
|
+
**Solution**: This can indicate WSL networking issues. Restart WSL:
|
|
767
|
+
|
|
768
|
+
```powershell
|
|
769
|
+
# Run in PowerShell
|
|
770
|
+
wsl --shutdown
|
|
771
|
+
```
|
|
772
|
+
|
|
773
|
+
Then reopen Ubuntu.
|
|
774
|
+
|
|
775
|
+
**Problem**: Line ending issues (CRLF vs LF)
|
|
776
|
+
|
|
777
|
+
**Solution**: Configure git to use Unix line endings in WSL:
|
|
778
|
+
|
|
779
|
+
```bash
|
|
780
|
+
git config --global core.autocrlf input
|
|
781
|
+
```
|
|
782
|
+
|
|
783
|
+
---
|
|
784
|
+
|
|
785
|
+
### Git Bash (Manual/Portable)
|
|
786
|
+
|
|
787
|
+
#### Platform Note
|
|
788
|
+
|
|
789
|
+
**Homebrew does not run in Git Bash.** Git Bash is a Windows terminal emulator that provides a bash-like environment but does not include a full Linux userspace required by Homebrew.
|
|
790
|
+
|
|
791
|
+
To use Homebrew on Windows, install Windows Subsystem for Linux (WSL) and run Homebrew within the Linux environment. See the WSL (Ubuntu) section above for complete instructions.
|
|
792
|
+
|
|
793
|
+
**Alternative approaches for Git Bash users:**
|
|
794
|
+
|
|
795
|
+
1. **Install WSL** - Run a full Linux environment alongside Windows and use Homebrew there
|
|
796
|
+
2. **Use Chocolatey** - Native Windows package manager that works from any Windows terminal including Git Bash
|
|
797
|
+
3. **Use winget** - Microsoft's built-in Windows package manager
|
|
798
|
+
|
|
799
|
+
---
|
|
800
|
+
|
|
801
|
+
## Post-Installation Configuration
|
|
802
|
+
|
|
803
|
+
After installing Homebrew on any platform, consider these optional but recommended configurations.
|
|
804
|
+
|
|
805
|
+
### Update Homebrew
|
|
806
|
+
|
|
807
|
+
Update Homebrew to the latest version:
|
|
808
|
+
|
|
809
|
+
```bash
|
|
810
|
+
brew update
|
|
811
|
+
```
|
|
812
|
+
|
|
813
|
+
### Install Recommended Dependencies
|
|
814
|
+
|
|
815
|
+
Homebrew recommends installing its own GCC compiler for maximum compatibility:
|
|
816
|
+
|
|
817
|
+
```bash
|
|
818
|
+
brew install --quiet gcc
|
|
819
|
+
```
|
|
820
|
+
|
|
821
|
+
### Configure Homebrew Analytics
|
|
822
|
+
|
|
823
|
+
Homebrew collects anonymous usage analytics by default. To disable analytics:
|
|
824
|
+
|
|
825
|
+
```bash
|
|
826
|
+
brew analytics off
|
|
827
|
+
```
|
|
828
|
+
|
|
829
|
+
### Configure Homebrew Auto-Update
|
|
830
|
+
|
|
831
|
+
By default, Homebrew automatically checks for updates before each `brew install` command. To disable auto-update:
|
|
832
|
+
|
|
833
|
+
```bash
|
|
834
|
+
echo 'export HOMEBREW_NO_AUTO_UPDATE=1' >> ~/.bashrc
|
|
835
|
+
source ~/.bashrc
|
|
836
|
+
```
|
|
837
|
+
|
|
838
|
+
### Common Homebrew Commands
|
|
839
|
+
|
|
840
|
+
| Command | Description |
|
|
841
|
+
|---------|-------------|
|
|
842
|
+
| `brew install <package>` | Install a package |
|
|
843
|
+
| `brew uninstall <package>` | Remove a package |
|
|
844
|
+
| `brew upgrade` | Upgrade all installed packages |
|
|
845
|
+
| `brew upgrade <package>` | Upgrade a specific package |
|
|
846
|
+
| `brew list` | List installed packages |
|
|
847
|
+
| `brew search <term>` | Search for packages |
|
|
848
|
+
| `brew info <package>` | Show package information |
|
|
849
|
+
| `brew doctor` | Check for system issues |
|
|
850
|
+
| `brew cleanup` | Remove old versions and cache |
|
|
851
|
+
| `brew update` | Update Homebrew itself |
|
|
852
|
+
|
|
853
|
+
---
|
|
854
|
+
|
|
855
|
+
## Common Issues
|
|
856
|
+
|
|
857
|
+
### Issue: Homebrew Is Slow
|
|
858
|
+
|
|
859
|
+
**Symptoms**: `brew install` or `brew update` takes a very long time
|
|
860
|
+
|
|
861
|
+
**Solutions**:
|
|
862
|
+
|
|
863
|
+
- On ARM platforms (Raspberry Pi), slowness is expected because packages compile from source
|
|
864
|
+
- Check your internet connection
|
|
865
|
+
- Disable auto-update if running many commands:
|
|
866
|
+
|
|
867
|
+
```bash
|
|
868
|
+
export HOMEBREW_NO_AUTO_UPDATE=1
|
|
869
|
+
```
|
|
870
|
+
|
|
871
|
+
- Clean up old cached files:
|
|
872
|
+
|
|
873
|
+
```bash
|
|
874
|
+
brew cleanup --prune=all
|
|
875
|
+
```
|
|
876
|
+
|
|
877
|
+
### Issue: Bottles Not Available
|
|
878
|
+
|
|
879
|
+
**Symptoms**: Packages compile from source instead of downloading pre-built bottles
|
|
880
|
+
|
|
881
|
+
**Solutions**:
|
|
882
|
+
|
|
883
|
+
- Bottles are only available for officially supported platforms (macOS Intel/Apple Silicon, Linux x86_64)
|
|
884
|
+
- On ARM Linux, bottles are not available; compilation from source is expected
|
|
885
|
+
- Verify your architecture with `uname -m`
|
|
886
|
+
|
|
887
|
+
### Issue: Permission Errors
|
|
888
|
+
|
|
889
|
+
**Symptoms**: `Permission denied` errors during installation or package operations
|
|
890
|
+
|
|
891
|
+
**Solutions**:
|
|
892
|
+
|
|
893
|
+
- Do not run `brew` with sudo (except during initial setup on some Linux systems)
|
|
894
|
+
- Fix ownership of Homebrew directories:
|
|
895
|
+
|
|
896
|
+
```bash
|
|
897
|
+
# macOS Apple Silicon
|
|
898
|
+
sudo chown -R $(whoami) /opt/homebrew
|
|
899
|
+
|
|
900
|
+
# macOS Intel
|
|
901
|
+
sudo chown -R $(whoami) /usr/local/Homebrew
|
|
902
|
+
|
|
903
|
+
# Linux
|
|
904
|
+
sudo chown -R $(whoami) /home/linuxbrew/.linuxbrew
|
|
905
|
+
```
|
|
906
|
+
|
|
907
|
+
### Issue: PATH Not Configured
|
|
908
|
+
|
|
909
|
+
**Symptoms**: `brew: command not found` after installation
|
|
910
|
+
|
|
911
|
+
**Solutions**:
|
|
912
|
+
|
|
913
|
+
Run the appropriate shellenv command for your platform:
|
|
914
|
+
|
|
915
|
+
```bash
|
|
916
|
+
# macOS Apple Silicon
|
|
917
|
+
eval "$(/opt/homebrew/bin/brew shellenv)"
|
|
918
|
+
|
|
919
|
+
# macOS Intel
|
|
920
|
+
eval "$(/usr/local/bin/brew shellenv)"
|
|
921
|
+
|
|
922
|
+
# Linux/WSL
|
|
923
|
+
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
|
|
924
|
+
```
|
|
925
|
+
|
|
926
|
+
Add the command to your shell configuration file (`~/.bashrc`, `~/.zshrc`, or `~/.bash_profile`).
|
|
927
|
+
|
|
928
|
+
### Issue: Conflicting Package Versions
|
|
929
|
+
|
|
930
|
+
**Symptoms**: System packages conflict with Homebrew packages
|
|
931
|
+
|
|
932
|
+
**Solutions**:
|
|
933
|
+
|
|
934
|
+
Homebrew packages take precedence over system packages when Homebrew is in your PATH. If you need to use a system package instead:
|
|
935
|
+
|
|
936
|
+
```bash
|
|
937
|
+
# Temporarily use system version
|
|
938
|
+
/usr/bin/git --version
|
|
939
|
+
|
|
940
|
+
# Or remove Homebrew from PATH for current session
|
|
941
|
+
export PATH=$(echo $PATH | sed 's|/home/linuxbrew/.linuxbrew/bin:||')
|
|
942
|
+
```
|
|
943
|
+
|
|
944
|
+
### Issue: Disk Space Full
|
|
945
|
+
|
|
946
|
+
**Symptoms**: Installation fails with "No space left on device"
|
|
947
|
+
|
|
948
|
+
**Solutions**:
|
|
949
|
+
|
|
950
|
+
Remove cached downloads and old package versions:
|
|
951
|
+
|
|
952
|
+
```bash
|
|
953
|
+
brew cleanup --prune=all
|
|
954
|
+
```
|
|
955
|
+
|
|
956
|
+
Check disk usage by Homebrew:
|
|
957
|
+
|
|
958
|
+
```bash
|
|
959
|
+
brew --cache
|
|
960
|
+
du -sh $(brew --cache)
|
|
961
|
+
```
|
|
962
|
+
|
|
963
|
+
---
|
|
964
|
+
|
|
965
|
+
## Uninstalling Homebrew
|
|
966
|
+
|
|
967
|
+
To completely remove Homebrew from your system, run:
|
|
968
|
+
|
|
969
|
+
```bash
|
|
970
|
+
NONINTERACTIVE=1 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)"
|
|
971
|
+
```
|
|
972
|
+
|
|
973
|
+
The `NONINTERACTIVE=1` flag runs the uninstaller without prompting for confirmation.
|
|
974
|
+
|
|
975
|
+
After uninstallation, remove the shellenv line from your shell configuration file (`~/.bashrc`, `~/.zshrc`, or `~/.bash_profile`).
|
|
976
|
+
|
|
977
|
+
---
|
|
978
|
+
|
|
979
|
+
## References
|
|
980
|
+
|
|
981
|
+
- [Homebrew Official Website](https://brew.sh/)
|
|
982
|
+
- [Homebrew Installation Documentation](https://docs.brew.sh/Installation)
|
|
983
|
+
- [Homebrew on Linux Documentation](https://docs.brew.sh/Homebrew-on-Linux)
|
|
984
|
+
- [Homebrew FAQ](https://docs.brew.sh/FAQ)
|
|
985
|
+
- [Homebrew Installer GitHub Repository](https://github.com/Homebrew/install)
|
|
986
|
+
- [Homebrew Core GitHub Repository](https://github.com/Homebrew/homebrew-core)
|
|
987
|
+
- [WSL Installation Guide](https://learn.microsoft.com/en-us/windows/wsl/install)
|
|
988
|
+
- [AWS SAM Homebrew Installation Guide](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/install-homebrew.html)
|