@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,678 @@
1
+ # Installing apt-transport-https
2
+
3
+ ## Dependencies
4
+
5
+ ### macOS (Homebrew)
6
+ - **Required:** None
7
+ - **Optional:** None
8
+ - **Auto-installed:** None
9
+ - **Note:** This package is not applicable to macOS. macOS uses Homebrew for package management, which natively supports HTTPS repositories without any additional configuration.
10
+
11
+ ### Ubuntu (APT/Snap)
12
+ - **Required:** None (HTTPS support is built into APT since version 1.5, which is included in Ubuntu 18.04 and later)
13
+ - **Optional:** None
14
+ - **Auto-installed:** None
15
+ - **Note:** The `apt-transport-https` package exists as a dummy transitional package for backward compatibility. It is not required on modern Ubuntu systems.
16
+
17
+ ### Raspberry Pi OS (APT/Snap)
18
+ - **Required:** None (HTTPS support is built into APT since version 1.5, which is included in Raspberry Pi OS Buster and later)
19
+ - **Optional:** None
20
+ - **Auto-installed:** None
21
+ - **Note:** The `apt-transport-https` package exists as a dummy transitional package for backward compatibility. It is not required on modern Raspberry Pi OS systems.
22
+
23
+ ### Amazon Linux (DNF/YUM)
24
+ - **Required:** None
25
+ - **Optional:** None
26
+ - **Auto-installed:** None
27
+ - **Note:** This package is not applicable to Amazon Linux. DNF and YUM natively support HTTPS repositories without any additional packages.
28
+
29
+ ### Windows (Chocolatey/winget)
30
+ - **Required:** None
31
+ - **Optional:** None
32
+ - **Auto-installed:** None
33
+ - **Note:** This package is not applicable to Windows. Both Chocolatey and winget natively support HTTPS repositories without any additional configuration.
34
+
35
+ ### Git Bash (Manual/Portable)
36
+ - **Required:** None
37
+ - **Optional:** None
38
+ - **Auto-installed:** None
39
+ - **Note:** This package is not applicable to Git Bash. Git Bash does not use APT for package management.
40
+
41
+ ## Overview
42
+
43
+ `apt-transport-https` is a package that historically enabled the APT package manager on Debian-based Linux distributions (Ubuntu, Debian, Raspberry Pi OS) to download packages over HTTPS (HTTP Secure) connections. This provided encrypted, secure communication when fetching packages from repositories.
44
+
45
+ **Important Status Update:** As of APT version 1.5, HTTPS support is built directly into the `apt` package itself. The `apt-transport-https` package now exists only as a "dummy transitional package" for backward compatibility with older scripts and tutorials that still reference it. On modern systems, installing this package does nothing because the functionality it previously provided is already present.
46
+
47
+ ### When You Need This Package
48
+
49
+ You **do not need** to install `apt-transport-https` on:
50
+ - Ubuntu 18.04 (Bionic) or later
51
+ - Debian 10 (Buster) or later
52
+ - Raspberry Pi OS Buster or later
53
+ - Any system with APT version 1.5 or higher
54
+
55
+ You **may need** to install `apt-transport-https` on:
56
+ - Ubuntu 16.04 (Xenial) or earlier
57
+ - Debian 9 (Stretch) or earlier
58
+ - Legacy Raspberry Pi OS (Jessie or earlier)
59
+
60
+ ### Why This Package Exists
61
+
62
+ Before APT 1.5, the APT package manager only supported HTTP (unencrypted) and FTP protocols for downloading packages. To use HTTPS repositories, administrators had to install the `apt-transport-https` package, which added the HTTPS transport method.
63
+
64
+ This was particularly important when:
65
+ - Adding third-party repositories that required secure connections
66
+ - Working in environments with security compliance requirements
67
+ - Preventing man-in-the-middle attacks during package installation
68
+
69
+ ## Prerequisites
70
+
71
+ Before proceeding, determine if you actually need this package:
72
+
73
+ ```bash
74
+ apt --version
75
+ ```
76
+
77
+ If the version is 1.5 or higher, you do not need to install `apt-transport-https`. The functionality is already built into APT.
78
+
79
+ ## Platform-Specific Installation
80
+
81
+ ### macOS (Homebrew)
82
+
83
+ #### Prerequisites
84
+
85
+ None required.
86
+
87
+ #### Installation Steps
88
+
89
+ **This package is not applicable to macOS.**
90
+
91
+ macOS uses Homebrew as its package manager, not APT. Homebrew natively supports HTTPS for all package downloads and repository communications. No additional configuration or packages are needed.
92
+
93
+ If you need to configure HTTPS certificate handling for Homebrew (such as for corporate proxies), Homebrew provides the `ca-certificates` formula:
94
+
95
+ ```bash
96
+ brew install --quiet ca-certificates
97
+ ```
98
+
99
+ However, this is only necessary in special circumstances involving custom certificate authorities.
100
+
101
+ #### Verification
102
+
103
+ Homebrew HTTPS support can be verified by installing any package:
104
+
105
+ ```bash
106
+ brew install --quiet wget
107
+ ```
108
+
109
+ If the installation succeeds, HTTPS transport is working correctly.
110
+
111
+ #### Troubleshooting
112
+
113
+ **Problem**: SSL certificate errors when running Homebrew commands
114
+
115
+ **Solution**: Update your CA certificates and ensure your system time is correct:
116
+
117
+ ```bash
118
+ brew install --quiet ca-certificates
119
+ sudo sntp -sS time.apple.com
120
+ ```
121
+
122
+ ---
123
+
124
+ ### Ubuntu/Debian (APT)
125
+
126
+ #### Prerequisites
127
+
128
+ - Ubuntu 16.04 or later (18.04+ recommended)
129
+ - Debian 9 or later (10+ recommended)
130
+ - sudo privileges
131
+
132
+ #### Installation Steps
133
+
134
+ **For Ubuntu 18.04 / Debian 10 and later (APT 1.5+):**
135
+
136
+ No installation is required. HTTPS support is built into APT. Run the following command to verify:
137
+
138
+ ```bash
139
+ apt --version
140
+ ```
141
+
142
+ If the version is 1.5 or higher, skip to the Verification section.
143
+
144
+ **For Ubuntu 16.04 / Debian 9 and earlier (legacy systems):**
145
+
146
+ Run the following command to install the package:
147
+
148
+ ```bash
149
+ sudo DEBIAN_FRONTEND=noninteractive apt-get update -y && sudo DEBIAN_FRONTEND=noninteractive apt-get install -y apt-transport-https
150
+ ```
151
+
152
+ The `DEBIAN_FRONTEND=noninteractive` environment variable ensures the installation proceeds without prompting for user input, making it suitable for automated scripts and CI/CD pipelines.
153
+
154
+ **Note on legacy systems:** Ubuntu 16.04 reached end of standard support in April 2021 and end of Extended Security Maintenance in April 2024. Debian 9 reached end of long-term support in June 2022. Upgrading to a supported operating system version is strongly recommended.
155
+
156
+ #### Verification
157
+
158
+ Verify that APT can access HTTPS repositories:
159
+
160
+ ```bash
161
+ # Check APT version (1.5+ has built-in HTTPS support)
162
+ apt --version
163
+
164
+ # Test HTTPS repository access
165
+ sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
166
+ ```
167
+
168
+ If the update command succeeds without errors related to HTTPS transport, the system is correctly configured.
169
+
170
+ To explicitly verify HTTPS transport is available:
171
+
172
+ ```bash
173
+ ls /usr/lib/apt/methods/ | grep https
174
+ ```
175
+
176
+ On modern systems, you will see `https` listed, indicating the transport method is available.
177
+
178
+ #### Troubleshooting
179
+
180
+ **Problem**: Error message "The method driver /usr/lib/apt/methods/https could not be found"
181
+
182
+ **Solution**: This error occurs on legacy systems without HTTPS support. Install the package:
183
+
184
+ ```bash
185
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y apt-transport-https
186
+ ```
187
+
188
+ If APT itself cannot fetch the package (because your only repositories are HTTPS), temporarily add an HTTP mirror:
189
+
190
+ ```bash
191
+ echo "deb http://archive.ubuntu.com/ubuntu $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/temp-http.list
192
+ sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
193
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y apt-transport-https
194
+ sudo rm /etc/apt/sources.list.d/temp-http.list
195
+ sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
196
+ ```
197
+
198
+ **Problem**: SSL certificate verification errors
199
+
200
+ **Solution**: Install or update the CA certificates package:
201
+
202
+ ```bash
203
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y ca-certificates
204
+ sudo update-ca-certificates
205
+ ```
206
+
207
+ **Problem**: "apt-transport-https is already the newest version" but HTTPS still fails
208
+
209
+ **Solution**: On modern systems, the transitional package is empty. The actual HTTPS support comes from the `apt` package. Reinstall or update APT:
210
+
211
+ ```bash
212
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y --reinstall apt
213
+ ```
214
+
215
+ ---
216
+
217
+ ### Raspberry Pi OS (APT)
218
+
219
+ #### Prerequisites
220
+
221
+ - Raspberry Pi OS Buster (2019) or later recommended
222
+ - sudo privileges
223
+ - Raspberry Pi 2 or later (any architecture)
224
+
225
+ #### Installation Steps
226
+
227
+ **For Raspberry Pi OS Buster (2019) and later:**
228
+
229
+ No installation is required. HTTPS support is built into APT. Run the following command to verify:
230
+
231
+ ```bash
232
+ apt --version
233
+ ```
234
+
235
+ If the version is 1.5 or higher, skip to the Verification section.
236
+
237
+ **For Raspberry Pi OS Stretch (2017) and earlier (legacy systems):**
238
+
239
+ Run the following command to install the package:
240
+
241
+ ```bash
242
+ sudo DEBIAN_FRONTEND=noninteractive apt-get update -y && sudo DEBIAN_FRONTEND=noninteractive apt-get install -y apt-transport-https
243
+ ```
244
+
245
+ **Important:** Raspberry Pi OS Jessie and Stretch are no longer supported. These legacy versions may have issues accessing current repositories. Upgrading to Raspberry Pi OS Bookworm or later is strongly recommended.
246
+
247
+ **ARM Architecture Note:** The `apt-transport-https` package is available for both armhf (32-bit) and arm64 (64-bit) architectures. The installation command is identical regardless of which Raspberry Pi model or architecture you are using.
248
+
249
+ #### Verification
250
+
251
+ Verify that APT can access HTTPS repositories:
252
+
253
+ ```bash
254
+ # Check APT version
255
+ apt --version
256
+
257
+ # Test HTTPS repository access
258
+ sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
259
+ ```
260
+
261
+ If the update completes successfully, HTTPS transport is working.
262
+
263
+ #### Troubleshooting
264
+
265
+ **Problem**: "E: The method driver /usr/lib/apt/methods/https could not be found"
266
+
267
+ **Solution**: This indicates a very old Raspberry Pi OS installation. Install the package using an HTTP mirror:
268
+
269
+ ```bash
270
+ echo "deb http://archive.raspberrypi.org/debian $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/temp-http.list
271
+ sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
272
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y apt-transport-https ca-certificates
273
+ sudo rm /etc/apt/sources.list.d/temp-http.list
274
+ sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
275
+ ```
276
+
277
+ **Problem**: 404 errors when accessing repositories on old Raspberry Pi OS
278
+
279
+ **Solution**: Old Raspberry Pi OS versions (Jessie, Stretch) have been archived. Update your sources.list to use the archive:
280
+
281
+ ```bash
282
+ sudo sed -i 's|raspbian.raspberrypi.org|legacy.raspbian.org|g' /etc/apt/sources.list
283
+ sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
284
+ ```
285
+
286
+ However, upgrading to a current Raspberry Pi OS version is the recommended solution.
287
+
288
+ **Problem**: Package installation fails with SSL handshake errors
289
+
290
+ **Solution**: The system time may be incorrect (common on Raspberry Pi after long periods without power). Synchronize the time:
291
+
292
+ ```bash
293
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y ntpdate
294
+ sudo ntpdate pool.ntp.org
295
+ ```
296
+
297
+ Or, if ntpdate is not available:
298
+
299
+ ```bash
300
+ sudo date -s "$(wget -qSO- --max-redirect=0 google.com 2>&1 | grep Date: | cut -d' ' -f5-8)Z"
301
+ ```
302
+
303
+ ---
304
+
305
+ ### Amazon Linux (DNF/YUM)
306
+
307
+ #### Prerequisites
308
+
309
+ - Amazon Linux 2 or Amazon Linux 2023
310
+ - sudo privileges
311
+
312
+ #### Installation Steps
313
+
314
+ **This package is not applicable to Amazon Linux.**
315
+
316
+ Amazon Linux uses DNF (Amazon Linux 2023) or YUM (Amazon Linux 2) as its package manager, not APT. Both DNF and YUM natively support HTTPS repositories without any additional packages or configuration.
317
+
318
+ HTTPS repository support is built into these package managers and enabled by default. Amazon Linux repositories are accessed over HTTPS automatically.
319
+
320
+ #### Verification
321
+
322
+ Verify that DNF/YUM can access HTTPS repositories:
323
+
324
+ **For Amazon Linux 2023 (DNF):**
325
+
326
+ ```bash
327
+ sudo dnf repolist -v 2>&1 | grep -i https
328
+ ```
329
+
330
+ **For Amazon Linux 2 (YUM):**
331
+
332
+ ```bash
333
+ sudo yum repolist -v 2>&1 | grep -i https
334
+ ```
335
+
336
+ Both commands should show repository URLs using the `https://` protocol.
337
+
338
+ #### Troubleshooting
339
+
340
+ **Problem**: SSL certificate errors when accessing repositories
341
+
342
+ **Solution**: Update the CA certificates:
343
+
344
+ ```bash
345
+ # Amazon Linux 2023
346
+ sudo dnf install -y ca-certificates
347
+ sudo update-ca-trust
348
+
349
+ # Amazon Linux 2
350
+ sudo yum install -y ca-certificates
351
+ sudo update-ca-trust
352
+ ```
353
+
354
+ **Problem**: Repository access fails with "SSL connect error"
355
+
356
+ **Solution**: This may indicate an issue with the system's SSL configuration. Verify the SSL libraries are installed:
357
+
358
+ ```bash
359
+ # Amazon Linux 2023
360
+ sudo dnf install -y openssl
361
+
362
+ # Amazon Linux 2
363
+ sudo yum install -y openssl
364
+ ```
365
+
366
+ ---
367
+
368
+ ### Windows (Chocolatey/winget)
369
+
370
+ #### Prerequisites
371
+
372
+ - Windows 10 or Windows 11
373
+ - Administrator privileges
374
+
375
+ #### Installation Steps
376
+
377
+ **This package is not applicable to Windows.**
378
+
379
+ Windows uses Chocolatey or winget for command-line package management, not APT. Both package managers natively support HTTPS for all operations:
380
+
381
+ - **Chocolatey**: Accesses the Chocolatey Community Repository and all configured sources over HTTPS by default
382
+ - **winget**: Accesses the Windows Package Manager repository over HTTPS by default
383
+
384
+ No additional configuration or packages are required for HTTPS support.
385
+
386
+ #### Verification
387
+
388
+ Verify that Chocolatey can access HTTPS repositories:
389
+
390
+ ```powershell
391
+ choco source list
392
+ ```
393
+
394
+ All sources should show HTTPS URLs.
395
+
396
+ Verify that winget can access HTTPS repositories:
397
+
398
+ ```powershell
399
+ winget source list
400
+ ```
401
+
402
+ The msstore and winget sources use HTTPS by default.
403
+
404
+ #### Troubleshooting
405
+
406
+ **Problem**: SSL/TLS errors when using Chocolatey
407
+
408
+ **Solution**: Ensure TLS 1.2 is enabled. Run in PowerShell:
409
+
410
+ ```powershell
411
+ [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072
412
+ ```
413
+
414
+ To make this permanent, add it to your PowerShell profile or set it system-wide via Group Policy.
415
+
416
+ **Problem**: Certificate errors when accessing repositories
417
+
418
+ **Solution**: Update the Windows root certificates:
419
+
420
+ ```powershell
421
+ certutil -generateSSTFromWU roots.sst
422
+ certutil -addstore -f Root roots.sst
423
+ del roots.sst
424
+ ```
425
+
426
+ ---
427
+
428
+ ### WSL (Ubuntu)
429
+
430
+ #### Prerequisites
431
+
432
+ - Windows 10 version 2004 or later, or Windows 11
433
+ - WSL 2 with Ubuntu distribution installed
434
+ - sudo privileges within WSL
435
+
436
+ #### Installation Steps
437
+
438
+ WSL Ubuntu uses APT as its package manager, so the same rules apply as for native Ubuntu.
439
+
440
+ **For Ubuntu 18.04 / 20.04 / 22.04 / 24.04 in WSL:**
441
+
442
+ No installation is required. HTTPS support is built into APT version 1.5 and later, which is included in all supported Ubuntu WSL distributions.
443
+
444
+ Verify your APT version:
445
+
446
+ ```bash
447
+ apt --version
448
+ ```
449
+
450
+ If the version is 1.5 or higher (which it will be on any modern Ubuntu WSL distribution), HTTPS support is already available.
451
+
452
+ **For legacy Ubuntu versions in WSL (16.04 or earlier):**
453
+
454
+ Run the following command to install the package:
455
+
456
+ ```bash
457
+ sudo DEBIAN_FRONTEND=noninteractive apt-get update -y && sudo DEBIAN_FRONTEND=noninteractive apt-get install -y apt-transport-https
458
+ ```
459
+
460
+ **Note:** Ubuntu 16.04 is no longer supported. Install a current Ubuntu version in WSL:
461
+
462
+ ```powershell
463
+ wsl --install -d Ubuntu
464
+ ```
465
+
466
+ #### Verification
467
+
468
+ Verify that APT can access HTTPS repositories:
469
+
470
+ ```bash
471
+ sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
472
+ ```
473
+
474
+ If the update completes successfully, HTTPS transport is working correctly.
475
+
476
+ #### Troubleshooting
477
+
478
+ **Problem**: SSL errors when running apt-get update in WSL
479
+
480
+ **Solution**: The Windows host's time may not be synchronized with WSL. Sync the time:
481
+
482
+ ```bash
483
+ sudo hwclock -s
484
+ ```
485
+
486
+ Or manually set the time:
487
+
488
+ ```bash
489
+ sudo ntpdate pool.ntp.org
490
+ ```
491
+
492
+ If ntpdate is not installed:
493
+
494
+ ```bash
495
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y ntpdate
496
+ sudo ntpdate pool.ntp.org
497
+ ```
498
+
499
+ **Problem**: Network issues preventing HTTPS access
500
+
501
+ **Solution**: WSL networking can sometimes have issues. Restart WSL:
502
+
503
+ ```powershell
504
+ # From Windows PowerShell
505
+ wsl --shutdown
506
+ wsl
507
+ ```
508
+
509
+ ---
510
+
511
+ ### Git Bash (Manual/Portable)
512
+
513
+ #### Prerequisites
514
+
515
+ - Windows 10 or Windows 11
516
+ - Git Bash installed (comes with Git for Windows)
517
+
518
+ #### Installation Steps
519
+
520
+ **This package is not applicable to Git Bash.**
521
+
522
+ Git Bash is a terminal emulator for Windows that provides a Unix-like command-line environment. It does not include or use APT for package management. Git Bash itself does not manage system packages; it provides access to Git and Unix utilities.
523
+
524
+ If you need APT and Debian-based package management functionality in a Windows environment, use WSL (Windows Subsystem for Linux) instead. See the WSL section above.
525
+
526
+ #### Verification
527
+
528
+ Not applicable.
529
+
530
+ #### Troubleshooting
531
+
532
+ **Problem**: You need APT functionality in Git Bash
533
+
534
+ **Solution**: APT is not available in Git Bash. Use one of these alternatives:
535
+
536
+ 1. **WSL (Recommended)**: Install Windows Subsystem for Linux with Ubuntu:
537
+
538
+ ```powershell
539
+ # From Windows PowerShell (Administrator)
540
+ wsl --install -d Ubuntu
541
+ ```
542
+
543
+ 2. **Chocolatey**: Use Chocolatey for Windows package management from Git Bash:
544
+
545
+ ```bash
546
+ # From Git Bash (run Git Bash as Administrator)
547
+ choco install <package-name> -y
548
+ ```
549
+
550
+ 3. **winget**: Use winget for Windows package management:
551
+
552
+ ```bash
553
+ # From Git Bash
554
+ winget install --id <package.id> --silent --accept-package-agreements --accept-source-agreements
555
+ ```
556
+
557
+ ---
558
+
559
+ ## Post-Installation Configuration
560
+
561
+ ### Verifying HTTPS Repository Access
562
+
563
+ After ensuring HTTPS support is available (either built-in or via the transitional package), you can add HTTPS repositories. Here is an example of adding a typical third-party repository:
564
+
565
+ ```bash
566
+ # Add a GPG key (example using Docker's key)
567
+ sudo install -m 0755 -d /etc/apt/keyrings
568
+ sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
569
+ sudo chmod a+r /etc/apt/keyrings/docker.asc
570
+
571
+ # Add the repository
572
+ echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
573
+
574
+ # Update package lists
575
+ sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
576
+ ```
577
+
578
+ ### Ensuring CA Certificates Are Current
579
+
580
+ For HTTPS to work properly, your system needs up-to-date CA (Certificate Authority) certificates. Update them with:
581
+
582
+ ```bash
583
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y ca-certificates
584
+ sudo update-ca-certificates
585
+ ```
586
+
587
+ ---
588
+
589
+ ## Common Issues
590
+
591
+ ### Issue: "apt-transport-https is already installed" Warning
592
+
593
+ **Symptoms**: When following older tutorials, you see a message that `apt-transport-https` is already the newest version, but the package appears to do nothing.
594
+
595
+ **Explanation**: On modern systems (APT 1.5+), this is expected behavior. The package is a dummy transitional package that exists only for backward compatibility. The actual HTTPS functionality is built into the `apt` package.
596
+
597
+ **Solution**: No action needed. HTTPS support is already working. You can safely ignore this message or remove the line that installs `apt-transport-https` from your scripts.
598
+
599
+ ### Issue: Scripts Fail When apt-transport-https Is Unavailable
600
+
601
+ **Symptoms**: Older automation scripts fail because they cannot install `apt-transport-https` from an HTTPS repository (circular dependency).
602
+
603
+ **Solution**: Modern scripts should check the APT version before attempting to install:
604
+
605
+ ```bash
606
+ APT_VERSION=$(apt --version | grep -oP '\d+\.\d+' | head -1)
607
+ if [ "$(echo "$APT_VERSION < 1.5" | bc)" -eq 1 ]; then
608
+ # Legacy system - need apt-transport-https
609
+ sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
610
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y apt-transport-https
611
+ fi
612
+ ```
613
+
614
+ Or simply attempt the installation and ignore failures on modern systems:
615
+
616
+ ```bash
617
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y apt-transport-https 2>/dev/null || true
618
+ ```
619
+
620
+ ### Issue: HTTPS Repositories Still Fail After Installation
621
+
622
+ **Symptoms**: After installing `apt-transport-https`, HTTPS repositories still fail with connection or certificate errors.
623
+
624
+ **Solutions**:
625
+
626
+ 1. **Update CA certificates**:
627
+
628
+ ```bash
629
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y ca-certificates
630
+ sudo update-ca-certificates
631
+ ```
632
+
633
+ 2. **Check system time** (incorrect time causes certificate validation failures):
634
+
635
+ ```bash
636
+ date
637
+ sudo ntpdate pool.ntp.org
638
+ ```
639
+
640
+ 3. **Verify network connectivity**:
641
+
642
+ ```bash
643
+ curl -I https://archive.ubuntu.com
644
+ ```
645
+
646
+ 4. **Check for proxy issues** (corporate environments):
647
+
648
+ ```bash
649
+ export https_proxy=http://your-proxy:port
650
+ sudo -E apt-get update
651
+ ```
652
+
653
+ ### Issue: Cannot Remove apt-transport-https
654
+
655
+ **Symptoms**: Attempting to remove the package warns about breaking dependencies.
656
+
657
+ **Explanation**: Some older packages may still list `apt-transport-https` as a dependency even though it is not technically required on modern systems.
658
+
659
+ **Solution**: The package uses minimal disk space (it is essentially empty on modern systems). There is no harm in leaving it installed. If you must remove it:
660
+
661
+ ```bash
662
+ sudo DEBIAN_FRONTEND=noninteractive apt-get remove -y apt-transport-https --allow-remove-essential
663
+ ```
664
+
665
+ However, this is not recommended as it may break dependency resolution for some packages.
666
+
667
+ ---
668
+
669
+ ## References
670
+
671
+ - [Ubuntu Manpage: apt-transport-https](https://manpages.ubuntu.com/manpages/bionic/man1/apt-transport-https.1.html)
672
+ - [Debian Package: apt-transport-https](https://packages.debian.org/sid/apt-transport-https)
673
+ - [Ubuntu Package Search: apt-transport-https](https://packages.ubuntu.com/search?keywords=apt-transport-https)
674
+ - [Cloudflare Blog: A Tale of Two APT Transports](https://blog.cloudflare.com/apt-transports/)
675
+ - [Raspberry Pi Forums: apt-transport-https Discussion](https://forums.raspberrypi.com/viewtopic.php?t=311075)
676
+ - [GeeksforGeeks: How to Install apt-transport-https on Ubuntu](https://www.geeksforgeeks.org/installation-guide/how-to-install-apt-transport-https-package-on-ubuntu/)
677
+ - [Homebrew Formulae: ca-certificates](https://formulae.brew.sh/formula/ca-certificates)
678
+ - [Chocolatey Documentation: Setup/Install](https://docs.chocolatey.org/en-us/choco/setup/)