@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,761 @@
1
+ # Installing Balena Etcher
2
+
3
+ ## Overview
4
+
5
+ Balena Etcher is a powerful, open-source OS image flasher built with web technologies. It provides a safe and easy way to flash OS images to SD cards and USB drives. Etcher validates the writing process to ensure every byte of data is written correctly, and it includes safeguards to prevent accidentally writing to your hard drives. The tool supports a wide range of image formats including ISO, IMG, ZIP, and compressed archives.
6
+
7
+ Balena Etcher is commonly used for:
8
+
9
+ - Creating bootable USB drives for operating system installation
10
+ - Flashing Raspberry Pi images to SD cards
11
+ - Writing disk images for embedded systems and IoT devices
12
+ - Preparing recovery media
13
+
14
+ ## Prerequisites
15
+
16
+ Before installing Balena Etcher on any platform, ensure:
17
+
18
+ 1. **Internet connectivity** - Required to download the installer or package
19
+ 2. **Administrative privileges** - Required on most platforms for installation
20
+ 3. **64-bit operating system** - Balena Etcher requires a 64-bit system on all platforms
21
+ 4. **GUI environment** - Balena Etcher is a graphical application and requires a desktop environment
22
+
23
+ **Important**: Balena Etcher is a GUI application. It cannot be run headlessly or via SSH without X11 forwarding.
24
+
25
+ ## Dependencies
26
+
27
+ ### macOS (Homebrew)
28
+ - **Required:**
29
+ - Homebrew - Install via `/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"`
30
+ - **Optional:** None
31
+ - **Auto-installed:** None (Homebrew cask handles all application dependencies automatically)
32
+
33
+ ### Ubuntu (APT/Snap)
34
+ - **Required:**
35
+ - `wget` - Install via `sudo apt-get install -y wget` (auto-installed by script if missing)
36
+ - `sudo` privileges - Required for package installation
37
+ - **Optional:** None
38
+ - **Auto-installed:** Package dependencies are automatically resolved by APT when installing the .deb file
39
+
40
+ ### Raspberry Pi OS (APT/Snap)
41
+ - **Required:**
42
+ - 64-bit Raspberry Pi OS (aarch64 architecture) - Verify with `uname -m`
43
+ - `wget` - Usually pre-installed, or install via `sudo apt-get install -y wget`
44
+ - Pi-Apps - Auto-installed by the script from https://github.com/Botspot/pi-apps
45
+ - **Optional:** None
46
+ - **Auto-installed:**
47
+ - Pi-Apps and its dependencies: `yad`, `curl`, `wget` (installed during Pi-Apps setup if missing)
48
+
49
+ ### Amazon Linux (DNF/YUM)
50
+ - **Required:**
51
+ - `wget` - Install via `sudo dnf install -y wget` or `sudo yum install -y wget` (auto-installed by script if missing)
52
+ - `sudo` privileges - Required for package installation
53
+ - **Optional:**
54
+ - Desktop environment (GNOME, KDE, etc.) - Install via `sudo dnf groupinstall -y "Server with GUI"`
55
+ - **Auto-installed:**
56
+ - Runtime dependencies (may include): `libXScrnSaver`, `gtk3`, `nss`, `alsa-lib` - installed automatically by DNF/YUM when installing the .rpm package
57
+
58
+ ### Windows (Chocolatey/winget)
59
+ - **Required:**
60
+ - Chocolatey OR winget package manager
61
+ - Chocolatey - Install via PowerShell (Administrator): `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'))`
62
+ - winget - Pre-installed on Windows 11 and recent Windows 10 builds
63
+ - Administrator privileges - Required for installation
64
+ - **Optional:** None
65
+ - **Auto-installed:** All runtime dependencies are handled automatically by the package manager
66
+
67
+ ### Git Bash (Manual/Portable)
68
+ - **Required:**
69
+ - Git Bash - Install via https://git-scm.com/download/win
70
+ - Windows 10 or Windows 11 (64-bit)
71
+ - Chocolatey (for package manager install) OR ability to download portable version
72
+ - **Optional:**
73
+ - `unzip` - Usually included with Git Bash, needed for portable version extraction
74
+ - PowerShell - Alternative method for extracting zip files
75
+ - **Auto-installed:** None (delegates to Windows Chocolatey installation, or uses manually extracted portable version)
76
+
77
+ ## Platform-Specific Installation
78
+
79
+ ### macOS (Homebrew)
80
+
81
+ #### Prerequisites
82
+
83
+ - macOS 10.15 (Catalina) or later
84
+ - Homebrew package manager installed
85
+ - Terminal access
86
+
87
+ If Homebrew is not installed, install it first:
88
+
89
+ ```bash
90
+ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
91
+ ```
92
+
93
+ #### Installation Steps
94
+
95
+ Run the following command to install Balena Etcher:
96
+
97
+ ```bash
98
+ brew install --cask --quiet balenaetcher
99
+ ```
100
+
101
+ The `--cask` flag specifies this is a GUI application (cask), and `--quiet` suppresses non-essential output, making the command suitable for automation scripts.
102
+
103
+ #### Verification
104
+
105
+ Confirm the installation succeeded by checking the application exists:
106
+
107
+ ```bash
108
+ ls /Applications/balenaEtcher.app
109
+ ```
110
+
111
+ Expected output:
112
+
113
+ ```
114
+ /Applications/balenaEtcher.app
115
+ ```
116
+
117
+ Alternatively, launch the application:
118
+
119
+ ```bash
120
+ open /Applications/balenaEtcher.app
121
+ ```
122
+
123
+ #### Troubleshooting
124
+
125
+ **Problem**: `Error: Cask balenaetcher is not available`
126
+
127
+ **Solution**: Update Homebrew's cask definitions:
128
+
129
+ ```bash
130
+ brew update
131
+ ```
132
+
133
+ **Problem**: Installation blocked by macOS Gatekeeper
134
+
135
+ **Solution**: The application is signed, but macOS may still block it on first launch. Open System Preferences > Security & Privacy and click "Open Anyway" for balenaEtcher.
136
+
137
+ **Problem**: Permission denied errors during installation
138
+
139
+ **Solution**: Fix Homebrew permissions:
140
+
141
+ ```bash
142
+ sudo chown -R $(whoami) /Applications
143
+ ```
144
+
145
+ ---
146
+
147
+ ### Ubuntu/Debian (APT)
148
+
149
+ #### Prerequisites
150
+
151
+ - Ubuntu 18.04 or later, or Debian 10 or later (64-bit)
152
+ - sudo privileges
153
+ - wget or curl installed
154
+
155
+ **Important**: The official Balena Etcher APT repository is deprecated and no longer receives updates. Install Balena Etcher by downloading the `.deb` package directly from GitHub releases.
156
+
157
+ #### Installation Steps
158
+
159
+ Download and install the latest Balena Etcher `.deb` package:
160
+
161
+ ```bash
162
+ wget -q -O /tmp/balena-etcher.deb "https://github.com/balena-io/etcher/releases/download/v2.1.4/balena-etcher_2.1.4_amd64.deb"
163
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y /tmp/balena-etcher.deb
164
+ rm -f /tmp/balena-etcher.deb
165
+ ```
166
+
167
+ The `DEBIAN_FRONTEND=noninteractive` environment variable and `-y` flag ensure fully non-interactive installation. The temporary file is cleaned up after installation.
168
+
169
+ #### Verification
170
+
171
+ Confirm the installation succeeded:
172
+
173
+ ```bash
174
+ which balena-etcher || dpkg -l | grep balena-etcher
175
+ ```
176
+
177
+ Expected output showing the package is installed:
178
+
179
+ ```
180
+ ii balena-etcher 2.1.4 amd64 Flash OS images to SD cards & USB drives, safely and easily.
181
+ ```
182
+
183
+ Launch the application from the terminal:
184
+
185
+ ```bash
186
+ balena-etcher &
187
+ ```
188
+
189
+ #### Troubleshooting
190
+
191
+ **Problem**: `dpkg: dependency problems prevent configuration`
192
+
193
+ **Solution**: Fix broken dependencies:
194
+
195
+ ```bash
196
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -f -y
197
+ ```
198
+
199
+ **Problem**: Application fails to launch with GPU/sandbox errors
200
+
201
+ **Solution**: Run with sandbox disabled (for troubleshooting only):
202
+
203
+ ```bash
204
+ balena-etcher --no-sandbox
205
+ ```
206
+
207
+ For a permanent fix, ensure your system has proper graphics drivers installed.
208
+
209
+ **Problem**: `wget: command not found`
210
+
211
+ **Solution**: Install wget first:
212
+
213
+ ```bash
214
+ sudo DEBIAN_FRONTEND=noninteractive apt-get update -y && sudo DEBIAN_FRONTEND=noninteractive apt-get install -y wget
215
+ ```
216
+
217
+ ---
218
+
219
+ ### Raspberry Pi OS (Pi-Apps)
220
+
221
+ #### Prerequisites
222
+
223
+ - Raspberry Pi OS (64-bit) - **Required**
224
+ - Raspberry Pi 3, 4, or 5 (64-bit capable hardware)
225
+ - Desktop environment installed (Raspberry Pi OS with Desktop)
226
+ - Internet connectivity
227
+
228
+ **Critical**: Balena Etcher does NOT have an official ARM installer. The x86/x64 packages from the official website will not work on Raspberry Pi. Use Pi-Apps to install a community-compiled ARM64 version.
229
+
230
+ Verify you are running 64-bit Raspberry Pi OS:
231
+
232
+ ```bash
233
+ uname -m
234
+ ```
235
+
236
+ This **must** output `aarch64`. If it outputs `armv7l`, you need to install the 64-bit version of Raspberry Pi OS.
237
+
238
+ #### Installation Steps
239
+
240
+ First, install Pi-Apps (the Raspberry Pi app store):
241
+
242
+ ```bash
243
+ wget -qO- https://raw.githubusercontent.com/Botspot/pi-apps/master/install | bash
244
+ ```
245
+
246
+ After Pi-Apps is installed, install Balena Etcher using the Pi-Apps CLI:
247
+
248
+ ```bash
249
+ /home/$USER/pi-apps/manage install 'BalenaEtcher'
250
+ ```
251
+
252
+ **Note**: The Pi-Apps installation process may display progress in a GUI window. For fully headless installation, you can use:
253
+
254
+ ```bash
255
+ DISPLAY=:0 /home/$USER/pi-apps/manage install 'BalenaEtcher'
256
+ ```
257
+
258
+ #### Verification
259
+
260
+ Confirm the installation succeeded:
261
+
262
+ ```bash
263
+ which balena-etcher-electron || ls /usr/bin/balena-etcher*
264
+ ```
265
+
266
+ Launch the application:
267
+
268
+ ```bash
269
+ balena-etcher-electron &
270
+ ```
271
+
272
+ #### Troubleshooting
273
+
274
+ **Problem**: Pi-Apps installation fails
275
+
276
+ **Solution**: Ensure you have a desktop environment and required dependencies:
277
+
278
+ ```bash
279
+ sudo DEBIAN_FRONTEND=noninteractive apt-get update -y && sudo DEBIAN_FRONTEND=noninteractive apt-get install -y yad curl wget
280
+ ```
281
+
282
+ **Problem**: `BalenaEtcher will only run on PiOS 64-bit`
283
+
284
+ **Solution**: You must use the 64-bit version of Raspberry Pi OS. Download it from https://www.raspberrypi.com/software/operating-systems/ and reflash your SD card.
285
+
286
+ **Problem**: Application crashes on launch
287
+
288
+ **Solution**: Ensure you have sufficient GPU memory. Edit `/boot/config.txt` and set:
289
+
290
+ ```
291
+ gpu_mem=128
292
+ ```
293
+
294
+ Then reboot:
295
+
296
+ ```bash
297
+ sudo reboot
298
+ ```
299
+
300
+ **Alternative Approach**: If you need to flash SD cards on a Raspberry Pi, consider using Raspberry Pi Imager instead, which has official ARM support:
301
+
302
+ ```bash
303
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y rpi-imager
304
+ ```
305
+
306
+ ---
307
+
308
+ ### Amazon Linux/RHEL (DNF)
309
+
310
+ #### Prerequisites
311
+
312
+ - Amazon Linux 2023, Amazon Linux 2, RHEL 8+, or Fedora 35+
313
+ - 64-bit (x86_64) architecture
314
+ - sudo privileges
315
+ - Desktop environment installed (GNOME, KDE, etc.)
316
+
317
+ **Note**: Amazon Linux is typically used as a server OS without a GUI. If you need Balena Etcher on Amazon Linux, you must first install a desktop environment.
318
+
319
+ #### Installation Steps
320
+
321
+ Download and install the latest Balena Etcher RPM package:
322
+
323
+ ```bash
324
+ wget -q -O /tmp/balena-etcher.rpm "https://github.com/balena-io/etcher/releases/download/v2.1.4/balena-etcher-2.1.4-1.x86_64.rpm"
325
+ sudo dnf install -y /tmp/balena-etcher.rpm
326
+ rm -f /tmp/balena-etcher.rpm
327
+ ```
328
+
329
+ The `-y` flag ensures non-interactive installation without prompts.
330
+
331
+ For Amazon Linux 2 (which uses `yum` instead of `dnf`):
332
+
333
+ ```bash
334
+ wget -q -O /tmp/balena-etcher.rpm "https://github.com/balena-io/etcher/releases/download/v2.1.4/balena-etcher-2.1.4-1.x86_64.rpm"
335
+ sudo yum install -y /tmp/balena-etcher.rpm
336
+ rm -f /tmp/balena-etcher.rpm
337
+ ```
338
+
339
+ **Note**: During installation, DNF may display a warning about skipping OpenPGP checks for packages from the commandline repository. This is expected behavior when installing local RPM files.
340
+
341
+ #### Verification
342
+
343
+ Confirm the installation succeeded:
344
+
345
+ ```bash
346
+ rpm -q balena-etcher
347
+ ```
348
+
349
+ Expected output:
350
+
351
+ ```
352
+ balena-etcher-2.1.4-1.x86_64
353
+ ```
354
+
355
+ The binary installs to `/usr/bin/balena-etcher`:
356
+
357
+ ```bash
358
+ which balena-etcher
359
+ ```
360
+
361
+ #### Troubleshooting
362
+
363
+ **Problem**: `No package balena-etcher available`
364
+
365
+ **Solution**: Ensure you are installing from the downloaded RPM file, not from a repository:
366
+
367
+ ```bash
368
+ sudo dnf install -y /tmp/balena-etcher.rpm
369
+ ```
370
+
371
+ **Problem**: Missing dependencies
372
+
373
+ **Solution**: Install required libraries:
374
+
375
+ ```bash
376
+ sudo dnf install -y libXScrnSaver gtk3 nss alsa-lib
377
+ ```
378
+
379
+ **Problem**: Cannot launch - no display
380
+
381
+ **Solution**: Amazon Linux servers typically do not have a GUI. Install a desktop environment first:
382
+
383
+ ```bash
384
+ sudo dnf groupinstall -y "Server with GUI"
385
+ sudo systemctl set-default graphical.target
386
+ sudo reboot
387
+ ```
388
+
389
+ ---
390
+
391
+ ### Windows (Chocolatey)
392
+
393
+ #### Prerequisites
394
+
395
+ - Windows 10 or Windows 11 (64-bit)
396
+ - Chocolatey package manager installed
397
+ - Administrator PowerShell or Command Prompt
398
+
399
+ If Chocolatey is not installed, install it first by running this command in an Administrator PowerShell:
400
+
401
+ ```powershell
402
+ 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'))
403
+ ```
404
+
405
+ #### Installation Steps
406
+
407
+ Run the following command in an Administrator PowerShell or Command Prompt:
408
+
409
+ ```powershell
410
+ choco install etcher -y
411
+ ```
412
+
413
+ The `-y` flag automatically confirms all prompts, enabling fully non-interactive installation.
414
+
415
+ **Alternative (winget)**: If you prefer winget:
416
+
417
+ ```powershell
418
+ winget install --id Balena.Etcher --silent --accept-source-agreements --accept-package-agreements
419
+ ```
420
+
421
+ The `--silent`, `--accept-source-agreements`, and `--accept-package-agreements` flags ensure non-interactive installation.
422
+
423
+ #### Verification
424
+
425
+ After installation, verify by checking the installation path:
426
+
427
+ ```powershell
428
+ Test-Path "C:\Program Files\balenaEtcher\balenaEtcher.exe"
429
+ ```
430
+
431
+ Expected output:
432
+
433
+ ```
434
+ True
435
+ ```
436
+
437
+ Launch the application:
438
+
439
+ ```powershell
440
+ Start-Process "C:\Program Files\balenaEtcher\balenaEtcher.exe"
441
+ ```
442
+
443
+ #### Troubleshooting
444
+
445
+ **Problem**: `choco: The term 'choco' is not recognized`
446
+
447
+ **Solution**: Chocolatey is not installed or not in PATH. Close all terminals, open a new Administrator PowerShell, and verify Chocolatey installation:
448
+
449
+ ```powershell
450
+ refreshenv
451
+ choco --version
452
+ ```
453
+
454
+ **Problem**: Installation fails with access denied
455
+
456
+ **Solution**: Ensure you are running PowerShell as Administrator. Right-click PowerShell and select "Run as administrator".
457
+
458
+ **Problem**: Application does not appear in Start menu
459
+
460
+ **Solution**: The Start menu shortcut may take a moment to appear. Alternatively, search for "balenaEtcher" in the Windows search bar or navigate to the installation directory.
461
+
462
+ **Problem**: Windows Defender blocks the installation
463
+
464
+ **Solution**: Balena Etcher is safe software. Temporarily disable real-time protection or add an exclusion for the Chocolatey and balenaEtcher directories.
465
+
466
+ ---
467
+
468
+ ### WSL (Ubuntu)
469
+
470
+ #### Prerequisites
471
+
472
+ - Windows Subsystem for Linux with Ubuntu installed
473
+ - WSL 2 recommended (required for GUI support)
474
+ - Windows 11 or Windows 10 with WSLg enabled
475
+ - sudo privileges within WSL
476
+
477
+ **Important**: Balena Etcher is a GUI application. Running GUI applications in WSL requires WSLg (Windows Subsystem for Linux GUI), which is available in Windows 11 and recent Windows 10 builds.
478
+
479
+ #### Installation Steps
480
+
481
+ Follow the same steps as Ubuntu/Debian:
482
+
483
+ ```bash
484
+ wget -q -O /tmp/balena-etcher.deb "https://github.com/balena-io/etcher/releases/download/v2.1.4/balena-etcher_2.1.4_amd64.deb"
485
+ sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
486
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y /tmp/balena-etcher.deb
487
+ rm -f /tmp/balena-etcher.deb
488
+ ```
489
+
490
+ #### Verification
491
+
492
+ Check the package is installed:
493
+
494
+ ```bash
495
+ dpkg -l | grep balena-etcher
496
+ ```
497
+
498
+ Launch the application (requires WSLg):
499
+
500
+ ```bash
501
+ balena-etcher &
502
+ ```
503
+
504
+ #### Troubleshooting
505
+
506
+ **Problem**: `cannot open display` error
507
+
508
+ **Solution**: WSLg may not be enabled or configured. Verify WSLg is working:
509
+
510
+ ```bash
511
+ echo $DISPLAY
512
+ ```
513
+
514
+ This should output something like `:0`. If empty, ensure you are using WSL 2 and Windows 11 (or Windows 10 with WSLg enabled):
515
+
516
+ ```powershell
517
+ # In Windows PowerShell
518
+ wsl --update
519
+ wsl --shutdown
520
+ wsl
521
+ ```
522
+
523
+ **Problem**: USB devices not accessible from WSL
524
+
525
+ **Solution**: WSL does not have native USB passthrough. For flashing USB drives, install Balena Etcher directly on Windows instead (see Windows section). Alternatively, use USB/IP to forward USB devices to WSL.
526
+
527
+ **Problem**: Application fails with sandbox errors
528
+
529
+ **Solution**: Run without sandbox:
530
+
531
+ ```bash
532
+ balena-etcher --no-sandbox &
533
+ ```
534
+
535
+ **Recommended Alternative**: For USB flashing operations, install Balena Etcher on Windows directly (using Chocolatey or winget) rather than in WSL, as WSL has limited USB device access.
536
+
537
+ ---
538
+
539
+ ### Git Bash (Windows Installation)
540
+
541
+ #### Prerequisites
542
+
543
+ - Windows 10 or Windows 11 (64-bit)
544
+ - Git Bash installed (comes with Git for Windows)
545
+ - Balena Etcher installed on Windows (see Windows section above)
546
+
547
+ **Note**: Git Bash runs on Windows and inherits the Windows PATH. Once Balena Etcher is installed on Windows, it is automatically accessible from Git Bash. There is no separate Git Bash installation required.
548
+
549
+ #### Installation Steps
550
+
551
+ Install Balena Etcher on Windows using Chocolatey from Git Bash:
552
+
553
+ ```bash
554
+ # Call Windows Chocolatey from Git Bash (requires Administrator Git Bash)
555
+ /c/ProgramData/chocolatey/bin/choco.exe install etcher -y
556
+ ```
557
+
558
+ Alternatively, download and run the portable version without requiring Administrator privileges:
559
+
560
+ ```bash
561
+ # Create a local applications directory
562
+ mkdir -p ~/Applications
563
+
564
+ # Download the portable Windows version
565
+ curl -L -o ~/Applications/balenaEtcher.zip "https://github.com/balena-io/etcher/releases/download/v2.1.4/balenaEtcher-win32-x64-2.1.4.zip"
566
+
567
+ # Extract the archive
568
+ unzip -q ~/Applications/balenaEtcher.zip -d ~/Applications/balenaEtcher
569
+
570
+ # Clean up the zip file
571
+ rm ~/Applications/balenaEtcher.zip
572
+ ```
573
+
574
+ #### Verification
575
+
576
+ If installed via Chocolatey, verify the installation:
577
+
578
+ ```bash
579
+ ls "/c/Program Files/balenaEtcher/balenaEtcher.exe"
580
+ ```
581
+
582
+ If using the portable version:
583
+
584
+ ```bash
585
+ ls ~/Applications/balenaEtcher/balenaEtcher.exe
586
+ ```
587
+
588
+ Launch the application:
589
+
590
+ ```bash
591
+ # Installed version
592
+ "/c/Program Files/balenaEtcher/balenaEtcher.exe" &
593
+
594
+ # Or portable version
595
+ ~/Applications/balenaEtcher/balenaEtcher.exe &
596
+ ```
597
+
598
+ #### Troubleshooting
599
+
600
+ **Problem**: Chocolatey command not found
601
+
602
+ **Solution**: Chocolatey may not be installed or the path is different. Install via PowerShell first (see Windows section), then access from Git Bash.
603
+
604
+ **Problem**: Permission denied when installing via Chocolatey
605
+
606
+ **Solution**: Git Bash must be run as Administrator for Chocolatey installations. Right-click Git Bash and select "Run as administrator".
607
+
608
+ **Problem**: Cannot extract zip file
609
+
610
+ **Solution**: Install unzip if not available:
611
+
612
+ ```bash
613
+ # unzip is typically included with Git Bash, but if missing:
614
+ pacman -S unzip # Only works if pacman is available (MSYS2)
615
+ ```
616
+
617
+ Alternatively, use PowerShell to extract:
618
+
619
+ ```bash
620
+ powershell -command "Expand-Archive -Path '$HOME/Applications/balenaEtcher.zip' -DestinationPath '$HOME/Applications/balenaEtcher'"
621
+ ```
622
+
623
+ ---
624
+
625
+ ## Post-Installation Configuration
626
+
627
+ Balena Etcher requires no configuration after installation. The application is ready to use immediately.
628
+
629
+ ### First Launch
630
+
631
+ 1. Launch Balena Etcher from your application menu or command line
632
+ 2. Click "Flash from file" to select an OS image (ISO, IMG, ZIP, etc.)
633
+ 3. Click "Select target" to choose your USB drive or SD card
634
+ 4. Click "Flash!" to begin the writing process
635
+
636
+ ### USB Device Permissions (Linux Only)
637
+
638
+ On Linux systems, you may need to add your user to the appropriate groups to access USB devices without sudo:
639
+
640
+ ```bash
641
+ sudo usermod -a -G disk $USER
642
+ sudo usermod -a -G plugdev $USER
643
+ ```
644
+
645
+ Log out and log back in for group changes to take effect.
646
+
647
+ ### Creating Desktop Shortcuts (Linux)
648
+
649
+ If a desktop shortcut is not automatically created, you can create one manually:
650
+
651
+ ```bash
652
+ cat > ~/.local/share/applications/balena-etcher.desktop << 'EOF'
653
+ [Desktop Entry]
654
+ Name=balenaEtcher
655
+ Comment=Flash OS images to SD cards and USB drives
656
+ Exec=/usr/bin/balena-etcher %U
657
+ Icon=balena-etcher
658
+ Terminal=false
659
+ Type=Application
660
+ Categories=Utility;
661
+ EOF
662
+ ```
663
+
664
+ ---
665
+
666
+ ## Common Issues
667
+
668
+ ### Issue: "No polkit authentication agent found"
669
+
670
+ **Symptoms**: Error message about polkit when trying to flash drives on Linux.
671
+
672
+ **Solution**: Install a polkit authentication agent:
673
+
674
+ ```bash
675
+ # Ubuntu/Debian
676
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y policykit-1-gnome
677
+
678
+ # Fedora/Amazon Linux
679
+ sudo dnf install -y polkit-gnome
680
+ ```
681
+
682
+ ### Issue: USB Drive Not Detected
683
+
684
+ **Symptoms**: The USB drive does not appear in the target selection.
685
+
686
+ **Solution**:
687
+
688
+ 1. Ensure the USB drive is properly inserted
689
+ 2. Try a different USB port (preferably USB 2.0 for compatibility)
690
+ 3. On Linux, check if the device is mounted and unmount it:
691
+
692
+ ```bash
693
+ # Find the device
694
+ lsblk
695
+
696
+ # Unmount if mounted (replace sdX with your device)
697
+ sudo umount /dev/sdX*
698
+ ```
699
+
700
+ ### Issue: Flash Validation Fails
701
+
702
+ **Symptoms**: The flash completes but validation fails with errors.
703
+
704
+ **Solution**:
705
+
706
+ 1. The SD card or USB drive may be faulty - try a different one
707
+ 2. Download the image file again (it may be corrupted)
708
+ 3. Verify the image checksum before flashing:
709
+
710
+ ```bash
711
+ sha256sum your-image-file.img
712
+ ```
713
+
714
+ ### Issue: Application Crashes on Launch
715
+
716
+ **Symptoms**: Balena Etcher immediately closes or shows a blank window.
717
+
718
+ **Solution**:
719
+
720
+ 1. Update your graphics drivers
721
+ 2. Try launching with GPU acceleration disabled:
722
+
723
+ ```bash
724
+ # Linux
725
+ balena-etcher --disable-gpu
726
+
727
+ # Windows (PowerShell)
728
+ & "C:\Program Files\balenaEtcher\balenaEtcher.exe" --disable-gpu
729
+ ```
730
+
731
+ ### Issue: "EACCES: permission denied" on Linux
732
+
733
+ **Symptoms**: Permission errors when trying to write to a drive.
734
+
735
+ **Solution**: Run Balena Etcher with elevated privileges (not recommended for regular use):
736
+
737
+ ```bash
738
+ sudo balena-etcher
739
+ ```
740
+
741
+ Better solution: Fix udev rules for USB device access:
742
+
743
+ ```bash
744
+ echo 'SUBSYSTEM=="usb", MODE="0666"' | sudo tee /etc/udev/rules.d/50-usb.rules
745
+ sudo udevadm control --reload-rules
746
+ sudo udevadm trigger
747
+ ```
748
+
749
+ ---
750
+
751
+ ## References
752
+
753
+ - [Balena Etcher Official Website](https://etcher.balena.io/)
754
+ - [Balena Etcher GitHub Repository](https://github.com/balena-io/etcher)
755
+ - [Balena Etcher GitHub Releases](https://github.com/balena-io/etcher/releases)
756
+ - [Homebrew Cask - balenaetcher](https://formulae.brew.sh/cask/balenaetcher)
757
+ - [Chocolatey Package - etcher](https://community.chocolatey.org/packages/etcher)
758
+ - [winget Package - Balena.Etcher](https://winget.run/pkg/Balena/Etcher)
759
+ - [Pi-Apps - BalenaEtcher for Raspberry Pi](https://pi-apps.io/install-app/install-balenaetcher-on-raspberry-pi/)
760
+ - [BalenaEtcher ARM Builds (Community)](https://github.com/Itai-Nelken/BalenaEtcher-arm)
761
+ - [PortableApps - balenaEtcher Portable](https://portableapps.com/apps/utilities/balenaetcher-portable)