@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.
Files changed (259) hide show
  1. package/README.md +5 -5
  2. package/package.json +1 -1
  3. package/src/commands/install.js +374 -36
  4. package/src/installs/adobe-creative-cloud.js +527 -25
  5. package/src/installs/adobe-creative-cloud.md +605 -0
  6. package/src/installs/appcleaner.js +303 -26
  7. package/src/installs/appcleaner.md +699 -0
  8. package/src/installs/apt-transport-https.js +390 -0
  9. package/src/installs/apt-transport-https.md +678 -0
  10. package/src/installs/atomicparsley.js +624 -26
  11. package/src/installs/atomicparsley.md +795 -0
  12. package/src/installs/aws-cli.js +779 -26
  13. package/src/installs/aws-cli.md +727 -0
  14. package/src/installs/balena-etcher.js +688 -26
  15. package/src/installs/balena-etcher.md +761 -0
  16. package/src/installs/bambu-studio.js +912 -26
  17. package/src/installs/bambu-studio.md +780 -0
  18. package/src/installs/bash-completion.js +554 -23
  19. package/src/installs/bash-completion.md +833 -0
  20. package/src/installs/bash.js +399 -26
  21. package/src/installs/bash.md +993 -0
  22. package/src/installs/beyond-compare.js +585 -26
  23. package/src/installs/beyond-compare.md +813 -0
  24. package/src/installs/build-essential.js +511 -26
  25. package/src/installs/build-essential.md +977 -0
  26. package/src/installs/ca-certificates.js +618 -0
  27. package/src/installs/ca-certificates.md +937 -0
  28. package/src/installs/caffeine.js +490 -26
  29. package/src/installs/caffeine.md +839 -0
  30. package/src/installs/camtasia.js +577 -25
  31. package/src/installs/camtasia.md +762 -0
  32. package/src/installs/chatgpt.js +458 -26
  33. package/src/installs/chatgpt.md +814 -0
  34. package/src/installs/chocolatey.js +447 -0
  35. package/src/installs/chocolatey.md +661 -0
  36. package/src/installs/chrome-canary.js +472 -26
  37. package/src/installs/chrome-canary.md +641 -0
  38. package/src/installs/chromium.js +645 -26
  39. package/src/installs/chromium.md +838 -0
  40. package/src/installs/claude-code.js +558 -26
  41. package/src/installs/claude-code.md +1173 -0
  42. package/src/installs/curl.js +361 -26
  43. package/src/installs/curl.md +714 -0
  44. package/src/installs/cursor.js +561 -26
  45. package/src/installs/cursor.md +970 -0
  46. package/src/installs/dbschema.js +674 -26
  47. package/src/installs/dbschema.md +925 -0
  48. package/src/installs/dependencies.md +435 -0
  49. package/src/installs/development-tools.js +600 -0
  50. package/src/installs/development-tools.md +977 -0
  51. package/src/installs/docker.js +1010 -25
  52. package/src/installs/docker.md +1109 -0
  53. package/src/installs/drawio.js +1001 -26
  54. package/src/installs/drawio.md +795 -0
  55. package/src/installs/elmedia-player.js +328 -25
  56. package/src/installs/elmedia-player.md +556 -0
  57. package/src/installs/ffmpeg.js +870 -25
  58. package/src/installs/ffmpeg.md +852 -0
  59. package/src/installs/file.js +464 -0
  60. package/src/installs/file.md +987 -0
  61. package/src/installs/gemini-cli.js +793 -26
  62. package/src/installs/gemini-cli.md +1153 -0
  63. package/src/installs/git.js +382 -26
  64. package/src/installs/git.md +907 -0
  65. package/src/installs/gitego.js +931 -26
  66. package/src/installs/gitego.md +1172 -0
  67. package/src/installs/go.js +913 -26
  68. package/src/installs/go.md +958 -0
  69. package/src/installs/google-chrome.js +801 -25
  70. package/src/installs/google-chrome.md +862 -0
  71. package/src/installs/gpg.js +412 -73
  72. package/src/installs/gpg.md +1056 -0
  73. package/src/installs/homebrew.js +1015 -26
  74. package/src/installs/homebrew.md +988 -0
  75. package/src/installs/imageoptim.js +950 -26
  76. package/src/installs/imageoptim.md +1119 -0
  77. package/src/installs/installers.json +2297 -0
  78. package/src/installs/jq.js +382 -26
  79. package/src/installs/jq.md +809 -0
  80. package/src/installs/keyboard-maestro.js +701 -26
  81. package/src/installs/keyboard-maestro.md +825 -0
  82. package/src/installs/latex.js +771 -26
  83. package/src/installs/latex.md +1095 -0
  84. package/src/installs/lftp.js +338 -26
  85. package/src/installs/lftp.md +907 -0
  86. package/src/installs/lsb-release.js +346 -0
  87. package/src/installs/lsb-release.md +814 -0
  88. package/src/installs/messenger.js +829 -26
  89. package/src/installs/messenger.md +900 -0
  90. package/src/installs/microsoft-office.js +550 -26
  91. package/src/installs/microsoft-office.md +760 -0
  92. package/src/installs/microsoft-teams.js +782 -25
  93. package/src/installs/microsoft-teams.md +886 -0
  94. package/src/installs/node.js +886 -26
  95. package/src/installs/node.md +1153 -0
  96. package/src/installs/nordpass.js +698 -26
  97. package/src/installs/nordpass.md +921 -0
  98. package/src/installs/nvm.js +977 -26
  99. package/src/installs/nvm.md +1057 -0
  100. package/src/installs/openssh.js +734 -64
  101. package/src/installs/openssh.md +1056 -0
  102. package/src/installs/pandoc.js +644 -26
  103. package/src/installs/pandoc.md +1036 -0
  104. package/src/installs/pinentry.js +492 -26
  105. package/src/installs/pinentry.md +1142 -0
  106. package/src/installs/pngyu.js +851 -26
  107. package/src/installs/pngyu.md +896 -0
  108. package/src/installs/postman.js +781 -26
  109. package/src/installs/postman.md +940 -0
  110. package/src/installs/procps.js +425 -0
  111. package/src/installs/procps.md +851 -0
  112. package/src/installs/safari-tech-preview.js +355 -25
  113. package/src/installs/safari-tech-preview.md +533 -0
  114. package/src/installs/sfnt2woff.js +640 -26
  115. package/src/installs/sfnt2woff.md +795 -0
  116. package/src/installs/shellcheck.js +463 -26
  117. package/src/installs/shellcheck.md +1005 -0
  118. package/src/installs/slack.js +722 -25
  119. package/src/installs/slack.md +865 -0
  120. package/src/installs/snagit.js +566 -25
  121. package/src/installs/snagit.md +844 -0
  122. package/src/installs/software-properties-common.js +372 -0
  123. package/src/installs/software-properties-common.md +805 -0
  124. package/src/installs/spotify.js +858 -25
  125. package/src/installs/spotify.md +901 -0
  126. package/src/installs/studio-3t.js +803 -26
  127. package/src/installs/studio-3t.md +918 -0
  128. package/src/installs/sublime-text.js +780 -25
  129. package/src/installs/sublime-text.md +914 -0
  130. package/src/installs/superwhisper.js +687 -25
  131. package/src/installs/superwhisper.md +630 -0
  132. package/src/installs/tailscale.js +727 -26
  133. package/src/installs/tailscale.md +1100 -0
  134. package/src/installs/tar.js +389 -0
  135. package/src/installs/tar.md +946 -0
  136. package/src/installs/termius.js +780 -26
  137. package/src/installs/termius.md +844 -0
  138. package/src/installs/terraform.js +761 -26
  139. package/src/installs/terraform.md +899 -0
  140. package/src/installs/tidal.js +752 -25
  141. package/src/installs/tidal.md +864 -0
  142. package/src/installs/tmux.js +328 -26
  143. package/src/installs/tmux.md +1030 -0
  144. package/src/installs/tree.js +393 -26
  145. package/src/installs/tree.md +833 -0
  146. package/src/installs/unzip.js +460 -0
  147. package/src/installs/unzip.md +879 -0
  148. package/src/installs/vim.js +403 -26
  149. package/src/installs/vim.md +1040 -0
  150. package/src/installs/vlc.js +803 -26
  151. package/src/installs/vlc.md +927 -0
  152. package/src/installs/vscode.js +825 -26
  153. package/src/installs/vscode.md +1002 -0
  154. package/src/installs/wget.js +415 -0
  155. package/src/installs/wget.md +791 -0
  156. package/src/installs/whatsapp.js +710 -25
  157. package/src/installs/whatsapp.md +854 -0
  158. package/src/installs/winpty.js +352 -0
  159. package/src/installs/winpty.md +620 -0
  160. package/src/installs/woff2.js +535 -26
  161. package/src/installs/woff2.md +977 -0
  162. package/src/installs/wsl.js +572 -0
  163. package/src/installs/wsl.md +699 -0
  164. package/src/installs/xcode-clt.js +520 -0
  165. package/src/installs/xcode-clt.md +351 -0
  166. package/src/installs/xcode.js +542 -26
  167. package/src/installs/xcode.md +573 -0
  168. package/src/installs/yarn.js +806 -26
  169. package/src/installs/yarn.md +1074 -0
  170. package/src/installs/yq.js +636 -26
  171. package/src/installs/yq.md +944 -0
  172. package/src/installs/yt-dlp.js +683 -26
  173. package/src/installs/yt-dlp.md +946 -0
  174. package/src/installs/yum-utils.js +297 -0
  175. package/src/installs/yum-utils.md +648 -0
  176. package/src/installs/zoom.js +740 -25
  177. package/src/installs/zoom.md +884 -0
  178. package/src/scripts/README.md +567 -45
  179. package/src/scripts/STATUS.md +208 -0
  180. package/src/scripts/afk.js +395 -7
  181. package/src/scripts/backup-all.js +731 -9
  182. package/src/scripts/backup-source.js +711 -8
  183. package/src/scripts/brewd.js +373 -7
  184. package/src/scripts/brewi.js +505 -9
  185. package/src/scripts/brewr.js +512 -9
  186. package/src/scripts/brews.js +462 -9
  187. package/src/scripts/brewu.js +488 -7
  188. package/src/scripts/c.js +185 -7
  189. package/src/scripts/ccurl.js +325 -8
  190. package/src/scripts/certbot-crontab-init.js +488 -8
  191. package/src/scripts/certbot-init.js +641 -9
  192. package/src/scripts/ch.js +339 -7
  193. package/src/scripts/claude-danger.js +253 -8
  194. package/src/scripts/clean-dev.js +419 -8
  195. package/src/scripts/clear-dns-cache.js +525 -7
  196. package/src/scripts/clone.js +417 -7
  197. package/src/scripts/code-all.js +420 -7
  198. package/src/scripts/count-files.js +195 -8
  199. package/src/scripts/count-folders.js +195 -8
  200. package/src/scripts/count.js +248 -8
  201. package/src/scripts/d.js +203 -7
  202. package/src/scripts/datauri.js +373 -8
  203. package/src/scripts/delete-files.js +363 -7
  204. package/src/scripts/docker-clean.js +410 -8
  205. package/src/scripts/dp.js +426 -7
  206. package/src/scripts/e.js +375 -9
  207. package/src/scripts/empty-trash.js +497 -7
  208. package/src/scripts/evm.js +428 -9
  209. package/src/scripts/fetch-github-repos.js +441 -10
  210. package/src/scripts/get-channel.js +329 -8
  211. package/src/scripts/get-course.js +384 -11
  212. package/src/scripts/get-dependencies.js +290 -9
  213. package/src/scripts/get-folder.js +783 -10
  214. package/src/scripts/get-tunes.js +411 -10
  215. package/src/scripts/get-video.js +352 -9
  216. package/src/scripts/git-backup.js +561 -9
  217. package/src/scripts/git-clone.js +477 -9
  218. package/src/scripts/git-pup.js +303 -7
  219. package/src/scripts/git-push.js +380 -8
  220. package/src/scripts/h.js +607 -9
  221. package/src/scripts/hide-desktop-icons.js +483 -7
  222. package/src/scripts/hide-hidden-files.js +522 -7
  223. package/src/scripts/install-dependencies-from.js +440 -9
  224. package/src/scripts/ips.js +647 -10
  225. package/src/scripts/iso.js +354 -8
  226. package/src/scripts/killni.js +561 -7
  227. package/src/scripts/ll.js +451 -8
  228. package/src/scripts/local-ip.js +310 -8
  229. package/src/scripts/m.js +508 -8
  230. package/src/scripts/map.js +293 -8
  231. package/src/scripts/mkd.js +287 -7
  232. package/src/scripts/ncu-update-all.js +441 -8
  233. package/src/scripts/nginx-init.js +702 -12
  234. package/src/scripts/npmi.js +366 -7
  235. package/src/scripts/o.js +495 -8
  236. package/src/scripts/org-by-date.js +321 -7
  237. package/src/scripts/p.js +208 -7
  238. package/src/scripts/packages.js +313 -8
  239. package/src/scripts/path.js +209 -7
  240. package/src/scripts/ports.js +582 -8
  241. package/src/scripts/q.js +290 -8
  242. package/src/scripts/refresh-files.js +378 -10
  243. package/src/scripts/remove-smaller-files.js +500 -8
  244. package/src/scripts/rename-files-with-date.js +517 -9
  245. package/src/scripts/resize-image.js +523 -9
  246. package/src/scripts/rm-safe.js +653 -8
  247. package/src/scripts/s.js +525 -9
  248. package/src/scripts/set-git-public.js +349 -7
  249. package/src/scripts/show-desktop-icons.js +459 -7
  250. package/src/scripts/show-hidden-files.js +456 -7
  251. package/src/scripts/tpa.js +265 -8
  252. package/src/scripts/tpo.js +264 -7
  253. package/src/scripts/u.js +489 -7
  254. package/src/scripts/vpush.js +422 -8
  255. package/src/scripts/y.js +267 -7
  256. package/src/utils/common/os.js +94 -2
  257. package/src/utils/ubuntu/apt.js +13 -7
  258. package/src/utils/windows/choco.js +82 -26
  259. package/src/utils/windows/winget.js +89 -27
