@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,727 @@
1
+ # Installing AWS CLI
2
+
3
+ ## Overview
4
+
5
+ The AWS Command Line Interface (AWS CLI) is a unified tool that provides a consistent interface for interacting with all parts of Amazon Web Services. With the AWS CLI, you can control multiple AWS services from the command line and automate them through scripts. AWS CLI v2 is the current major version and includes several improvements over v1, including improved installers, AWS Single Sign-On (SSO) support, and various interactive features. AWS CLI v2 bundles its own Python runtime, so no separate Python installation is required.
6
+
7
+ ## Prerequisites
8
+
9
+ Before installing AWS CLI on any platform, ensure:
10
+
11
+ 1. **Internet connectivity** - Required to download the installer
12
+ 2. **Administrative privileges** - Required on most platforms for system-wide installation
13
+ 3. **64-bit operating system** - AWS CLI v2 requires a 64-bit system on all platforms
14
+
15
+ **Important**: AWS CLI v1 and v2 use the same `aws` command. If you have v1 installed, uninstall it before installing v2 to avoid conflicts.
16
+
17
+ ## Dependencies
18
+
19
+ ### macOS (Homebrew)
20
+
21
+ - **Required:**
22
+ - Homebrew package manager - Install via `/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"`
23
+ - **Optional:** None
24
+ - **Auto-installed:**
25
+ - Python runtime (bundled with AWS CLI v2, no separate installation needed)
26
+
27
+ ### Ubuntu (APT/Snap)
28
+
29
+ - **Required:**
30
+ - `snapd` - Install via `sudo apt install snapd` (installer auto-installs if missing)
31
+ - **Optional:** None
32
+ - **Auto-installed:**
33
+ - Python runtime (bundled with AWS CLI v2, no separate installation needed)
34
+
35
+ ### Raspberry Pi OS (APT/Snap)
36
+
37
+ - **Required:**
38
+ - 64-bit operating system (aarch64 architecture) - Verify with `uname -m` (must output `aarch64`, not `armv7l`)
39
+ - `snapd` - Install via `sudo apt install snapd` (installer auto-installs if missing)
40
+ - **Optional:** None
41
+ - **Auto-installed:**
42
+ - Python runtime (bundled with AWS CLI v2, no separate installation needed)
43
+
44
+ **Important**: 32-bit Raspberry Pi OS is not supported. Download the 64-bit version from https://www.raspberrypi.com/software/operating-systems/
45
+
46
+ ### Amazon Linux (DNF/YUM)
47
+
48
+ **Amazon Linux 2023:**
49
+ - **Required:** None (AWS CLI v2 is pre-installed)
50
+ - **Optional:** None
51
+ - **Auto-installed:**
52
+ - Python runtime (bundled with AWS CLI v2, no separate installation needed)
53
+
54
+ **Amazon Linux 2:**
55
+ - **Required:**
56
+ - `unzip` - Install via `sudo yum install unzip` (installer auto-installs if missing)
57
+ - `curl` - Install via `sudo yum install curl` (installer auto-installs if missing)
58
+ - **Optional:** None
59
+ - **Auto-installed:**
60
+ - Python runtime (bundled with AWS CLI v2, no separate installation needed)
61
+
62
+ **Note**: Amazon Linux 2 ships with AWS CLI v1 pre-installed. The installer automatically removes v1 before installing v2.
63
+
64
+ ### Windows (Chocolatey/winget)
65
+
66
+ - **Required:**
67
+ - Chocolatey package manager - Install via Administrator PowerShell: `Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))`
68
+ - **Optional:** None
69
+ - **Auto-installed:**
70
+ - Python runtime (bundled with AWS CLI v2, no separate installation needed)
71
+
72
+ ### Git Bash (Manual/Portable)
73
+
74
+ - **Required:**
75
+ - Windows installation of AWS CLI (see Windows section above)
76
+ - Chocolatey on Windows (for automated installation via the installer script)
77
+ - **Optional:**
78
+ - Manual MSI installer as alternative to Chocolatey - Download from https://awscli.amazonaws.com/AWSCLIV2.msi
79
+ - **Auto-installed:** None (inherits AWS CLI from Windows PATH)
80
+
81
+ **Note**: Git Bash does not require a separate AWS CLI installation. Once installed on Windows, the `aws` command is automatically available in Git Bash through inherited PATH.
82
+
83
+ ## Platform-Specific Installation
84
+
85
+ ### macOS (Homebrew)
86
+
87
+ #### Prerequisites
88
+
89
+ - macOS 11 (Big Sur) or later
90
+ - Homebrew package manager installed
91
+ - Terminal access
92
+
93
+ If Homebrew is not installed, install it first:
94
+
95
+ ```bash
96
+ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
97
+ ```
98
+
99
+ #### Installation Steps
100
+
101
+ Run the following command to install AWS CLI:
102
+
103
+ ```bash
104
+ brew install --quiet awscli
105
+ ```
106
+
107
+ The `--quiet` flag suppresses non-essential output, making the command suitable for automation scripts.
108
+
109
+ #### Verification
110
+
111
+ Confirm the installation succeeded:
112
+
113
+ ```bash
114
+ aws --version
115
+ ```
116
+
117
+ Expected output (version numbers may vary):
118
+
119
+ ```
120
+ aws-cli/2.32.28 Python/3.11.6 Darwin/23.3.0 source/arm64
121
+ ```
122
+
123
+ #### Troubleshooting
124
+
125
+ **Problem**: `aws: command not found` after installation
126
+
127
+ **Solution**: Homebrew may not be in your PATH. Add it by running:
128
+
129
+ ```bash
130
+ eval "$(/opt/homebrew/bin/brew shellenv)"
131
+ ```
132
+
133
+ For permanent fix, add the above line to your `~/.zshrc` or `~/.bash_profile`.
134
+
135
+ **Problem**: Permission denied errors
136
+
137
+ **Solution**: Run `brew doctor` to diagnose Homebrew permission issues, then fix ownership:
138
+
139
+ ```bash
140
+ sudo chown -R $(whoami) /opt/homebrew
141
+ ```
142
+
143
+ ---
144
+
145
+ ### Ubuntu/Debian (Snap)
146
+
147
+ #### Prerequisites
148
+
149
+ - Ubuntu 18.04 or later, or Debian 10 or later (64-bit)
150
+ - snapd service installed and running (pre-installed on Ubuntu 16.04+)
151
+ - sudo privileges
152
+
153
+ **Important**: Do not use `apt install awscli` on Ubuntu/Debian. The APT repositories contain outdated AWS CLI v1 packages that AWS does not maintain. Use the official Snap package instead.
154
+
155
+ #### Installation Steps
156
+
157
+ Run the following command to install AWS CLI:
158
+
159
+ ```bash
160
+ sudo snap install aws-cli --classic
161
+ ```
162
+
163
+ The `--classic` flag is required because AWS CLI needs access to system files and resources outside the typical snap sandbox.
164
+
165
+ **Note**: After installation, you may need to log out and log back in, or restart your terminal, for the PATH to update correctly.
166
+
167
+ #### Verification
168
+
169
+ Confirm the installation succeeded:
170
+
171
+ ```bash
172
+ aws --version
173
+ ```
174
+
175
+ Expected output (version numbers may vary):
176
+
177
+ ```
178
+ aws-cli/2.32.28 Python/3.11.6 Linux/5.15.0-generic source/x86_64
179
+ ```
180
+
181
+ #### Troubleshooting
182
+
183
+ **Problem**: `snap: command not found`
184
+
185
+ **Solution**: Install snapd first:
186
+
187
+ ```bash
188
+ sudo DEBIAN_FRONTEND=noninteractive apt-get update -y && sudo DEBIAN_FRONTEND=noninteractive apt-get install -y snapd
189
+ ```
190
+
191
+ **Problem**: `aws: command not found` after installation
192
+
193
+ **Solution**: The snap bin directory may not be in your PATH. Add it:
194
+
195
+ ```bash
196
+ export PATH=$PATH:/snap/bin
197
+ ```
198
+
199
+ For permanent fix, add the above line to your `~/.bashrc` or `~/.profile`.
200
+
201
+ **Problem**: Classic snap installation fails
202
+
203
+ **Solution**: Ensure snapd is fully initialized:
204
+
205
+ ```bash
206
+ sudo systemctl enable --now snapd.socket
207
+ sudo ln -s /var/lib/snapd/snap /snap
208
+ ```
209
+
210
+ ---
211
+
212
+ ### Raspberry Pi OS (Snap)
213
+
214
+ #### Prerequisites
215
+
216
+ - Raspberry Pi OS (64-bit) - ARM64/aarch64 architecture required
217
+ - Raspberry Pi 3B+ or later recommended (64-bit capable hardware)
218
+ - snapd service installed
219
+ - sudo privileges
220
+
221
+ **Important**: AWS CLI v2 requires a full 64-bit (aarch64) operating system. The 32-bit version of Raspberry Pi OS is not supported. Verify your architecture:
222
+
223
+ ```bash
224
+ uname -m
225
+ ```
226
+
227
+ This must output `aarch64`. If it outputs `armv7l`, you need to install the 64-bit version of Raspberry Pi OS.
228
+
229
+ #### Installation Steps
230
+
231
+ First, install snapd if not already present:
232
+
233
+ ```bash
234
+ sudo DEBIAN_FRONTEND=noninteractive apt-get update -y && sudo DEBIAN_FRONTEND=noninteractive apt-get install -y snapd
235
+ ```
236
+
237
+ Reboot to complete snapd initialization:
238
+
239
+ ```bash
240
+ sudo reboot
241
+ ```
242
+
243
+ After reboot, install AWS CLI:
244
+
245
+ ```bash
246
+ sudo snap install aws-cli --classic
247
+ ```
248
+
249
+ #### Verification
250
+
251
+ Confirm the installation succeeded:
252
+
253
+ ```bash
254
+ aws --version
255
+ ```
256
+
257
+ Expected output (version numbers may vary):
258
+
259
+ ```
260
+ aws-cli/2.32.28 Python/3.11.6 Linux/5.15.0-rpi source/aarch64
261
+ ```
262
+
263
+ #### Troubleshooting
264
+
265
+ **Problem**: Installation fails with architecture error
266
+
267
+ **Solution**: You are running 32-bit Raspberry Pi OS. Download and install the 64-bit version from https://www.raspberrypi.com/software/operating-systems/
268
+
269
+ **Problem**: `aws: command not found` after installation
270
+
271
+ **Solution**: Log out and log back in, or add the snap bin directory to PATH:
272
+
273
+ ```bash
274
+ export PATH=$PATH:/snap/bin
275
+ ```
276
+
277
+ **Problem**: Slow installation or timeout
278
+
279
+ **Solution**: Raspberry Pi may have limited bandwidth. Allow extra time or use a wired ethernet connection for faster downloads.
280
+
281
+ ---
282
+
283
+ ### Amazon Linux (DNF)
284
+
285
+ #### Prerequisites
286
+
287
+ - Amazon Linux 2023 (AL2023) or Amazon Linux 2 (AL2)
288
+ - sudo privileges
289
+
290
+ **Note**: Amazon Linux 2023 includes AWS CLI v2 pre-installed. Amazon Linux 2 includes AWS CLI v1 pre-installed. The steps below ensure you have the latest v2 version.
291
+
292
+ #### Installation Steps
293
+
294
+ **For Amazon Linux 2023 (AWS CLI v2 pre-installed):**
295
+
296
+ Update to the latest version:
297
+
298
+ ```bash
299
+ sudo dnf upgrade -y awscli
300
+ ```
301
+
302
+ **For Amazon Linux 2 (Upgrade from v1 to v2):**
303
+
304
+ First, remove the pre-installed AWS CLI v1:
305
+
306
+ ```bash
307
+ sudo yum remove -y awscli
308
+ ```
309
+
310
+ Then install AWS CLI v2 using the official installer:
311
+
312
+ ```bash
313
+ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "/tmp/awscliv2.zip"
314
+ unzip -o -q /tmp/awscliv2.zip -d /tmp
315
+ sudo /tmp/aws/install
316
+ rm -rf /tmp/awscliv2.zip /tmp/aws
317
+ ```
318
+
319
+ #### Verification
320
+
321
+ Confirm the installation succeeded:
322
+
323
+ ```bash
324
+ aws --version
325
+ ```
326
+
327
+ Expected output (version numbers may vary):
328
+
329
+ ```
330
+ aws-cli/2.32.28 Python/3.11.6 Linux/5.10.205-195.807.amzn2.x86_64 exe/x86_64.amzn.2
331
+ ```
332
+
333
+ #### Troubleshooting
334
+
335
+ **Problem**: `aws` command runs old v1 version after installing v2
336
+
337
+ **Solution**: The old v1 may still be in PATH. Remove it and refresh your shell:
338
+
339
+ ```bash
340
+ sudo yum remove -y awscli
341
+ hash -r
342
+ ```
343
+
344
+ **Problem**: `unzip: command not found`
345
+
346
+ **Solution**: Install unzip first:
347
+
348
+ ```bash
349
+ sudo yum install -y unzip
350
+ ```
351
+
352
+ **Problem**: Permission denied during installation
353
+
354
+ **Solution**: Ensure you have sudo privileges. If running in a container, the installer may need to be run as root:
355
+
356
+ ```bash
357
+ sudo /tmp/aws/install --bin-dir /usr/local/bin --install-dir /usr/local/aws-cli
358
+ ```
359
+
360
+ ---
361
+
362
+ ### Windows (Chocolatey)
363
+
364
+ #### Prerequisites
365
+
366
+ - Windows 10 or Windows 11 (64-bit)
367
+ - Chocolatey package manager installed
368
+ - Administrator PowerShell or Command Prompt
369
+
370
+ If Chocolatey is not installed, install it first by running this command in an Administrator PowerShell:
371
+
372
+ ```powershell
373
+ Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
374
+ ```
375
+
376
+ #### Installation Steps
377
+
378
+ Run the following command in an Administrator PowerShell or Command Prompt:
379
+
380
+ ```powershell
381
+ choco install awscli -y
382
+ ```
383
+
384
+ The `-y` flag automatically confirms all prompts, enabling fully non-interactive installation.
385
+
386
+ #### Verification
387
+
388
+ Open a new Command Prompt or PowerShell window (required for PATH to update), then run:
389
+
390
+ ```powershell
391
+ aws --version
392
+ ```
393
+
394
+ Expected output (version numbers may vary):
395
+
396
+ ```
397
+ aws-cli/2.32.28 Python/3.11.6 Windows/10 exe/AMD64
398
+ ```
399
+
400
+ #### Troubleshooting
401
+
402
+ **Problem**: `aws: The term 'aws' is not recognized`
403
+
404
+ **Solution**: Open a new terminal window. The PATH is updated during installation but existing windows do not reflect this. Alternatively, refresh the environment:
405
+
406
+ ```powershell
407
+ refreshenv
408
+ ```
409
+
410
+ **Problem**: Installation fails with access denied
411
+
412
+ **Solution**: Ensure you are running PowerShell or Command Prompt as Administrator. Right-click and select "Run as administrator".
413
+
414
+ **Problem**: Chocolatey command not found
415
+
416
+ **Solution**: Chocolatey may not be in PATH. Close all terminal windows, open a new Administrator PowerShell, and try again.
417
+
418
+ ---
419
+
420
+ ### WSL (Ubuntu)
421
+
422
+ #### Prerequisites
423
+
424
+ - Windows Subsystem for Linux with Ubuntu installed
425
+ - WSL 2 recommended for best performance
426
+ - sudo privileges within WSL
427
+
428
+ WSL Ubuntu installations follow the same process as native Ubuntu, using Snap.
429
+
430
+ #### Installation Steps
431
+
432
+ First, ensure snapd is installed and running:
433
+
434
+ ```bash
435
+ sudo DEBIAN_FRONTEND=noninteractive apt-get update -y && sudo DEBIAN_FRONTEND=noninteractive apt-get install -y snapd
436
+ ```
437
+
438
+ Start the snapd service:
439
+
440
+ ```bash
441
+ sudo systemctl enable --now snapd.socket
442
+ sudo ln -s /var/lib/snapd/snap /snap 2>/dev/null || true
443
+ ```
444
+
445
+ Install AWS CLI:
446
+
447
+ ```bash
448
+ sudo snap install aws-cli --classic
449
+ ```
450
+
451
+ **Note**: You may need to restart your WSL session for the PATH to update. Close the terminal and run `wsl` again.
452
+
453
+ #### Verification
454
+
455
+ Confirm the installation succeeded:
456
+
457
+ ```bash
458
+ aws --version
459
+ ```
460
+
461
+ Expected output (version numbers may vary):
462
+
463
+ ```
464
+ aws-cli/2.32.28 Python/3.11.6 Linux/5.15.90.1-microsoft-standard-WSL2 source/x86_64
465
+ ```
466
+
467
+ #### Troubleshooting
468
+
469
+ **Problem**: systemd commands fail (e.g., `systemctl: command not found`)
470
+
471
+ **Solution**: WSL 1 does not support systemd. Upgrade to WSL 2 or use the manual installer method:
472
+
473
+ ```bash
474
+ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "/tmp/awscliv2.zip"
475
+ unzip -o -q /tmp/awscliv2.zip -d /tmp
476
+ sudo /tmp/aws/install
477
+ rm -rf /tmp/awscliv2.zip /tmp/aws
478
+ ```
479
+
480
+ **Problem**: Snap hangs during installation
481
+
482
+ **Solution**: WSL may have issues with snap's systemd integration. Use the manual installer method shown above.
483
+
484
+ **Problem**: `aws: command not found` after installation
485
+
486
+ **Solution**: Add the installation directory to PATH:
487
+
488
+ ```bash
489
+ export PATH=$PATH:/snap/bin:/usr/local/bin
490
+ ```
491
+
492
+ Add this line to `~/.bashrc` for persistence.
493
+
494
+ ---
495
+
496
+ ### Git Bash (Windows Installation)
497
+
498
+ #### Prerequisites
499
+
500
+ - Windows 10 or Windows 11 (64-bit)
501
+ - Git Bash installed (comes with Git for Windows)
502
+ - AWS CLI installed on Windows (see Windows section above)
503
+
504
+ **Note**: Git Bash on Windows does not require a separate AWS CLI installation. Git Bash inherits the Windows PATH, so once AWS CLI is installed on Windows, it is automatically available in Git Bash.
505
+
506
+ #### Installation Steps
507
+
508
+ Install AWS CLI on Windows using the MSI installer with silent flags:
509
+
510
+ ```bash
511
+ # Download the installer
512
+ curl -o /tmp/AWSCLIV2.msi "https://awscli.amazonaws.com/AWSCLIV2.msi"
513
+
514
+ # Run silent installation (requires Administrator privileges)
515
+ # Open a separate Administrator Command Prompt and run:
516
+ # msiexec.exe /i C:\path\to\AWSCLIV2.msi /qn
517
+ ```
518
+
519
+ Alternatively, if Chocolatey is available in your Windows environment, install from Git Bash by calling the Windows Chocolatey:
520
+
521
+ ```bash
522
+ /c/ProgramData/chocolatey/bin/choco.exe install awscli -y
523
+ ```
524
+
525
+ After installation, close and reopen Git Bash for PATH changes to take effect.
526
+
527
+ #### Verification
528
+
529
+ Confirm AWS CLI is accessible from Git Bash:
530
+
531
+ ```bash
532
+ aws --version
533
+ ```
534
+
535
+ Expected output (version numbers may vary):
536
+
537
+ ```
538
+ aws-cli/2.32.28 Python/3.11.6 Windows/10 exe/AMD64
539
+ ```
540
+
541
+ #### Troubleshooting
542
+
543
+ **Problem**: `aws: command not found` in Git Bash
544
+
545
+ **Solution**: The Windows PATH may not be fully inherited. Add the AWS CLI directory explicitly:
546
+
547
+ ```bash
548
+ export PATH=$PATH:"/c/Program Files/Amazon/AWSCLIV2"
549
+ ```
550
+
551
+ Add this line to `~/.bashrc` in your Git Bash home directory for persistence.
552
+
553
+ **Problem**: Command works in Command Prompt but not Git Bash
554
+
555
+ **Solution**: Restart Git Bash. If the issue persists, check that the AWS CLI installation directory is in the Windows System PATH:
556
+
557
+ 1. Open Windows System Properties > Environment Variables
558
+ 2. Under System variables, find PATH
559
+ 3. Ensure it contains `C:\Program Files\Amazon\AWSCLIV2`
560
+
561
+ **Problem**: Git Bash shows garbled output from AWS CLI
562
+
563
+ **Solution**: Some AWS CLI commands may have output formatting issues in Git Bash. Use the `--no-cli-pager` flag to disable the pager:
564
+
565
+ ```bash
566
+ aws s3 ls --no-cli-pager
567
+ ```
568
+
569
+ Or set this permanently:
570
+
571
+ ```bash
572
+ export AWS_PAGER=""
573
+ ```
574
+
575
+ ---
576
+
577
+ ## Post-Installation Configuration
578
+
579
+ After installing AWS CLI on any platform, configure it with your AWS credentials.
580
+
581
+ ### Quick Configuration
582
+
583
+ Run the interactive configuration command:
584
+
585
+ ```bash
586
+ aws configure
587
+ ```
588
+
589
+ You will be prompted for:
590
+
591
+ - **AWS Access Key ID**: Your IAM user access key
592
+ - **AWS Secret Access Key**: Your IAM user secret key
593
+ - **Default region name**: e.g., `us-east-1`, `eu-west-1`
594
+ - **Default output format**: `json` (recommended), `yaml`, `text`, or `table`
595
+
596
+ ### Non-Interactive Configuration
597
+
598
+ For automation scripts, set credentials using environment variables:
599
+
600
+ ```bash
601
+ export AWS_ACCESS_KEY_ID="your-access-key-id"
602
+ export AWS_SECRET_ACCESS_KEY="your-secret-access-key"
603
+ export AWS_DEFAULT_REGION="us-east-1"
604
+ ```
605
+
606
+ Or create the credentials file directly:
607
+
608
+ ```bash
609
+ mkdir -p ~/.aws
610
+
611
+ cat > ~/.aws/credentials << 'EOF'
612
+ [default]
613
+ aws_access_key_id = your-access-key-id
614
+ aws_secret_access_key = your-secret-access-key
615
+ EOF
616
+
617
+ cat > ~/.aws/config << 'EOF'
618
+ [default]
619
+ region = us-east-1
620
+ output = json
621
+ EOF
622
+
623
+ chmod 600 ~/.aws/credentials
624
+ ```
625
+
626
+ ### Verify Configuration
627
+
628
+ Test that your credentials work:
629
+
630
+ ```bash
631
+ aws sts get-caller-identity
632
+ ```
633
+
634
+ Expected output:
635
+
636
+ ```json
637
+ {
638
+ "UserId": "AIDAEXAMPLEUSERID",
639
+ "Account": "123456789012",
640
+ "Arn": "arn:aws:iam::123456789012:user/your-username"
641
+ }
642
+ ```
643
+
644
+ ---
645
+
646
+ ## Common Issues
647
+
648
+ ### Issue: Multiple AWS CLI Versions Installed
649
+
650
+ **Symptoms**: Unexpected behavior, version mismatch between `aws --version` and actual functionality.
651
+
652
+ **Solution**: Check for multiple installations:
653
+
654
+ ```bash
655
+ which -a aws
656
+ ```
657
+
658
+ Remove older versions and ensure only one `aws` binary is in PATH.
659
+
660
+ ### Issue: SSL Certificate Errors
661
+
662
+ **Symptoms**: `SSL: CERTIFICATE_VERIFY_FAILED` errors when running commands.
663
+
664
+ **Solution**: Update your system's CA certificates:
665
+
666
+ ```bash
667
+ # Ubuntu/Debian
668
+ sudo DEBIAN_FRONTEND=noninteractive apt-get update -y && sudo DEBIAN_FRONTEND=noninteractive apt-get install -y ca-certificates
669
+
670
+ # Amazon Linux
671
+ sudo yum install -y ca-certificates
672
+
673
+ # macOS
674
+ brew install --quiet ca-certificates
675
+ ```
676
+
677
+ ### Issue: Command Output Pager Causes Issues in Scripts
678
+
679
+ **Symptoms**: AWS CLI commands hang or require manual intervention when run in scripts.
680
+
681
+ **Solution**: Disable the pager:
682
+
683
+ ```bash
684
+ export AWS_PAGER=""
685
+ ```
686
+
687
+ Or pass `--no-cli-pager` to individual commands.
688
+
689
+ ### Issue: Slow Command Execution
690
+
691
+ **Symptoms**: AWS CLI commands take several seconds to start.
692
+
693
+ **Solution**: This is often caused by IPv6 DNS resolution issues. Force IPv4:
694
+
695
+ ```bash
696
+ export AWS_EC2_METADATA_DISABLED=true
697
+ ```
698
+
699
+ ### Issue: Credentials Not Found
700
+
701
+ **Symptoms**: `Unable to locate credentials` error.
702
+
703
+ **Solution**: Verify credentials are configured:
704
+
705
+ ```bash
706
+ aws configure list
707
+ ```
708
+
709
+ Ensure credentials file exists and has correct permissions:
710
+
711
+ ```bash
712
+ ls -la ~/.aws/credentials
713
+ # Should show: -rw------- (600 permissions)
714
+ ```
715
+
716
+ ---
717
+
718
+ ## References
719
+
720
+ - [AWS CLI Official Installation Guide](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)
721
+ - [AWS CLI User Guide](https://docs.aws.amazon.com/cli/latest/userguide/)
722
+ - [AWS CLI v2 on Amazon Linux 2023](https://docs.aws.amazon.com/linux/al2023/ug/awscli2.html)
723
+ - [AWS CLI Snap Package](https://snapcraft.io/aws-cli)
724
+ - [AWS CLI Homebrew Formula](https://formulae.brew.sh/formula/awscli)
725
+ - [AWS CLI Chocolatey Package](https://community.chocolatey.org/packages/awscli)
726
+ - [AWS CLI v2 Announcement for Linux ARM](https://aws.amazon.com/blogs/developer/aws-cli-v2-now-available-for-linux-arm/)
727
+ - [AWS CLI GitHub Repository](https://github.com/aws/aws-cli)