@fredlackey/devutils 0.0.18 → 0.1.0

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.
Files changed (447) hide show
  1. package/README.md +214 -141
  2. package/package.json +8 -83
  3. package/src/api/loader.js +229 -0
  4. package/src/api/registry.json +62 -0
  5. package/src/cli.js +293 -60
  6. package/src/commands/ai/index.js +16 -0
  7. package/src/commands/ai/launch.js +112 -0
  8. package/src/commands/ai/list.js +54 -0
  9. package/src/commands/ai/resume.js +70 -0
  10. package/src/commands/ai/sessions.js +121 -0
  11. package/src/commands/ai/set.js +131 -0
  12. package/src/commands/ai/show.js +74 -0
  13. package/src/commands/ai/tools.js +46 -0
  14. package/src/commands/alias/add.js +93 -0
  15. package/src/commands/alias/helpers.js +107 -0
  16. package/src/commands/alias/index.js +14 -0
  17. package/src/commands/alias/list.js +55 -0
  18. package/src/commands/alias/remove.js +62 -0
  19. package/src/commands/alias/sync.js +109 -0
  20. package/src/commands/api/disable.js +73 -0
  21. package/src/commands/api/enable.js +148 -0
  22. package/src/commands/api/index.js +15 -0
  23. package/src/commands/api/list.js +66 -0
  24. package/src/commands/api/update.js +87 -0
  25. package/src/commands/auth/index.js +15 -0
  26. package/src/commands/auth/list.js +49 -0
  27. package/src/commands/auth/login.js +384 -0
  28. package/src/commands/auth/logout.js +111 -0
  29. package/src/commands/auth/refresh.js +184 -0
  30. package/src/commands/auth/services.js +169 -0
  31. package/src/commands/auth/status.js +104 -0
  32. package/src/commands/config/export.js +224 -0
  33. package/src/commands/config/get.js +52 -0
  34. package/src/commands/config/import.js +308 -0
  35. package/src/commands/config/index.js +17 -0
  36. package/src/commands/config/init.js +143 -0
  37. package/src/commands/config/reset.js +57 -0
  38. package/src/commands/config/set.js +93 -0
  39. package/src/commands/config/show.js +35 -0
  40. package/src/commands/help.js +338 -0
  41. package/src/commands/identity/add.js +133 -0
  42. package/src/commands/identity/index.js +17 -0
  43. package/src/commands/identity/link.js +76 -0
  44. package/src/commands/identity/list.js +48 -0
  45. package/src/commands/identity/remove.js +72 -0
  46. package/src/commands/identity/show.js +65 -0
  47. package/src/commands/identity/sync.js +172 -0
  48. package/src/commands/identity/unlink.js +57 -0
  49. package/src/commands/ignore/add.js +165 -0
  50. package/src/commands/ignore/index.js +14 -0
  51. package/src/commands/ignore/list.js +89 -0
  52. package/src/commands/ignore/markers.js +43 -0
  53. package/src/commands/ignore/remove.js +164 -0
  54. package/src/commands/ignore/show.js +169 -0
  55. package/src/commands/machine/detect.js +122 -0
  56. package/src/commands/machine/index.js +14 -0
  57. package/src/commands/machine/list.js +74 -0
  58. package/src/commands/machine/set.js +106 -0
  59. package/src/commands/machine/show.js +35 -0
  60. package/src/commands/schema.js +152 -0
  61. package/src/commands/search/collections.js +134 -0
  62. package/src/commands/search/get.js +71 -0
  63. package/src/commands/search/index-cmd.js +54 -0
  64. package/src/commands/search/index.js +21 -0
  65. package/src/commands/search/keyword.js +60 -0
  66. package/src/commands/search/qmd.js +70 -0
  67. package/src/commands/search/query.js +64 -0
  68. package/src/commands/search/semantic.js +62 -0
  69. package/src/commands/search/status.js +46 -0
  70. package/src/commands/status.js +224 -171
  71. package/src/commands/tools/check.js +79 -0
  72. package/src/commands/tools/index.js +14 -0
  73. package/src/commands/tools/install.js +110 -0
  74. package/src/commands/tools/list.js +91 -0
  75. package/src/commands/tools/search.js +60 -0
  76. package/src/commands/update.js +83 -112
  77. package/src/commands/util/add.js +151 -0
  78. package/src/commands/util/index.js +15 -0
  79. package/src/commands/util/list.js +97 -0
  80. package/src/commands/util/remove.js +76 -0
  81. package/src/commands/util/run.js +79 -0
  82. package/src/commands/util/show.js +67 -0
  83. package/src/commands/version.js +21 -88
  84. package/src/installers/_template.js +104 -0
  85. package/src/installers/git.js +150 -0
  86. package/src/installers/homebrew.js +190 -0
  87. package/src/installers/node.js +223 -0
  88. package/src/installers/registry.json +29 -0
  89. package/src/lib/config.js +125 -0
  90. package/src/lib/detect.js +74 -0
  91. package/src/lib/errors.js +114 -0
  92. package/src/lib/github.js +315 -0
  93. package/src/lib/installer.js +225 -0
  94. package/src/lib/output.js +239 -0
  95. package/src/lib/platform.js +112 -0
  96. package/src/lib/platforms/amazon-linux.js +41 -0
  97. package/src/lib/platforms/gitbash.js +46 -0
  98. package/src/lib/platforms/macos.js +45 -0
  99. package/src/lib/platforms/raspbian.js +41 -0
  100. package/src/lib/platforms/ubuntu.js +39 -0
  101. package/src/lib/platforms/windows.js +45 -0
  102. package/src/lib/prompt.js +161 -0
  103. package/src/lib/schema.js +211 -0
  104. package/src/lib/shell.js +75 -0
  105. package/src/patterns/gitignore/claude-code.txt +25 -0
  106. package/src/patterns/gitignore/docker.txt +15 -0
  107. package/src/patterns/gitignore/go.txt +24 -0
  108. package/src/patterns/gitignore/java.txt +38 -0
  109. package/src/patterns/gitignore/jetbrains.txt +26 -0
  110. package/src/patterns/gitignore/linux.txt +18 -0
  111. package/src/patterns/gitignore/macos.txt +27 -0
  112. package/src/patterns/gitignore/node.txt +51 -0
  113. package/src/patterns/gitignore/python.txt +55 -0
  114. package/src/patterns/gitignore/rust.txt +14 -0
  115. package/src/patterns/gitignore/terraform.txt +30 -0
  116. package/src/patterns/gitignore/vscode.txt +15 -0
  117. package/src/patterns/gitignore/windows.txt +25 -0
  118. package/src/utils/clone/index.js +165 -0
  119. package/src/utils/git-push/index.js +230 -0
  120. package/src/utils/git-status/index.js +116 -0
  121. package/src/utils/git-status/unix.sh +75 -0
  122. package/src/utils/registry.json +41 -0
  123. package/bin/dev.js +0 -16
  124. package/files/README.md +0 -0
  125. package/files/claude/.claude/commands/setup-context.md +0 -3
  126. package/files/monorepos/_archive/README.md +0 -36
  127. package/files/monorepos/_legacy/README.md +0 -36
  128. package/files/monorepos/ai-docs/README.md +0 -33
  129. package/files/monorepos/apps/README.md +0 -24
  130. package/files/monorepos/docs/README.md +0 -40
  131. package/files/monorepos/packages/README.md +0 -25
  132. package/files/monorepos/research/README.md +0 -29
  133. package/files/monorepos/scripts/README.md +0 -24
  134. package/src/commands/README.md +0 -41
  135. package/src/commands/configure.js +0 -199
  136. package/src/commands/identity.js +0 -1630
  137. package/src/commands/ignore.js +0 -247
  138. package/src/commands/install.js +0 -526
  139. package/src/commands/setup.js +0 -246
  140. package/src/completion.js +0 -284
  141. package/src/constants.js +0 -45
  142. package/src/ignore/claude-code.txt +0 -10
  143. package/src/ignore/docker.txt +0 -18
  144. package/src/ignore/linux.txt +0 -23
  145. package/src/ignore/macos.txt +0 -36
  146. package/src/ignore/node.txt +0 -55
  147. package/src/ignore/terraform.txt +0 -37
  148. package/src/ignore/vscode.txt +0 -18
  149. package/src/ignore/windows.txt +0 -35
  150. package/src/index.js +0 -0
  151. package/src/installs/README.md +0 -399
  152. package/src/installs/adobe-creative-cloud.js +0 -546
  153. package/src/installs/adobe-creative-cloud.md +0 -605
  154. package/src/installs/appcleaner.js +0 -321
  155. package/src/installs/appcleaner.md +0 -699
  156. package/src/installs/apt-transport-https.js +0 -390
  157. package/src/installs/apt-transport-https.md +0 -678
  158. package/src/installs/atomicparsley.js +0 -642
  159. package/src/installs/atomicparsley.md +0 -795
  160. package/src/installs/aws-cli.js +0 -797
  161. package/src/installs/aws-cli.md +0 -727
  162. package/src/installs/balena-etcher.js +0 -710
  163. package/src/installs/balena-etcher.md +0 -761
  164. package/src/installs/bambu-studio.js +0 -1143
  165. package/src/installs/bambu-studio.md +0 -780
  166. package/src/installs/bash-completion.js +0 -575
  167. package/src/installs/bash-completion.md +0 -833
  168. package/src/installs/bash.js +0 -417
  169. package/src/installs/bash.md +0 -993
  170. package/src/installs/beyond-compare.js +0 -603
  171. package/src/installs/beyond-compare.md +0 -813
  172. package/src/installs/brave-browser.js +0 -968
  173. package/src/installs/brave-browser.md +0 -650
  174. package/src/installs/build-essential.js +0 -529
  175. package/src/installs/build-essential.md +0 -977
  176. package/src/installs/ca-certificates.js +0 -618
  177. package/src/installs/ca-certificates.md +0 -937
  178. package/src/installs/caffeine.js +0 -508
  179. package/src/installs/caffeine.md +0 -839
  180. package/src/installs/camtasia.js +0 -596
  181. package/src/installs/camtasia.md +0 -762
  182. package/src/installs/chatgpt.js +0 -476
  183. package/src/installs/chatgpt.md +0 -814
  184. package/src/installs/chocolatey.js +0 -456
  185. package/src/installs/chocolatey.md +0 -661
  186. package/src/installs/chrome-canary.js +0 -419
  187. package/src/installs/chrome-canary.md +0 -641
  188. package/src/installs/chromium.js +0 -667
  189. package/src/installs/chromium.md +0 -838
  190. package/src/installs/claude-code.js +0 -576
  191. package/src/installs/claude-code.md +0 -1173
  192. package/src/installs/cloudflare-warp.js +0 -900
  193. package/src/installs/cloudflare-warp.md +0 -1047
  194. package/src/installs/comet-browser.js +0 -588
  195. package/src/installs/comet-browser.md +0 -731
  196. package/src/installs/curl.js +0 -379
  197. package/src/installs/curl.md +0 -714
  198. package/src/installs/cursor.js +0 -579
  199. package/src/installs/cursor.md +0 -970
  200. package/src/installs/dbeaver.js +0 -924
  201. package/src/installs/dbeaver.md +0 -939
  202. package/src/installs/dbschema.js +0 -692
  203. package/src/installs/dbschema.md +0 -925
  204. package/src/installs/dependencies.md +0 -453
  205. package/src/installs/development-tools.js +0 -600
  206. package/src/installs/development-tools.md +0 -977
  207. package/src/installs/docker.js +0 -1029
  208. package/src/installs/docker.md +0 -1109
  209. package/src/installs/drawio.js +0 -1019
  210. package/src/installs/drawio.md +0 -795
  211. package/src/installs/elmedia-player.js +0 -347
  212. package/src/installs/elmedia-player.md +0 -556
  213. package/src/installs/ffmpeg.js +0 -889
  214. package/src/installs/ffmpeg.md +0 -852
  215. package/src/installs/file.js +0 -464
  216. package/src/installs/file.md +0 -987
  217. package/src/installs/gemini-cli.js +0 -811
  218. package/src/installs/gemini-cli.md +0 -1153
  219. package/src/installs/git.js +0 -400
  220. package/src/installs/git.md +0 -907
  221. package/src/installs/gitego.js +0 -949
  222. package/src/installs/gitego.md +0 -1172
  223. package/src/installs/go.js +0 -931
  224. package/src/installs/go.md +0 -958
  225. package/src/installs/google-antigravity.js +0 -913
  226. package/src/installs/google-antigravity.md +0 -1075
  227. package/src/installs/google-chrome.js +0 -833
  228. package/src/installs/google-chrome.md +0 -862
  229. package/src/installs/gpg.js +0 -480
  230. package/src/installs/gpg.md +0 -1056
  231. package/src/installs/homebrew.js +0 -1028
  232. package/src/installs/homebrew.md +0 -988
  233. package/src/installs/imageoptim.js +0 -968
  234. package/src/installs/imageoptim.md +0 -1119
  235. package/src/installs/installers.json +0 -4032
  236. package/src/installs/installers.json.tmp +0 -3953
  237. package/src/installs/jq.js +0 -400
  238. package/src/installs/jq.md +0 -809
  239. package/src/installs/keyboard-maestro.js +0 -719
  240. package/src/installs/keyboard-maestro.md +0 -825
  241. package/src/installs/kiro.js +0 -864
  242. package/src/installs/kiro.md +0 -1015
  243. package/src/installs/latex.js +0 -789
  244. package/src/installs/latex.md +0 -1095
  245. package/src/installs/lftp.js +0 -356
  246. package/src/installs/lftp.md +0 -907
  247. package/src/installs/lsb-release.js +0 -346
  248. package/src/installs/lsb-release.md +0 -814
  249. package/src/installs/messenger.js +0 -847
  250. package/src/installs/messenger.md +0 -900
  251. package/src/installs/microsoft-office.js +0 -568
  252. package/src/installs/microsoft-office.md +0 -760
  253. package/src/installs/microsoft-teams.js +0 -801
  254. package/src/installs/microsoft-teams.md +0 -886
  255. package/src/installs/moom.js +0 -326
  256. package/src/installs/moom.md +0 -570
  257. package/src/installs/node.js +0 -904
  258. package/src/installs/node.md +0 -1153
  259. package/src/installs/nordpass.js +0 -716
  260. package/src/installs/nordpass.md +0 -921
  261. package/src/installs/nordvpn.js +0 -892
  262. package/src/installs/nordvpn.md +0 -1052
  263. package/src/installs/nvm.js +0 -995
  264. package/src/installs/nvm.md +0 -1057
  265. package/src/installs/ohmyzsh.js +0 -529
  266. package/src/installs/ohmyzsh.md +0 -1094
  267. package/src/installs/openssh.js +0 -804
  268. package/src/installs/openssh.md +0 -1056
  269. package/src/installs/pandoc.js +0 -662
  270. package/src/installs/pandoc.md +0 -1036
  271. package/src/installs/parallels-desktop.js +0 -431
  272. package/src/installs/parallels-desktop.md +0 -446
  273. package/src/installs/pinentry.js +0 -510
  274. package/src/installs/pinentry.md +0 -1142
  275. package/src/installs/pngyu.js +0 -869
  276. package/src/installs/pngyu.md +0 -896
  277. package/src/installs/postman.js +0 -799
  278. package/src/installs/postman.md +0 -940
  279. package/src/installs/procps.js +0 -425
  280. package/src/installs/procps.md +0 -851
  281. package/src/installs/safari-tech-preview.js +0 -374
  282. package/src/installs/safari-tech-preview.md +0 -533
  283. package/src/installs/sfnt2woff.js +0 -658
  284. package/src/installs/sfnt2woff.md +0 -795
  285. package/src/installs/shellcheck.js +0 -481
  286. package/src/installs/shellcheck.md +0 -1005
  287. package/src/installs/slack.js +0 -741
  288. package/src/installs/slack.md +0 -865
  289. package/src/installs/snagit.js +0 -585
  290. package/src/installs/snagit.md +0 -844
  291. package/src/installs/software-properties-common.js +0 -372
  292. package/src/installs/software-properties-common.md +0 -805
  293. package/src/installs/spotify.js +0 -877
  294. package/src/installs/spotify.md +0 -901
  295. package/src/installs/studio-3t.js +0 -823
  296. package/src/installs/studio-3t.md +0 -918
  297. package/src/installs/sublime-text.js +0 -804
  298. package/src/installs/sublime-text.md +0 -914
  299. package/src/installs/superwhisper.js +0 -706
  300. package/src/installs/superwhisper.md +0 -630
  301. package/src/installs/tailscale.js +0 -745
  302. package/src/installs/tailscale.md +0 -1100
  303. package/src/installs/tar.js +0 -389
  304. package/src/installs/tar.md +0 -946
  305. package/src/installs/termius.js +0 -798
  306. package/src/installs/termius.md +0 -844
  307. package/src/installs/terraform.js +0 -779
  308. package/src/installs/terraform.md +0 -899
  309. package/src/installs/tfenv.js +0 -778
  310. package/src/installs/tfenv.md +0 -1091
  311. package/src/installs/tidal.js +0 -771
  312. package/src/installs/tidal.md +0 -864
  313. package/src/installs/tmux.js +0 -346
  314. package/src/installs/tmux.md +0 -1030
  315. package/src/installs/tree.js +0 -411
  316. package/src/installs/tree.md +0 -833
  317. package/src/installs/unzip.js +0 -460
  318. package/src/installs/unzip.md +0 -879
  319. package/src/installs/vim.js +0 -421
  320. package/src/installs/vim.md +0 -1040
  321. package/src/installs/vlc.js +0 -821
  322. package/src/installs/vlc.md +0 -927
  323. package/src/installs/vscode.js +0 -843
  324. package/src/installs/vscode.md +0 -1002
  325. package/src/installs/wget.js +0 -420
  326. package/src/installs/wget.md +0 -791
  327. package/src/installs/whatsapp.js +0 -729
  328. package/src/installs/whatsapp.md +0 -854
  329. package/src/installs/winpty.js +0 -352
  330. package/src/installs/winpty.md +0 -620
  331. package/src/installs/woff2.js +0 -553
  332. package/src/installs/woff2.md +0 -977
  333. package/src/installs/wsl.js +0 -572
  334. package/src/installs/wsl.md +0 -699
  335. package/src/installs/xcode-clt.js +0 -520
  336. package/src/installs/xcode-clt.md +0 -351
  337. package/src/installs/xcode.js +0 -560
  338. package/src/installs/xcode.md +0 -573
  339. package/src/installs/yarn.js +0 -824
  340. package/src/installs/yarn.md +0 -1074
  341. package/src/installs/yq.js +0 -654
  342. package/src/installs/yq.md +0 -944
  343. package/src/installs/yt-dlp.js +0 -701
  344. package/src/installs/yt-dlp.md +0 -946
  345. package/src/installs/yum-utils.js +0 -297
  346. package/src/installs/yum-utils.md +0 -648
  347. package/src/installs/zoom.js +0 -759
  348. package/src/installs/zoom.md +0 -884
  349. package/src/installs/zsh.js +0 -455
  350. package/src/installs/zsh.md +0 -1008
  351. package/src/scripts/README.md +0 -617
  352. package/src/scripts/STATUS.md +0 -208
  353. package/src/scripts/afk.js +0 -411
  354. package/src/scripts/backup-all.js +0 -746
  355. package/src/scripts/backup-source.js +0 -727
  356. package/src/scripts/brewd.js +0 -389
  357. package/src/scripts/brewi.js +0 -520
  358. package/src/scripts/brewr.js +0 -527
  359. package/src/scripts/brews.js +0 -477
  360. package/src/scripts/brewu.js +0 -504
  361. package/src/scripts/c.js +0 -201
  362. package/src/scripts/ccurl.js +0 -341
  363. package/src/scripts/certbot-crontab-init.js +0 -504
  364. package/src/scripts/certbot-init.js +0 -657
  365. package/src/scripts/ch.js +0 -355
  366. package/src/scripts/claude-danger.js +0 -268
  367. package/src/scripts/clean-dev.js +0 -435
  368. package/src/scripts/clear-dns-cache.js +0 -541
  369. package/src/scripts/clone.js +0 -435
  370. package/src/scripts/code-all.js +0 -437
  371. package/src/scripts/count-files.js +0 -211
  372. package/src/scripts/count-folders.js +0 -211
  373. package/src/scripts/count.js +0 -264
  374. package/src/scripts/d.js +0 -219
  375. package/src/scripts/datauri.js +0 -389
  376. package/src/scripts/delete-files.js +0 -380
  377. package/src/scripts/docker-clean.js +0 -426
  378. package/src/scripts/dp.js +0 -442
  379. package/src/scripts/e.js +0 -390
  380. package/src/scripts/empty-trash.js +0 -513
  381. package/src/scripts/evm.js +0 -444
  382. package/src/scripts/fetch-github-repos.js +0 -456
  383. package/src/scripts/get-channel.js +0 -345
  384. package/src/scripts/get-course.js +0 -399
  385. package/src/scripts/get-dependencies.js +0 -306
  386. package/src/scripts/get-folder.js +0 -799
  387. package/src/scripts/get-tunes.js +0 -426
  388. package/src/scripts/get-video.js +0 -367
  389. package/src/scripts/git-backup.js +0 -577
  390. package/src/scripts/git-clone.js +0 -493
  391. package/src/scripts/git-pup.js +0 -319
  392. package/src/scripts/git-push.js +0 -396
  393. package/src/scripts/h.js +0 -622
  394. package/src/scripts/hide-desktop-icons.js +0 -499
  395. package/src/scripts/hide-hidden-files.js +0 -538
  396. package/src/scripts/install-dependencies-from.js +0 -456
  397. package/src/scripts/ips.js +0 -663
  398. package/src/scripts/iso.js +0 -370
  399. package/src/scripts/killni.js +0 -577
  400. package/src/scripts/ll.js +0 -467
  401. package/src/scripts/local-ip.js +0 -325
  402. package/src/scripts/m.js +0 -524
  403. package/src/scripts/map.js +0 -309
  404. package/src/scripts/mkd.js +0 -351
  405. package/src/scripts/ncu-update-all.js +0 -457
  406. package/src/scripts/nginx-init.js +0 -718
  407. package/src/scripts/npmi.js +0 -382
  408. package/src/scripts/o.js +0 -511
  409. package/src/scripts/org-by-date.js +0 -338
  410. package/src/scripts/p.js +0 -224
  411. package/src/scripts/packages.js +0 -330
  412. package/src/scripts/path.js +0 -225
  413. package/src/scripts/ports.js +0 -597
  414. package/src/scripts/q.js +0 -305
  415. package/src/scripts/refresh-files.js +0 -394
  416. package/src/scripts/remove-smaller-files.js +0 -516
  417. package/src/scripts/rename-files-with-date.js +0 -533
  418. package/src/scripts/resize-image.js +0 -539
  419. package/src/scripts/rm-safe.js +0 -669
  420. package/src/scripts/s.js +0 -540
  421. package/src/scripts/set-git-public.js +0 -365
  422. package/src/scripts/show-desktop-icons.js +0 -475
  423. package/src/scripts/show-hidden-files.js +0 -472
  424. package/src/scripts/tpa.js +0 -280
  425. package/src/scripts/tpo.js +0 -280
  426. package/src/scripts/u.js +0 -505
  427. package/src/scripts/vpush.js +0 -437
  428. package/src/scripts/y.js +0 -283
  429. package/src/utils/README.md +0 -95
  430. package/src/utils/common/apps.js +0 -143
  431. package/src/utils/common/display.js +0 -157
  432. package/src/utils/common/network.js +0 -185
  433. package/src/utils/common/os.js +0 -294
  434. package/src/utils/common/package-manager.js +0 -301
  435. package/src/utils/common/privileges.js +0 -138
  436. package/src/utils/common/shell.js +0 -261
  437. package/src/utils/macos/apps.js +0 -228
  438. package/src/utils/macos/brew.js +0 -315
  439. package/src/utils/ubuntu/apt.js +0 -307
  440. package/src/utils/ubuntu/desktop.js +0 -292
  441. package/src/utils/ubuntu/snap.js +0 -344
  442. package/src/utils/ubuntu/systemd.js +0 -286
  443. package/src/utils/windows/choco.js +0 -465
  444. package/src/utils/windows/env.js +0 -246
  445. package/src/utils/windows/registry.js +0 -269
  446. package/src/utils/windows/shell.js +0 -240
  447. package/src/utils/windows/winget.js +0 -489
@@ -1,988 +0,0 @@
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)