@@ -0,0 +1,351 @@
1
+ # Installing Xcode CLT (Command Line Tools)
2
+
3
+ ## Overview
4
+
5
+ Xcode Command Line Tools (CLT) is a lightweight package (~2.5 GB) from Apple containing essential development utilities needed by most developers on macOS. It includes compilers (clang, Swift), version control (git), build tools (make), and other utilities required by package managers like Homebrew.
6
+
7
+ **This installer is for Command Line Tools only.** If you need the full Xcode IDE for iOS/macOS app development, see the full Xcode installer (xcode.md).
8
+
9
+ **What's Included in CLT:**
10
+ - **Compilers**: clang, clang++, Swift compiler
11
+ - **Version Control**: git
12
+ - **Build Tools**: make, ld, ar, ranlib, libtool
13
+ - **Utilities**: dsymutil, strip, nm, otool, lipo
14
+ - **Headers**: macOS SDK headers for building software
15
+
16
+ **Platform Limitation**: Xcode CLT is an Apple-exclusive product and **only runs on macOS**. There is no legitimate way to install or run Xcode CLT on Windows, Linux, or other operating systems.
17
+
18
+ ## Dependencies
19
+
20
+ ### macOS (Homebrew)
21
+ - **Required:** None - Installation uses built-in macOS commands (`softwareupdate`, `xcode-select`)
22
+ - **Optional:** None
23
+ - **Auto-installed:** Xcode CLT is a foundational package that includes:
24
+ - `clang` and `clang++` (C/C++ compilers)
25
+ - `swift` (Swift compiler)
26
+ - `git` (version control system)
27
+ - `make` (build automation tool)
28
+ - `ld`, `ar`, `ranlib`, `libtool` (linker and archiving tools)
29
+ - `dsymutil`, `strip`, `nm`, `otool`, `lipo` (debugging and binary utilities)
30
+ - macOS SDK headers for software compilation
31
+
32
+ ### Ubuntu (APT/Snap)
33
+ - **Required:** Installation not supported on this platform (Xcode CLT is macOS-only)
34
+ - **Optional:** N/A
35
+ - **Auto-installed:** N/A
36
+ - **Alternative:** Use `sudo apt-get install -y build-essential git` for equivalent tooling
37
+
38
+ ### Raspberry Pi OS (APT/Snap)
39
+ - **Required:** Installation not supported on this platform (Xcode CLT is macOS-only)
40
+ - **Optional:** N/A
41
+ - **Auto-installed:** N/A
42
+ - **Alternative:** Use `sudo apt-get install -y build-essential git` for equivalent tooling
43
+
44
+ ### Amazon Linux (DNF/YUM)
45
+ - **Required:** Installation not supported on this platform (Xcode CLT is macOS-only)
46
+ - **Optional:** N/A
47
+ - **Auto-installed:** N/A
48
+ - **Alternative:** Use `sudo dnf groupinstall -y "Development Tools"` and `sudo dnf install -y git` for equivalent tooling
49
+
50
+ ### Windows (Chocolatey/winget)
51
+ - **Required:** Installation not supported on this platform (Xcode CLT is macOS-only)
52
+ - **Optional:** N/A
53
+ - **Auto-installed:** N/A
54
+ - **Alternative:** Use `choco install visualstudio2022buildtools git -y` or `winget install Microsoft.VisualStudio.2022.BuildTools Git.Git` for equivalent tooling
55
+
56
+ ### Git Bash (Manual/Portable)
57
+ - **Required:** Installation not supported on this platform (Xcode CLT is macOS-only)
58
+ - **Optional:** N/A
59
+ - **Auto-installed:** N/A
60
+ - **Alternative:** Git Bash includes git by default; use Windows tooling (see above) for compiler support
61
+
62
+ ## Prerequisites
63
+
64
+ ### Universal Requirements (macOS Only)
65
+
66
+ - **macOS**: macOS 10.15 (Catalina) or later (varies by CLT version)
67
+ - **Disk Space**: ~2.5 GB
68
+ - **Internet Connection**: Required for download
69
+ - **Admin Access**: Required for installation via `sudo`
70
+
71
+ ### Checking macOS Version
72
+
73
+ ```bash
74
+ sw_vers -productVersion
75
+ ```
76
+
77
+ ## Platform-Specific Installation
78
+
79
+ ---
80
+
81
+ ### macOS (Homebrew)
82
+
83
+ Xcode Command Line Tools can be installed non-interactively using `softwareupdate`. This method avoids the GUI dialog that `xcode-select --install` triggers.
84
+
85
+ #### Prerequisites
86
+
87
+ - macOS 10.15 (Catalina) or later
88
+ - Admin (sudo) access
89
+
90
+ #### Installation Steps
91
+
92
+ ```bash
93
+ # Non-interactive installation using softwareupdate
94
+ # This method avoids the GUI dialog that xcode-select --install triggers
95
+
96
+ # Create placeholder file to make CLT available in softwareupdate
97
+ touch /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress
98
+
99
+ # Find the Command Line Tools package name
100
+ CLT_PACKAGE=$(softwareupdate -l 2>&1 | grep -o "Command Line Tools for Xcode-[0-9.]*" | head -n 1)
101
+
102
+ # Install the Command Line Tools (requires sudo for installation)
103
+ sudo softwareupdate -i "$CLT_PACKAGE" --verbose
104
+
105
+ # Clean up the placeholder file
106
+ rm -f /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress
107
+ ```
108
+
109
+ #### Verification
110
+
111
+ ```bash
112
+ # Verify Command Line Tools installation
113
+ xcode-select -p
114
+ # Expected output: /Library/Developer/CommandLineTools
115
+
116
+ # Verify compiler is available
117
+ clang --version
118
+
119
+ # Verify git is available
120
+ git --version
121
+
122
+ # Verify make is available
123
+ make --version
124
+ ```
125
+
126
+ #### Troubleshooting
127
+
128
+ **Problem**: Command Line Tools installation fails with softwareupdate
129
+
130
+ ```bash
131
+ # Reset xcode-select and try again
132
+ sudo xcode-select --reset
133
+ sudo rm -rf /Library/Developer/CommandLineTools
134
+
135
+ # Re-run the installation
136
+ touch /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress
137
+ CLT_PACKAGE=$(softwareupdate -l 2>&1 | grep -o "Command Line Tools for Xcode-[0-9.]*" | head -n 1)
138
+ sudo softwareupdate -i "$CLT_PACKAGE" --verbose
139
+ rm -f /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress
140
+ ```
141
+
142
+ **Problem**: `xcode-select: error: command line tools are already installed`
143
+
144
+ This is not an error - CLT is already installed. Verify with:
145
+
146
+ ```bash
147
+ xcode-select -p
148
+ clang --version
149
+ ```
150
+
151
+ **Problem**: `softwareupdate` returns no CLT package
152
+
153
+ ```bash
154
+ # Ensure the placeholder file exists
155
+ touch /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress
156
+
157
+ # Check available packages
158
+ softwareupdate -l
159
+
160
+ # If still no CLT package, try the interactive installer as fallback
161
+ xcode-select --install
162
+ ```
163
+
164
+ ---
165
+
166
+ ### Ubuntu/Debian (APT)
167
+
168
+ #### Not Supported
169
+
170
+ Xcode CLT is an Apple-exclusive product and is **not available for Ubuntu or Debian**. Apple does not provide Xcode CLT for any Linux distribution.
171
+
172
+ #### Alternatives for Linux Developers
173
+
174
+ Linux already has equivalent tools available natively:
175
+
176
+ ```bash
177
+ # Install build essentials (gcc, g++, make)
178
+ sudo apt-get update && sudo apt-get install -y build-essential
179
+
180
+ # Install git
181
+ sudo apt-get install -y git
182
+
183
+ # Install clang (if preferred over gcc)
184
+ sudo apt-get install -y clang
185
+ ```
186
+
187
+ ---
188
+
189
+ ### Raspberry Pi OS (APT)
190
+
191
+ #### Not Supported
192
+
193
+ Xcode CLT is an Apple-exclusive product and is **not available for Raspberry Pi OS**.
194
+
195
+ #### Alternatives
196
+
197
+ Raspberry Pi OS has equivalent tools available natively:
198
+
199
+ ```bash
200
+ # Install build essentials (gcc, g++, make)
201
+ sudo apt-get update && sudo apt-get install -y build-essential
202
+
203
+ # Install git
204
+ sudo apt-get install -y git
205
+ ```
206
+
207
+ ---
208
+
209
+ ### Amazon Linux/RHEL (YUM/DNF)
210
+
211
+ #### Not Supported
212
+
213
+ Xcode CLT is an Apple-exclusive product and is **not available for Amazon Linux or RHEL**.
214
+
215
+ #### Alternatives
216
+
217
+ Amazon Linux/RHEL has equivalent tools available natively:
218
+
219
+ ```bash
220
+ # Install Development Tools group (gcc, g++, make)
221
+ sudo yum groupinstall -y "Development Tools"
222
+ # Or on newer systems with DNF:
223
+ sudo dnf groupinstall -y "Development Tools"
224
+
225
+ # Install git
226
+ sudo yum install -y git
227
+ # Or:
228
+ sudo dnf install -y git
229
+ ```
230
+
231
+ ---
232
+
233
+ ### Windows (Chocolatey/winget)
234
+
235
+ #### Not Supported
236
+
237
+ Xcode CLT is an Apple-exclusive product and is **not available for Windows**.
238
+
239
+ #### Alternatives
240
+
241
+ Windows has equivalent tools available:
242
+
243
+ ```powershell
244
+ # Install Build Tools for Visual Studio (includes MSVC compiler)
245
+ choco install visualstudio2022buildtools -y
246
+
247
+ # Install git
248
+ choco install git -y
249
+
250
+ # Install make (via GnuWin32 or similar)
251
+ choco install make -y
252
+
253
+ # Or use winget:
254
+ winget install Microsoft.VisualStudio.2022.BuildTools
255
+ winget install Git.Git
256
+ ```
257
+
258
+ ---
259
+
260
+ ### WSL (Windows Subsystem for Linux)
261
+
262
+ #### Not Supported
263
+
264
+ Xcode CLT is an Apple-exclusive product and is **not available for WSL**.
265
+
266
+ #### Alternatives
267
+
268
+ WSL has equivalent Linux tools available:
269
+
270
+ ```bash
271
+ # Install build essentials (gcc, g++, make)
272
+ sudo apt-get update && sudo apt-get install -y build-essential
273
+
274
+ # Install git
275
+ sudo apt-get install -y git
276
+
277
+ # Install clang (if preferred over gcc)
278
+ sudo apt-get install -y clang
279
+ ```
280
+
281
+ ---
282
+
283
+ ### Git Bash (Manual/Portable)
284
+
285
+ #### Not Supported
286
+
287
+ Xcode CLT is an Apple-exclusive product and is **not available for Git Bash on Windows**.
288
+
289
+ #### Alternatives
290
+
291
+ Git Bash already includes git. For additional build tools, see the Windows section above.
292
+
293
+ ---
294
+
295
+ ## Post-Installation Configuration
296
+
297
+ These steps apply only to macOS installations.
298
+
299
+ ### Verify Installation
300
+
301
+ After installation, verify CLT is working correctly:
302
+
303
+ ```bash
304
+ # Check developer directory is set
305
+ xcode-select -p
306
+ # Expected: /Library/Developer/CommandLineTools
307
+
308
+ # Verify key tools are available
309
+ clang --version
310
+ git --version
311
+ make --version
312
+ ```
313
+
314
+ ### Reset Developer Directory
315
+
316
+ If tools point to the wrong location:
317
+
318
+ ```bash
319
+ # Reset to CLT location
320
+ sudo xcode-select -s /Library/Developer/CommandLineTools
321
+ ```
322
+
323
+ ## Common Issues
324
+
325
+ ### CLT Not Found After macOS Update
326
+
327
+ macOS updates sometimes remove or invalidate CLT. Reinstall:
328
+
329
+ ```bash
330
+ sudo rm -rf /Library/Developer/CommandLineTools
331
+ touch /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress
332
+ CLT_PACKAGE=$(softwareupdate -l 2>&1 | grep -o "Command Line Tools for Xcode-[0-9.]*" | head -n 1)
333
+ sudo softwareupdate -i "$CLT_PACKAGE" --verbose
334
+ rm -f /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress
335
+ ```
336
+
337
+ ### Headers Not Found
338
+
339
+ If compilation fails with missing headers:
340
+
341
+ ```bash
342
+ # On older macOS versions, headers may need to be installed separately
343
+ # This is rare on modern macOS but may apply to macOS 10.14 (Mojave)
344
+ sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /
345
+ ```
346
+
347
+ ## References
348
+
349
+ - [Installing Command Line Tools - Apple Documentation](https://developer.apple.com/documentation/xcode/installing-the-command-line-tools/)
350
+ - [xcode-select Man Page](https://keith.github.io/xcode-man-pages/xcode-select.1.html)
351
+ - [Technical Note TN2339: Building from the Command Line](https://developer.apple.com/library/archive/technotes/tn2339/_index.html)