@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,699 @@
1
+ # Installing AppCleaner
2
+
3
+ ## Overview
4
+
5
+ AppCleaner is a small, free application that allows you to thoroughly uninstall unwanted applications by finding and removing all associated files, preferences, caches, and hidden data that standard uninstallation methods leave behind. When you install an application on macOS, it distributes files throughout your system, using disk space unnecessarily. AppCleaner finds all these files and safely deletes them.
6
+
7
+ **Important Platform Limitation:** AppCleaner by FreeMacSoft is a **macOS-only** application. There is no official version for Windows, Linux, or any other operating system. For other platforms, this documentation covers equivalent application uninstaller tools that provide similar functionality.
8
+
9
+ | Platform | Tool | Description |
10
+ |----------|------|-------------|
11
+ | macOS | AppCleaner | FreeMacSoft's free application uninstaller |
12
+ | Windows | Bulk Crap Uninstaller | Open-source bulk application uninstaller |
13
+ | Linux | apt purge / apt autoremove | Built-in package manager cleanup commands |
14
+
15
+ ## Dependencies
16
+
17
+ ### macOS (Homebrew)
18
+ - **Required:**
19
+ - Homebrew - Install via `dev install homebrew` or from [brew.sh](https://brew.sh)
20
+ - **Optional:** None
21
+ - **Auto-installed:** None
22
+
23
+ ### Ubuntu (APT/Snap)
24
+ - **Required:** None (installation not supported on this platform)
25
+ - **Optional:** None
26
+ - **Auto-installed:** None
27
+ - **Note:** AppCleaner is macOS-only. Ubuntu uses built-in APT commands (`apt purge`, `apt autoremove`) which are pre-installed with the operating system.
28
+
29
+ ### Raspberry Pi OS (APT/Snap)
30
+ - **Required:** None (installation not supported on this platform)
31
+ - **Optional:** None
32
+ - **Auto-installed:** None
33
+ - **Note:** AppCleaner is macOS-only. Raspberry Pi OS uses built-in APT commands (`apt purge`, `apt autoremove`) which are pre-installed with the operating system.
34
+
35
+ ### Amazon Linux (DNF/YUM)
36
+ - **Required:** None (installation not supported on this platform)
37
+ - **Optional:** None
38
+ - **Auto-installed:** None
39
+ - **Note:** AppCleaner is macOS-only. Amazon Linux uses built-in DNF/YUM commands (`dnf remove`, `dnf autoremove`) which are pre-installed with the operating system.
40
+
41
+ ### Windows (Chocolatey/winget)
42
+ - **Required:**
43
+ - At least one of the following package managers:
44
+ - winget (Windows Package Manager) - Install via Microsoft Store (App Installer) or pre-installed on Windows 10 1809+
45
+ - Chocolatey - Install via `dev install chocolatey` or from [chocolatey.org](https://chocolatey.org/install)
46
+ - **Optional:** None
47
+ - **Auto-installed:**
48
+ - .NET 6 Desktop Runtime - Automatically installed by Bulk Crap Uninstaller's installer if not already present
49
+
50
+ ### Git Bash (Manual/Portable)
51
+ - **Required:**
52
+ - `curl` - Pre-installed with Git Bash (part of Git for Windows)
53
+ - `unzip` - Pre-installed with Git Bash (part of Git for Windows)
54
+ - **Optional:**
55
+ - PowerShell - For alternative installation via winget from Git Bash (pre-installed on Windows)
56
+ - **Auto-installed:** None
57
+ - **Note:** The portable version of Bulk Crap Uninstaller includes the .NET 6 runtime, making it fully self-contained.
58
+
59
+ ## Prerequisites
60
+
61
+ Before installing, ensure you have:
62
+
63
+ 1. **Administrator Access**: Required for installation on all platforms
64
+ 2. **Package Manager**: The appropriate package manager for your platform must be installed:
65
+ - macOS: Homebrew
66
+ - Windows: Chocolatey or winget
67
+ - Ubuntu/Debian: APT (pre-installed)
68
+ - Amazon Linux: DNF or YUM (pre-installed)
69
+
70
+ ---
71
+
72
+ ## Platform-Specific Installation
73
+
74
+ ### macOS (Homebrew)
75
+
76
+ AppCleaner is the native solution for macOS and is available as a Homebrew cask.
77
+
78
+ #### Prerequisites
79
+
80
+ - macOS 10.15 (Catalina) or later for version 3.6.8
81
+ - macOS 10.13 (High Sierra) users should use version 3.6
82
+ - Homebrew package manager installed
83
+ - 64-bit processor (Intel or Apple Silicon)
84
+
85
+ Verify Homebrew is installed:
86
+
87
+ ```bash
88
+ brew --version
89
+ ```
90
+
91
+ If Homebrew is not installed, install it first using `dev install homebrew`.
92
+
93
+ #### Installation Steps
94
+
95
+ Run the following command to install AppCleaner:
96
+
97
+ ```bash
98
+ brew install --cask --quiet appcleaner
99
+ ```
100
+
101
+ **Explanation of flags:**
102
+ - `--cask`: Indicates this is a macOS application (not a CLI formula)
103
+ - `--quiet`: Suppresses output for non-interactive installation
104
+
105
+ The installation downloads AppCleaner and installs it to `/Applications/AppCleaner.app`.
106
+
107
+ #### Verification
108
+
109
+ Confirm the installation succeeded:
110
+
111
+ ```bash
112
+ ls -la "/Applications/AppCleaner.app" && echo "AppCleaner is installed"
113
+ ```
114
+
115
+ You can also verify by checking the Homebrew list:
116
+
117
+ ```bash
118
+ brew list --cask | grep appcleaner
119
+ ```
120
+
121
+ #### Troubleshooting
122
+
123
+ **Installation fails with permission errors:**
124
+
125
+ ```bash
126
+ # Reset Homebrew cask cache and retry
127
+ brew cleanup
128
+ brew install --cask --quiet appcleaner
129
+ ```
130
+
131
+ **AppCleaner fails to open with "cannot be opened" error:**
132
+
133
+ This occurs when macOS Gatekeeper blocks the application:
134
+
135
+ ```bash
136
+ xattr -cr /Applications/AppCleaner.app
137
+ ```
138
+
139
+ **Need to downgrade for older macOS version:**
140
+
141
+ For macOS High Sierra (10.13):
142
+ ```bash
143
+ # Download version 3.6 directly
144
+ curl -L -o ~/Downloads/AppCleaner3.6.zip "https://freemacsoft.net/downloads/AppCleaner_3.6.zip"
145
+ unzip -q ~/Downloads/AppCleaner3.6.zip -d /Applications/
146
+ rm ~/Downloads/AppCleaner3.6.zip
147
+ ```
148
+
149
+ ---
150
+
151
+ ### Ubuntu/Debian (APT)
152
+
153
+ **AppCleaner is NOT available on Ubuntu or Debian.** It is a macOS-only application.
154
+
155
+ However, Ubuntu and Debian have built-in package management tools that handle complete application removal, including configuration files and dependencies.
156
+
157
+ #### Prerequisites
158
+
159
+ - Ubuntu 18.04 or later / Debian 10 or later
160
+ - sudo privileges
161
+
162
+ #### Installation Steps
163
+
164
+ No installation is required. The APT package manager includes built-in functionality for complete application removal.
165
+
166
+ **To completely remove an application and its configuration files:**
167
+
168
+ ```bash
169
+ sudo DEBIAN_FRONTEND=noninteractive apt-get purge -y <package-name>
170
+ ```
171
+
172
+ **To remove unused dependencies left behind by removed applications:**
173
+
174
+ ```bash
175
+ sudo DEBIAN_FRONTEND=noninteractive apt-get autoremove -y
176
+ ```
177
+
178
+ **To perform a complete cleanup (purge package and remove orphaned dependencies):**
179
+
180
+ ```bash
181
+ sudo DEBIAN_FRONTEND=noninteractive apt-get purge -y <package-name> && \
182
+ sudo DEBIAN_FRONTEND=noninteractive apt-get autoremove -y --purge
183
+ ```
184
+
185
+ **Explanation of flags:**
186
+ - `DEBIAN_FRONTEND=noninteractive`: Prevents any interactive prompts
187
+ - `purge`: Removes the package AND its configuration files (unlike `remove` which keeps configs)
188
+ - `-y`: Automatically answers "yes" to confirmation prompts
189
+ - `autoremove`: Removes packages that were installed as dependencies but are no longer needed
190
+ - `--purge`: When used with autoremove, also removes configuration files of orphaned packages
191
+
192
+ #### Verification
193
+
194
+ Verify the package removal tools are available:
195
+
196
+ ```bash
197
+ apt-get --help | grep -E "(purge|autoremove)" && echo "APT removal tools available"
198
+ ```
199
+
200
+ #### Troubleshooting
201
+
202
+ **Finding the correct package name:**
203
+
204
+ ```bash
205
+ dpkg --list | grep -i <application-name>
206
+ ```
207
+
208
+ **Listing all manually installed packages:**
209
+
210
+ ```bash
211
+ apt-mark showmanual
212
+ ```
213
+
214
+ **Removing Snap packages completely:**
215
+
216
+ Snap packages are removed differently:
217
+
218
+ ```bash
219
+ sudo snap remove <package-name>
220
+ ```
221
+
222
+ ---
223
+
224
+ ### Raspberry Pi OS (APT)
225
+
226
+ **AppCleaner is NOT available on Raspberry Pi OS.** The same APT-based cleanup approach used for Ubuntu/Debian applies here.
227
+
228
+ #### Prerequisites
229
+
230
+ - Raspberry Pi OS (Bullseye or later recommended)
231
+ - sudo privileges
232
+
233
+ #### Installation Steps
234
+
235
+ No installation is required. Use the built-in APT commands for complete application removal.
236
+
237
+ **To completely remove an application and its configuration files:**
238
+
239
+ ```bash
240
+ sudo DEBIAN_FRONTEND=noninteractive apt-get purge -y <package-name>
241
+ ```
242
+
243
+ **To remove unused dependencies:**
244
+
245
+ ```bash
246
+ sudo DEBIAN_FRONTEND=noninteractive apt-get autoremove -y --purge
247
+ ```
248
+
249
+ **To clean up downloaded package files and free disk space:**
250
+
251
+ ```bash
252
+ sudo DEBIAN_FRONTEND=noninteractive apt-get clean
253
+ ```
254
+
255
+ #### ARM-Specific Considerations
256
+
257
+ Raspberry Pi uses ARM architecture. This does not affect the APT removal commands, which work identically across architectures.
258
+
259
+ #### Verification
260
+
261
+ Confirm APT tools are working:
262
+
263
+ ```bash
264
+ apt-get --version && echo "APT is available"
265
+ ```
266
+
267
+ #### Troubleshooting
268
+
269
+ **Disk space issues on Raspberry Pi:**
270
+
271
+ Clean all cached package files to free space:
272
+
273
+ ```bash
274
+ sudo DEBIAN_FRONTEND=noninteractive apt-get clean && \
275
+ sudo DEBIAN_FRONTEND=noninteractive apt-get autoclean
276
+ ```
277
+
278
+ **Broken packages preventing removal:**
279
+
280
+ ```bash
281
+ sudo dpkg --configure -a
282
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -f -y
283
+ ```
284
+
285
+ ---
286
+
287
+ ### Amazon Linux/RHEL (YUM/DNF)
288
+
289
+ **AppCleaner is NOT available on Amazon Linux or RHEL.** Use the built-in package manager commands for complete application removal.
290
+
291
+ #### Prerequisites
292
+
293
+ - Amazon Linux 2, Amazon Linux 2023, RHEL 7/8/9, or compatible
294
+ - sudo privileges
295
+
296
+ #### Installation Steps
297
+
298
+ No installation is required. Use DNF (modern) or YUM (legacy) for complete package removal.
299
+
300
+ **For Amazon Linux 2023 / RHEL 8+ (DNF):**
301
+
302
+ ```bash
303
+ # Remove a package completely (including dependencies if safe)
304
+ sudo dnf remove -y <package-name>
305
+
306
+ # Remove orphaned dependencies
307
+ sudo dnf autoremove -y
308
+ ```
309
+
310
+ **For Amazon Linux 2 / RHEL 7 (YUM):**
311
+
312
+ ```bash
313
+ # Remove a package
314
+ sudo yum remove -y <package-name>
315
+
316
+ # Remove orphaned dependencies
317
+ sudo yum autoremove -y
318
+ ```
319
+
320
+ **Explanation of flags:**
321
+ - `-y`: Automatically answers "yes" to all prompts
322
+
323
+ #### Verification
324
+
325
+ Confirm the package manager is available:
326
+
327
+ ```bash
328
+ # For DNF-based systems
329
+ dnf --version && echo "DNF is available"
330
+
331
+ # For YUM-based systems
332
+ yum --version && echo "YUM is available"
333
+ ```
334
+
335
+ #### Troubleshooting
336
+
337
+ **Finding installed packages:**
338
+
339
+ ```bash
340
+ # DNF
341
+ dnf list installed | grep -i <application-name>
342
+
343
+ # YUM
344
+ yum list installed | grep -i <application-name>
345
+ ```
346
+
347
+ **Cleaning package cache:**
348
+
349
+ ```bash
350
+ # DNF
351
+ sudo dnf clean all
352
+
353
+ # YUM
354
+ sudo yum clean all
355
+ ```
356
+
357
+ ---
358
+
359
+ ### Windows (Chocolatey/winget)
360
+
361
+ **AppCleaner is NOT available on Windows.** Use **Bulk Crap Uninstaller (BCUninstaller)** as the equivalent tool. BCUninstaller is a free, open-source bulk application uninstaller that excels at removing large numbers of applications with minimal user input.
362
+
363
+ #### Prerequisites
364
+
365
+ - Windows 10 version 1903 or later (Windows 7 SP1 with Platform Updates minimum)
366
+ - winget (Windows Package Manager) or Chocolatey installed
367
+ - Administrator privileges
368
+ - .NET 6 Desktop Runtime (installed automatically if missing)
369
+
370
+ Verify winget is available:
371
+
372
+ ```powershell
373
+ winget --version
374
+ ```
375
+
376
+ Or verify Chocolatey:
377
+
378
+ ```powershell
379
+ choco --version
380
+ ```
381
+
382
+ #### Installation Steps
383
+
384
+ **Option A: Install using winget (Recommended):**
385
+
386
+ Open PowerShell or Command Prompt as Administrator and run:
387
+
388
+ ```powershell
389
+ winget install --id Klocman.BulkCrapUninstaller --silent --accept-package-agreements --accept-source-agreements
390
+ ```
391
+
392
+ **Explanation of flags:**
393
+ - `--id Klocman.BulkCrapUninstaller`: Specifies the exact package identifier
394
+ - `--silent`: Suppresses the installer UI completely
395
+ - `--accept-package-agreements`: Automatically accepts the package license
396
+ - `--accept-source-agreements`: Automatically accepts the source terms
397
+
398
+ **Option B: Install using Chocolatey:**
399
+
400
+ ```powershell
401
+ choco install bulk-crap-uninstaller -y
402
+ ```
403
+
404
+ **Explanation of flags:**
405
+ - `-y`: Automatically confirms all prompts
406
+
407
+ #### Verification
408
+
409
+ Confirm Bulk Crap Uninstaller is installed:
410
+
411
+ ```powershell
412
+ # Check via winget
413
+ winget list --id Klocman.BulkCrapUninstaller
414
+
415
+ # Or check if the executable exists
416
+ if (Test-Path "$env:ProgramFiles\BCUninstaller\BCUninstaller.exe") {
417
+ Write-Host "Bulk Crap Uninstaller is installed"
418
+ } else {
419
+ Write-Host "Bulk Crap Uninstaller is NOT installed"
420
+ }
421
+ ```
422
+
423
+ #### Troubleshooting
424
+
425
+ **winget installation fails:**
426
+
427
+ Reset winget sources and retry:
428
+
429
+ ```powershell
430
+ winget source reset --force
431
+ winget install --id Klocman.BulkCrapUninstaller --silent --accept-package-agreements --accept-source-agreements
432
+ ```
433
+
434
+ **Chocolatey installation fails:**
435
+
436
+ Clear the Chocolatey cache:
437
+
438
+ ```powershell
439
+ choco cache remove
440
+ choco install bulk-crap-uninstaller -y --force
441
+ ```
442
+
443
+ **.NET 6 Runtime missing:**
444
+
445
+ The installer should automatically install .NET 6 if missing. If it fails:
446
+
447
+ ```powershell
448
+ winget install --id Microsoft.DotNet.DesktopRuntime.6 --silent --accept-package-agreements --accept-source-agreements
449
+ ```
450
+
451
+ ---
452
+
453
+ ### WSL (Ubuntu)
454
+
455
+ **AppCleaner cannot run in WSL.** WSL runs a Linux environment where AppCleaner (a macOS application) is not compatible.
456
+
457
+ #### Recommended Approach
458
+
459
+ Use the standard APT commands within WSL for managing Linux packages, and install Bulk Crap Uninstaller on the Windows host for managing Windows applications.
460
+
461
+ #### Prerequisites
462
+
463
+ - WSL 2 with Ubuntu installed
464
+ - sudo privileges within WSL
465
+
466
+ #### Installation Steps
467
+
468
+ **For Linux packages within WSL, use APT:**
469
+
470
+ ```bash
471
+ # Completely remove a package and its configuration
472
+ sudo DEBIAN_FRONTEND=noninteractive apt-get purge -y <package-name>
473
+
474
+ # Remove orphaned dependencies
475
+ sudo DEBIAN_FRONTEND=noninteractive apt-get autoremove -y --purge
476
+ ```
477
+
478
+ **To install Bulk Crap Uninstaller on the Windows host from within WSL:**
479
+
480
+ ```bash
481
+ powershell.exe -Command "winget install --id Klocman.BulkCrapUninstaller --silent --accept-package-agreements --accept-source-agreements"
482
+ ```
483
+
484
+ #### Verification
485
+
486
+ Verify APT is available in WSL:
487
+
488
+ ```bash
489
+ apt-get --version && echo "APT is available in WSL"
490
+ ```
491
+
492
+ Check if Bulk Crap Uninstaller is installed on Windows host:
493
+
494
+ ```bash
495
+ powershell.exe -Command "Test-Path 'C:\Program Files\BCUninstaller\BCUninstaller.exe'"
496
+ ```
497
+
498
+ #### Troubleshooting
499
+
500
+ **PowerShell command fails from WSL:**
501
+
502
+ Use the full path to PowerShell:
503
+
504
+ ```bash
505
+ /mnt/c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe -Command "winget install --id Klocman.BulkCrapUninstaller --silent --accept-package-agreements --accept-source-agreements"
506
+ ```
507
+
508
+ ---
509
+
510
+ ### Git Bash (Manual/Portable)
511
+
512
+ Git Bash runs within Windows, so use the portable version of Bulk Crap Uninstaller for a self-contained solution that does not require installation.
513
+
514
+ #### Prerequisites
515
+
516
+ - Windows 10 or later
517
+ - Git Bash installed
518
+ - curl available in Git Bash (included by default)
519
+ - Sufficient disk space (approximately 200 MB for the portable version)
520
+
521
+ #### Installation Steps
522
+
523
+ Download and extract the portable version of Bulk Crap Uninstaller:
524
+
525
+ ```bash
526
+ # Create installation directory
527
+ mkdir -p "$HOME/Apps/BCUninstaller"
528
+
529
+ # Download the portable version
530
+ curl -L -o "$HOME/Apps/BCUninstaller/BCUninstaller_portable.zip" \
531
+ "https://github.com/Klocman/Bulk-Crap-Uninstaller/releases/download/v5.9/BCUninstaller_5.9.0_portable.zip"
532
+
533
+ # Extract the archive
534
+ unzip -q "$HOME/Apps/BCUninstaller/BCUninstaller_portable.zip" -d "$HOME/Apps/BCUninstaller/"
535
+
536
+ # Remove the zip file to save space
537
+ rm "$HOME/Apps/BCUninstaller/BCUninstaller_portable.zip"
538
+
539
+ # Create a convenience alias (optional)
540
+ echo 'alias bcuninstaller="$HOME/Apps/BCUninstaller/BCUninstaller.exe"' >> ~/.bashrc
541
+ source ~/.bashrc
542
+ ```
543
+
544
+ **Note:** The portable version includes the .NET 6 runtime, making it self-contained but larger in size (approximately 200 MB).
545
+
546
+ #### Alternative: Install via PowerShell from Git Bash
547
+
548
+ If you prefer the installed version:
549
+
550
+ ```bash
551
+ powershell.exe -Command "winget install --id Klocman.BulkCrapUninstaller --silent --accept-package-agreements --accept-source-agreements"
552
+ ```
553
+
554
+ #### Verification
555
+
556
+ Verify the portable installation:
557
+
558
+ ```bash
559
+ if [[ -f "$HOME/Apps/BCUninstaller/BCUninstaller.exe" ]]; then
560
+ echo "Bulk Crap Uninstaller (portable) is installed"
561
+ else
562
+ echo "Bulk Crap Uninstaller is NOT installed"
563
+ fi
564
+ ```
565
+
566
+ Launch the application to verify it works:
567
+
568
+ ```bash
569
+ "$HOME/Apps/BCUninstaller/BCUninstaller.exe" &
570
+ ```
571
+
572
+ #### Troubleshooting
573
+
574
+ **curl download fails:**
575
+
576
+ Use wget as an alternative:
577
+
578
+ ```bash
579
+ wget -O "$HOME/Apps/BCUninstaller/BCUninstaller_portable.zip" \
580
+ "https://github.com/Klocman/Bulk-Crap-Uninstaller/releases/download/v5.9/BCUninstaller_5.9.0_portable.zip"
581
+ ```
582
+
583
+ **unzip not found:**
584
+
585
+ Extract using PowerShell:
586
+
587
+ ```bash
588
+ powershell.exe -Command "Expand-Archive -Path '$HOME/Apps/BCUninstaller/BCUninstaller_portable.zip' -DestinationPath '$HOME/Apps/BCUninstaller/' -Force"
589
+ ```
590
+
591
+ **Permission denied when running:**
592
+
593
+ Ensure the executable has proper permissions. In Git Bash, Windows executables should run without additional permissions, but if issues occur:
594
+
595
+ ```bash
596
+ chmod +x "$HOME/Apps/BCUninstaller/BCUninstaller.exe"
597
+ ```
598
+
599
+ ---
600
+
601
+ ## Post-Installation Configuration
602
+
603
+ ### macOS (AppCleaner)
604
+
605
+ After installing AppCleaner on macOS:
606
+
607
+ 1. **Enable SmartDelete (Optional)**: Open AppCleaner > Preferences > SmartDelete. This automatically prompts you to remove associated files when you drag an app to the Trash.
608
+
609
+ 2. **Configure Protected Apps**: In Preferences, you can specify applications that should never be suggested for removal.
610
+
611
+ 3. **Review Launch at Login**: Disable "Launch at Login" in Preferences if you prefer to run AppCleaner only when needed.
612
+
613
+ ### Windows (Bulk Crap Uninstaller)
614
+
615
+ After installing Bulk Crap Uninstaller on Windows:
616
+
617
+ 1. **First Launch**: The application may run a setup wizard on first launch. Accept the default settings for standard operation.
618
+
619
+ 2. **Enable Quiet Uninstall**: In Settings > Uninstall > Quiet uninstall, enable automatic quiet uninstallation for supported applications.
620
+
621
+ 3. **Configure Leftover Removal**: In Settings > Uninstall, enable "Automatically search for leftovers" to clean up residual files after uninstallation.
622
+
623
+ ---
624
+
625
+ ## Common Issues
626
+
627
+ ### Cross-Platform Issues
628
+
629
+ | Issue | Cause | Solution |
630
+ |-------|-------|----------|
631
+ | Package manager not found | Package manager not installed | Install the appropriate package manager for your platform first |
632
+ | Permission denied | Insufficient privileges | Run commands with sudo (Linux/macOS) or as Administrator (Windows) |
633
+ | Download fails | Network connectivity issues | Check internet connection; try alternative download sources |
634
+
635
+ ### macOS-Specific Issues
636
+
637
+ | Issue | Solution |
638
+ |-------|----------|
639
+ | "AppCleaner is damaged" error | Run `xattr -cr /Applications/AppCleaner.app` |
640
+ | Homebrew cask outdated | Run `brew update && brew upgrade --cask appcleaner` |
641
+ | AppCleaner not finding all files | Ensure you have granted Full Disk Access in System Preferences > Privacy & Security |
642
+
643
+ ### Windows-Specific Issues
644
+
645
+ | Issue | Solution |
646
+ |-------|----------|
647
+ | winget not found | Install from Microsoft Store (App Installer) or upgrade Windows |
648
+ | .NET Runtime errors | Install .NET 6 Desktop Runtime manually |
649
+ | Portable version fails to start | Ensure Windows Defender is not blocking the executable; add an exception if needed |
650
+
651
+ ### Linux-Specific Issues
652
+
653
+ | Issue | Solution |
654
+ |-------|----------|
655
+ | apt-get purge leaves files behind | Some applications store data in user home directories; manually remove `~/.config/<app-name>` and `~/.local/share/<app-name>` |
656
+ | Package dependencies still installed | Run `apt-get autoremove -y --purge` after purging the main package |
657
+
658
+ ---
659
+
660
+ ## Usage Examples
661
+
662
+ ### macOS: Using AppCleaner
663
+
664
+ 1. **Drag and Drop Method**: Open AppCleaner, then drag an application from Finder into the AppCleaner window. It will scan for all associated files.
665
+
666
+ 2. **Application List Method**: Click the application icon in AppCleaner's toolbar to see a list of all installed applications. Select one to see its associated files.
667
+
668
+ 3. **SmartDelete Method**: With SmartDelete enabled, simply drag an application to the Trash. AppCleaner will automatically detect this and offer to remove associated files.
669
+
670
+ ### Windows: Using Bulk Crap Uninstaller
671
+
672
+ 1. **GUI Method**: Launch BCUninstaller. The application automatically scans for installed programs. Select one or more programs and click "Uninstall".
673
+
674
+ 2. **Quiet Uninstall**: Select applications and choose "Quiet Uninstall" to remove them without installer prompts.
675
+
676
+ 3. **Leftover Cleanup**: After uninstallation, BCUninstaller can scan for and remove leftover files and registry entries.
677
+
678
+ ---
679
+
680
+ ## References
681
+
682
+ ### macOS (AppCleaner)
683
+
684
+ - [AppCleaner Official Website (FreeMacSoft)](https://freemacsoft.net/appcleaner/)
685
+ - [AppCleaner Homebrew Cask](https://formulae.brew.sh/cask/appcleaner)
686
+
687
+ ### Windows (Bulk Crap Uninstaller)
688
+
689
+ - [Bulk Crap Uninstaller Official Website](https://www.bcuninstaller.com/)
690
+ - [Bulk Crap Uninstaller GitHub Repository](https://github.com/Klocman/Bulk-Crap-Uninstaller)
691
+ - [Bulk Crap Uninstaller Chocolatey Package](https://community.chocolatey.org/packages/bulk-crap-uninstaller)
692
+ - [Bulk Crap Uninstaller winget Package](https://winget.run/pkg/Klocman/BulkCrapUninstaller)
693
+ - [Bulk Crap Uninstaller SourceForge Downloads](https://sourceforge.net/projects/bulk-crap-uninstaller/)
694
+
695
+ ### Linux
696
+
697
+ - [Ubuntu APT Documentation](https://help.ubuntu.com/community/AptGet/Howto)
698
+ - [Debian Package Management](https://www.debian.org/doc/manuals/debian-reference/ch02.en.html)
699
+ - [DNF Command Reference](https://dnf.readthedocs.io/en/latest/command_ref.html)