@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,533 @@
1
+ # Installing Safari Technology Preview
2
+
3
+ ## Overview
4
+
5
+ Safari Technology Preview is Apple's experimental version of the Safari web browser, designed for developers and advanced users who want early access to upcoming web technologies. Released approximately every two weeks, Safari Technology Preview contains the latest WebKit engine updates, experimental web APIs, developer tools enhancements, and potential Safari features before they reach the stable Safari release.
6
+
7
+ Safari Technology Preview runs alongside your existing Safari installation, maintaining a separate configuration. This allows you to test new web technologies and debug compatibility issues without affecting your primary browser experience. It integrates with iCloud to sync your bookmarks, favorites, and Reading List from your main Safari installation.
8
+
9
+ **Important**: Safari Technology Preview is intended for testing and development purposes. It may contain bugs or exhibit unexpected behavior. Apple does not recommend using it as your primary browser.
10
+
11
+ ## Prerequisites
12
+
13
+ Before installing Safari Technology Preview, ensure:
14
+
15
+ 1. **macOS Sequoia (15.x) or later** - Safari Technology Preview requires macOS 15.0 or newer
16
+ 2. **Internet connectivity** - Required to download the installer
17
+ 3. **Sufficient disk space** - Approximately 200 MB for installation
18
+ 4. **Administrative privileges** - Required for installation via Homebrew
19
+
20
+ **Critical Limitation**: Safari Technology Preview is **exclusively available for macOS**. Apple does not release Safari Technology Preview (or any version of Safari) for Windows, Linux, or any other operating system. This is a fundamental platform restriction, not a packaging limitation.
21
+
22
+ ## Dependencies
23
+
24
+ ### macOS (Homebrew)
25
+ - **Required:**
26
+ - `Homebrew` - Install via `/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"` or `dev install homebrew`
27
+ - macOS 15.0 (Sequoia) or later - Upgrade via System Settings > General > Software Update
28
+ - **Optional:** None
29
+ - **Auto-installed:** None
30
+
31
+ ### Ubuntu (APT/Snap)
32
+ - **Installation not supported on this platform.** Apple does not release Safari or Safari Technology Preview for Linux distributions.
33
+
34
+ ### Raspberry Pi OS (APT/Snap)
35
+ - **Installation not supported on this platform.** Apple does not release Safari or Safari Technology Preview for Linux distributions.
36
+
37
+ ### Amazon Linux (DNF/YUM)
38
+ - **Installation not supported on this platform.** Apple does not release Safari or Safari Technology Preview for RPM-based Linux distributions.
39
+
40
+ ### Windows (Chocolatey/winget)
41
+ - **Installation not supported on this platform.** Apple discontinued Safari for Windows in 2012; Safari Technology Preview has never been available for Windows.
42
+
43
+ ### Git Bash (Manual/Portable)
44
+ - **Installation not supported on this platform.** Git Bash runs on Windows, where Safari Technology Preview is not available.
45
+
46
+ ## Platform-Specific Installation
47
+
48
+ ### macOS (Homebrew)
49
+
50
+ #### Prerequisites
51
+
52
+ - macOS 15.0 (Sequoia) or later
53
+ - Homebrew package manager installed
54
+ - Terminal access
55
+ - Apple Silicon (M1/M2/M3) or Intel processor
56
+
57
+ If Homebrew is not installed, install it first:
58
+
59
+ ```bash
60
+ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
61
+ ```
62
+
63
+ #### Installation Steps
64
+
65
+ Run the following command to install Safari Technology Preview:
66
+
67
+ ```bash
68
+ brew install --cask --quiet safari-technology-preview
69
+ ```
70
+
71
+ The `--quiet` flag suppresses non-essential output, making the command suitable for automation scripts. The `--cask` flag specifies that this is a macOS application (as opposed to a command-line tool).
72
+
73
+ Homebrew automatically detects your Mac's architecture (Apple Silicon or Intel) and downloads the appropriate build.
74
+
75
+ #### Verification
76
+
77
+ Confirm the installation succeeded by checking that the application exists:
78
+
79
+ ```bash
80
+ ls -la /Applications/Safari\ Technology\ Preview.app
81
+ ```
82
+
83
+ Expected output shows the application directory with its contents.
84
+
85
+ Launch Safari Technology Preview to verify it opens correctly:
86
+
87
+ ```bash
88
+ open -a "Safari Technology Preview"
89
+ ```
90
+
91
+ To check the WebKit version, open Safari Technology Preview and navigate to `Safari Technology Preview > About Safari Technology Preview` in the menu bar.
92
+
93
+ #### Troubleshooting
94
+
95
+ **Problem**: `Error: Cask 'safari-technology-preview' requires macOS >= 15`
96
+
97
+ **Solution**: Safari Technology Preview requires macOS Sequoia (15.0) or later. Upgrade your operating system to install Safari Technology Preview:
98
+
99
+ ```bash
100
+ # Check your current macOS version
101
+ sw_vers -productVersion
102
+ ```
103
+
104
+ If you are running macOS 14 (Sonoma) or earlier, you must upgrade to macOS 15 or later before installing Safari Technology Preview.
105
+
106
+ **Problem**: `brew: command not found`
107
+
108
+ **Solution**: Homebrew is not in your PATH. Add it by running:
109
+
110
+ ```bash
111
+ # For Apple Silicon Macs
112
+ eval "$(/opt/homebrew/bin/brew shellenv)"
113
+
114
+ # For Intel Macs
115
+ eval "$(/usr/local/bin/brew shellenv)"
116
+ ```
117
+
118
+ For a permanent fix, add the appropriate line to your `~/.zshrc` or `~/.bash_profile`.
119
+
120
+ **Problem**: Installation fails with network errors
121
+
122
+ **Solution**: Homebrew downloads Safari Technology Preview from Apple's servers. Verify network connectivity and retry:
123
+
124
+ ```bash
125
+ brew update && brew install --cask --quiet safari-technology-preview
126
+ ```
127
+
128
+ **Problem**: Quarantine warning when first launching
129
+
130
+ **Solution**: macOS may quarantine downloaded applications. Remove the quarantine attribute:
131
+
132
+ ```bash
133
+ xattr -dr com.apple.quarantine /Applications/Safari\ Technology\ Preview.app
134
+ ```
135
+
136
+ **Problem**: Safari Technology Preview cannot be opened because Apple cannot check it for malicious software
137
+
138
+ **Solution**: Right-click (or Control-click) the Safari Technology Preview app in Finder and select "Open" from the context menu. Click "Open" in the dialog that appears. This only needs to be done once.
139
+
140
+ **Problem**: Previous installation exists and causes conflicts
141
+
142
+ **Solution**: Uninstall the existing installation before reinstalling:
143
+
144
+ ```bash
145
+ brew uninstall --cask safari-technology-preview
146
+ brew install --cask --quiet safari-technology-preview
147
+ ```
148
+
149
+ ---
150
+
151
+ ### Ubuntu/Debian (APT)
152
+
153
+ #### Platform Limitation
154
+
155
+ **Safari Technology Preview is NOT available for Ubuntu, Debian, or any Linux distribution.**
156
+
157
+ Apple develops Safari Technology Preview exclusively for macOS. Apple has never released Safari for Linux, and there are no official or third-party builds available. This is a deliberate business decision by Apple to keep Safari exclusive to their hardware and operating systems.
158
+
159
+ #### Why This Limitation Exists
160
+
161
+ Safari is deeply integrated with macOS system frameworks (Core Foundation, Core Graphics, Core Text, Security framework, etc.) that do not exist on Linux. Porting Safari to Linux would require rewriting significant portions of the browser and maintaining two separate codebases, which Apple has chosen not to do.
162
+
163
+ #### Recommended Alternative
164
+
165
+ For web development testing on Linux, use one of these approaches:
166
+
167
+ **Option 1**: Use WebKitGTK, the open-source WebKit port for Linux:
168
+
169
+ ```bash
170
+ sudo DEBIAN_FRONTEND=noninteractive apt-get update -y && sudo DEBIAN_FRONTEND=noninteractive apt-get install -y webkit2gtk-4.0
171
+ ```
172
+
173
+ WebKitGTK shares the same WebKit rendering engine as Safari but differs in JavaScript engine performance and platform-specific features. It provides a reasonable approximation for testing WebKit compatibility.
174
+
175
+ **Option 2**: Use a macOS virtual machine or cloud-based Mac service (such as MacStadium or AWS EC2 Mac instances) to test Safari Technology Preview in a real macOS environment.
176
+
177
+ **Option 3**: Use cross-browser testing services like BrowserStack or Sauce Labs, which provide access to Safari on real Mac hardware.
178
+
179
+ ---
180
+
181
+ ### Raspberry Pi OS (APT)
182
+
183
+ #### Platform Limitation
184
+
185
+ **Safari Technology Preview is NOT available for Raspberry Pi OS.**
186
+
187
+ Apple does not release Safari or Safari Technology Preview for any Linux distribution, including Raspberry Pi OS. Additionally, Raspberry Pi devices use ARM processors running Linux, which Safari has never supported.
188
+
189
+ #### Why This Limitation Exists
190
+
191
+ Safari is exclusive to Apple platforms. Even if Safari were available for Linux, Raspberry Pi OS would face additional compatibility challenges due to its ARM architecture and limited system resources compared to desktop systems.
192
+
193
+ #### Recommended Alternative
194
+
195
+ For WebKit-based testing on Raspberry Pi OS, use the Epiphany browser (GNOME Web), which is based on WebKitGTK:
196
+
197
+ ```bash
198
+ sudo DEBIAN_FRONTEND=noninteractive apt-get update -y && sudo DEBIAN_FRONTEND=noninteractive apt-get install -y epiphany-browser
199
+ ```
200
+
201
+ Verify installation:
202
+
203
+ ```bash
204
+ epiphany --version
205
+ ```
206
+
207
+ **Note**: Epiphany uses the WebKit rendering engine but may not reflect the exact behavior of Safari Technology Preview. For accurate Safari testing, use a Mac or a cloud-based Mac testing service.
208
+
209
+ ---
210
+
211
+ ### Amazon Linux/RHEL (DNF/YUM)
212
+
213
+ #### Platform Limitation
214
+
215
+ **Safari Technology Preview is NOT available for Amazon Linux, RHEL, CentOS, Fedora, or any RPM-based Linux distribution.**
216
+
217
+ Apple develops Safari and Safari Technology Preview exclusively for macOS. There are no official builds for any Linux distribution.
218
+
219
+ #### Why This Limitation Exists
220
+
221
+ Apple has never released Safari for Linux. Safari relies on macOS-specific system frameworks and APIs that have no equivalents on Linux. Apple's business strategy keeps Safari as a differentiating feature for Mac computers.
222
+
223
+ #### Recommended Alternative
224
+
225
+ For WebKit testing on Amazon Linux or RHEL systems:
226
+
227
+ **Option 1**: Use WebKitGTK (if available in your distribution):
228
+
229
+ ```bash
230
+ # Amazon Linux 2023 / Fedora
231
+ sudo dnf install -y webkit2gtk4.0
232
+
233
+ # Amazon Linux 2 / CentOS 7
234
+ sudo yum install -y webkitgtk4
235
+ ```
236
+
237
+ **Option 2**: Deploy a macOS instance on AWS:
238
+
239
+ Amazon EC2 offers Mac instances (mac1.metal, mac2.metal) that run macOS. You can install Safari Technology Preview on these instances for testing:
240
+
241
+ 1. Launch an EC2 Mac instance
242
+ 2. Connect via VNC or SSH with X forwarding
243
+ 3. Install Safari Technology Preview using Homebrew
244
+
245
+ **Option 3**: Use BrowserStack, Sauce Labs, or similar services that provide Safari access through their testing infrastructure.
246
+
247
+ ---
248
+
249
+ ### Windows (Chocolatey/winget)
250
+
251
+ #### Platform Limitation
252
+
253
+ **Safari Technology Preview is NOT available for Windows.**
254
+
255
+ Apple discontinued Safari for Windows in 2012 with Safari 5.1.7. Since then, Apple has not released any version of Safari (including Safari Technology Preview) for Windows. The Windows version was deprecated due to low market share and the significant engineering effort required to maintain cross-platform compatibility.
256
+
257
+ #### Why This Limitation Exists
258
+
259
+ Safari relies heavily on macOS-specific technologies including Core Animation, Core Text, and the macOS Security framework. Maintaining Windows-compatible versions of these technologies proved unsustainable. Apple chose to focus Safari development exclusively on macOS and iOS.
260
+
261
+ The last Safari version for Windows (5.1.7) is severely outdated, lacks modern web standards support, and contains known security vulnerabilities. Do not use Safari 5 for Windows under any circumstances.
262
+
263
+ #### Recommended Alternative
264
+
265
+ For testing Safari compatibility on Windows:
266
+
267
+ **Option 1**: Use a cloud-based testing service:
268
+
269
+ - BrowserStack (https://www.browserstack.com)
270
+ - Sauce Labs (https://saucelabs.com)
271
+ - LambdaTest (https://www.lambdatest.com)
272
+
273
+ These services provide access to Safari on real Mac hardware through your web browser.
274
+
275
+ **Option 2**: Use a macOS virtual machine:
276
+
277
+ Run macOS in a virtual machine using VMware Workstation or similar virtualization software. Note that Apple's EULA only permits macOS virtualization on Apple hardware.
278
+
279
+ **Option 3**: Use a physical Mac:
280
+
281
+ For professional web development requiring Safari testing, consider obtaining a Mac mini, MacBook, or Mac Studio for your testing workflow.
282
+
283
+ ---
284
+
285
+ ### WSL (Ubuntu)
286
+
287
+ #### Platform Limitation
288
+
289
+ **Safari Technology Preview is NOT available for WSL (Windows Subsystem for Linux).**
290
+
291
+ WSL runs a Linux environment on Windows, but Safari Technology Preview is only available for macOS. Neither Safari nor Safari Technology Preview has ever been released for any Linux distribution.
292
+
293
+ #### Why This Limitation Exists
294
+
295
+ WSL provides a Linux userland environment, not a macOS environment. Safari requires macOS-specific frameworks that do not exist in Linux or WSL. Even if Safari were available for Linux, it would not run in WSL.
296
+
297
+ #### Recommended Alternative
298
+
299
+ For WebKit-based testing in WSL:
300
+
301
+ **Option 1**: Install WebKitGTK for basic WebKit rendering tests:
302
+
303
+ ```bash
304
+ sudo DEBIAN_FRONTEND=noninteractive apt-get update -y && sudo DEBIAN_FRONTEND=noninteractive apt-get install -y webkit2gtk-4.0
305
+ ```
306
+
307
+ **Option 2**: Use Playwright or Puppeteer with WebKit:
308
+
309
+ Playwright supports WebKit testing on Linux, providing a closer approximation to Safari behavior:
310
+
311
+ ```bash
312
+ # Install Node.js if not present
313
+ curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
314
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y nodejs
315
+
316
+ # Install Playwright with WebKit
317
+ npx playwright install webkit
318
+ ```
319
+
320
+ You can then run WebKit-based tests through Playwright's API.
321
+
322
+ **Option 3**: Use cloud-based Safari testing services (BrowserStack, Sauce Labs) that provide access to Safari on real Mac hardware.
323
+
324
+ ---
325
+
326
+ ### Git Bash (Windows)
327
+
328
+ #### Platform Limitation
329
+
330
+ **Safari Technology Preview is NOT available for Git Bash or Windows.**
331
+
332
+ Git Bash is a terminal emulator for Windows that provides a Bash shell and Unix utilities. It runs on Windows, and since Safari Technology Preview is not available for Windows, it cannot be installed or used through Git Bash.
333
+
334
+ #### Why This Limitation Exists
335
+
336
+ Git Bash provides a Unix-like command-line environment but does not change the underlying operating system. Since Safari Technology Preview requires macOS, and Git Bash runs on Windows, there is no installation path available.
337
+
338
+ #### Recommended Alternative
339
+
340
+ From Git Bash on Windows, you can interact with cloud-based Safari testing services via their APIs or CLI tools:
341
+
342
+ **Using BrowserStack CLI**:
343
+
344
+ ```bash
345
+ # Download BrowserStack Local binary
346
+ curl -L -o /tmp/BrowserStackLocal-win32.zip https://www.browserstack.com/browserstack-local/BrowserStackLocal-win32.zip
347
+
348
+ # Extract and use
349
+ unzip /tmp/BrowserStackLocal-win32.zip -d /c/tools/browserstack/
350
+ /c/tools/browserstack/BrowserStackLocal.exe --key YOUR_ACCESS_KEY
351
+ ```
352
+
353
+ **Using Playwright** (if Node.js is installed):
354
+
355
+ ```bash
356
+ npx playwright install webkit
357
+ npx playwright test --project=webkit
358
+ ```
359
+
360
+ Note: Playwright's WebKit on Windows uses a custom WebKit build, not actual Safari. For accurate Safari testing, use a Mac or cloud-based testing service.
361
+
362
+ ---
363
+
364
+ ## Post-Installation Configuration
365
+
366
+ Safari Technology Preview includes several developer-focused features that require configuration.
367
+
368
+ ### Enable the Develop Menu
369
+
370
+ The Develop menu provides access to web development tools:
371
+
372
+ 1. Open Safari Technology Preview
373
+ 2. Go to **Safari Technology Preview > Settings** (or press `Cmd + ,`)
374
+ 3. Click the **Advanced** tab
375
+ 4. Check **Show features for web developers**
376
+
377
+ The Develop menu now appears in the menu bar, providing access to:
378
+ - Web Inspector
379
+ - Responsive Design Mode
380
+ - Empty Caches
381
+ - Disable JavaScript, Images, and other features
382
+ - Experimental Features submenu
383
+
384
+ ### Access Experimental Features
385
+
386
+ Safari Technology Preview includes experimental web features that may not be enabled by default:
387
+
388
+ 1. Open the **Develop** menu
389
+ 2. Select **Experimental Features**
390
+ 3. Toggle individual features as needed for testing
391
+
392
+ These features are subject to change and may be removed or modified in future releases.
393
+
394
+ ### Enable Web Inspector
395
+
396
+ To inspect web pages and debug JavaScript:
397
+
398
+ 1. Open the **Develop** menu
399
+ 2. Select **Show Web Inspector** (or press `Cmd + Option + I`)
400
+
401
+ Alternatively, right-click any element on a web page and select **Inspect Element**.
402
+
403
+ ### Configure for Automation Testing
404
+
405
+ For automated testing with tools like Selenium or Playwright:
406
+
407
+ ```bash
408
+ # Enable Remote Automation
409
+ defaults write com.apple.Safari.TechnologyPreview AllowRemoteAutomation -bool true
410
+
411
+ # Run Safari Technology Preview with WebDriver
412
+ safaridriver --enable
413
+ ```
414
+
415
+ ---
416
+
417
+ ## Common Issues
418
+
419
+ ### Issue: Safari Technology Preview is Very Slow
420
+
421
+ **Symptoms**: Browser feels sluggish, pages take long to load, or UI is unresponsive.
422
+
423
+ **Solution**: Safari Technology Preview may have experimental features enabled that impact performance. Reset experimental features to their defaults:
424
+
425
+ 1. Go to **Develop > Experimental Features**
426
+ 2. Scroll to the bottom and click **Reset All to Defaults**
427
+ 3. Restart Safari Technology Preview
428
+
429
+ ### Issue: Websites Display Incorrectly
430
+
431
+ **Symptoms**: Pages render differently in Safari Technology Preview than in stable Safari or other browsers.
432
+
433
+ **Solution**: This may indicate upcoming rendering changes or experimental feature conflicts:
434
+
435
+ 1. Compare the page in stable Safari to confirm it is a Safari Technology Preview-specific issue
436
+ 2. Check if any experimental features are affecting rendering
437
+ 3. Report the issue to Apple via the **Safari > Report an Issue** menu option
438
+
439
+ ### Issue: Extensions Not Working
440
+
441
+ **Symptoms**: Safari extensions fail to load or function correctly in Safari Technology Preview.
442
+
443
+ **Solution**: Extensions must be compatible with the WebKit version in Safari Technology Preview:
444
+
445
+ 1. Check if the extension developer provides a beta version compatible with Safari Technology Preview
446
+ 2. Disable problematic extensions via **Safari Technology Preview > Settings > Extensions**
447
+ 3. Some extensions may require updates as Safari Technology Preview evolves
448
+
449
+ ### Issue: Cannot Sign In to iCloud Features
450
+
451
+ **Symptoms**: iCloud Keychain, bookmarks, or other iCloud features are unavailable.
452
+
453
+ **Solution**: Safari Technology Preview uses the same iCloud account as your system:
454
+
455
+ 1. Ensure you are signed in to iCloud in **System Settings > Apple ID**
456
+ 2. Verify that Safari is enabled in **System Settings > Apple ID > iCloud > Apps Using iCloud**
457
+ 3. Restart Safari Technology Preview
458
+
459
+ ### Issue: Safari Technology Preview Crashes on Launch
460
+
461
+ **Symptoms**: Application crashes immediately when opened.
462
+
463
+ **Solution**: Reset Safari Technology Preview preferences and data:
464
+
465
+ ```bash
466
+ # Close Safari Technology Preview if running
467
+ osascript -e 'quit app "Safari Technology Preview"'
468
+
469
+ # Remove preferences (keeps bookmarks via iCloud)
470
+ rm -rf ~/Library/Preferences/com.apple.SafariTechnologyPreview.plist
471
+ rm -rf ~/Library/Caches/com.apple.SafariTechnologyPreview/
472
+
473
+ # Restart the app
474
+ open -a "Safari Technology Preview"
475
+ ```
476
+
477
+ If crashes persist, reinstall:
478
+
479
+ ```bash
480
+ brew uninstall --cask safari-technology-preview
481
+ brew install --cask --quiet safari-technology-preview
482
+ ```
483
+
484
+ ---
485
+
486
+ ## Updating Safari Technology Preview
487
+
488
+ Safari Technology Preview receives updates approximately every two weeks. Homebrew tracks these releases automatically.
489
+
490
+ ### Check for Updates
491
+
492
+ ```bash
493
+ brew outdated --cask | grep safari-technology-preview
494
+ ```
495
+
496
+ ### Update to Latest Version
497
+
498
+ ```bash
499
+ brew upgrade --cask --quiet safari-technology-preview
500
+ ```
501
+
502
+ ### Automatic Updates via Mac App Store
503
+
504
+ Safari Technology Preview can also update through the Mac App Store if installed from there. However, Homebrew installations update through Homebrew, not the App Store.
505
+
506
+ ---
507
+
508
+ ## Uninstallation
509
+
510
+ To remove Safari Technology Preview:
511
+
512
+ ```bash
513
+ brew uninstall --cask safari-technology-preview
514
+ ```
515
+
516
+ This removes the application but preserves your iCloud-synced data (bookmarks, Reading List). To remove local caches and preferences:
517
+
518
+ ```bash
519
+ rm -rf ~/Library/Preferences/com.apple.SafariTechnologyPreview.plist
520
+ rm -rf ~/Library/Caches/com.apple.SafariTechnologyPreview/
521
+ rm -rf ~/Library/Safari\ Technology\ Preview/
522
+ ```
523
+
524
+ ---
525
+
526
+ ## References
527
+
528
+ - [Safari Technology Preview - Apple Developer](https://developer.apple.com/safari/technology-preview/)
529
+ - [Safari Technology Preview Release Notes](https://developer.apple.com/documentation/safari-technology-preview-release-notes)
530
+ - [Homebrew Cask: safari-technology-preview](https://formulae.brew.sh/cask/safari-technology-preview)
531
+ - [WebKit Blog - Safari Technology Preview](https://webkit.org/blog/category/safari-technology-preview/)
532
+ - [Safari Developer Resources](https://developer.apple.com/safari/resources/)
533
+ - [WebKit Project](https://webkit.org/)