You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Refactor: script: partial rewrite to make it more package manager instead of distribution based.
Fix: script: don't try to clobber pipewire-jack in Arch distributions if it is already installed.
Fix: script: properly fail when parameters are needed and none are provided.
Fix: script: make ERROR headers congruent.
Add: script: command line option to update Rack Free to specified version.
Add: script: more known working distributions.
Change: script: distribution command line parameters.
Change: script: more status reports.
Copy file name to clipboardExpand all lines: README.md
+40-18Lines changed: 40 additions & 18 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# Rack Free Installer Script
2
2
3
-
### Script version 3.2
3
+
### Script version 4.0
4
4
5
5
A script to easily install VCV Rack Free and its dependencies for a few different Linux distros.
6
6
@@ -26,37 +26,47 @@ Get the installer script; put it in your home directory, and run it from the ter
26
26
27
27
The script will ask you for the distribution you are using interactively; just type the number (or the Quit option to abort) and press the ENTER key.
28
28
29
-
The script is written to be compatible with the following distributions; but it may work for others using the same package manager:
29
+
The script is written for and has been tested with the following distributions:
30
30
31
31
| Distribution | Package Manager |
32
32
| ------------- | --------------- |
33
33
| Manjaro Linux | pacman |
34
-
| Ubuntu | apt |
34
+
| Arch Linux | pacman |
35
+
| EndeavourOS | pacman |
35
36
| Linux Mint | apt |
37
+
| Ubuntu | apt |
38
+
| Debian | apt |
39
+
| Pop!_OS | apt |
36
40
| Fedora Linux | dnf |
37
41
42
+
The script may work for other distributions using the same package manager.
43
+
38
44
Distributions can also be selected using the command line by passing it the -d option followed by the UPPERCASE letter set for a known distribution; for example to install Rack Free in Ubuntu directly, run:
39
45
40
46
```
41
-
install_rack_free.sh -d U
47
+
install_rack_free.sh -d D
42
48
```
43
49
44
50
Known distributions and their set letters are the following:
The script includes a help screen; to display it, run:
54
64
55
65
```
56
66
install_rack_free.sh -h
57
67
```
58
68
59
-
Installation of JACK can be skipped so that the script is more useful to moredistributions and to avoid overwriting existing installations, run:
69
+
Installation of JACK can be skipped so the script is useful for more, untested, distributions and to avoid overwriting existing installations if they are not detected by it, run:
60
70
61
71
```
62
72
install_rack_free.sh -j
@@ -68,19 +78,21 @@ Specific Rack Free versions can be installed using the -v option; for example to
68
78
install_rack_free.sh -v 2.5.2
69
79
```
70
80
71
-
If you want to update Rack Free or just want to download and decompress Rack Free ignoring the prerequisites, run:
81
+
If you just to download and decompress the default Rack Free version set by the script, ignoring the prerequisites, run:
72
82
73
83
```
74
84
install_rack_free.sh -r
75
85
```
76
86
77
-
This option can be used to update or downgrade existing Rack Free installations to a different version; for example to downgrade Rack Free 2.6.3, the default installed by this script, to Rack Free 2.6.0, run:
87
+
The script can also update or downgrade existing Rack Free installations to a different version; for example to update Rack Free 2.6.3, the default installed by this script, to Rack Free 2.6.5, run:
78
88
79
89
```
80
-
install_rack_free.sh -r -v 2.6.0
90
+
install_rack_free.sh -u 2.6.5
81
91
```
82
92
83
-
Keep in mind command line options are *case sensitive* and that option order is not relevant.
93
+
The `-v` and `-u` options are mutually exclusive: if both are used, an error will be printed and the script will exit.
94
+
95
+
**Keep in mind!** Command line options are *case sensitive* and option order is not relevant.
84
96
85
97
---
86
98
@@ -102,7 +114,7 @@ The script requires:
102
114
103
115
## My favorite distro is not listed!
104
116
105
-
You can try selecting an existing distribution that uses the same packaging system and manager your particular distro uses; for example, selecting Ubuntu might work with Debian; check the table above to find out which package manager the script acknowledges for each distribution.
117
+
You can try selecting an existing distribution that uses the same packaging system and manager your particular distro uses; for example, selecting Arch Linux might work with Garuda Linux; check the table above to find out which package manager the script acknowledges for each distribution.
106
118
107
119
If none of the options work for your chosen distribution, contributions for new distributions are welcome!
108
120
@@ -153,7 +165,7 @@ The default version is selected using the wisdom of the community in the forum a
153
165
154
166
Versions passing both tests will be the default whenever the script is updated.
155
167
156
-
That said... if you want a different version, just pass it using the "-v" parameter sans the quotes.
168
+
That said... if you want a different version, just pass it using the `-v` parameter.
157
169
158
170
For example, to install VCV Rack Free version 2.6.4, type:
The script *does not* check for version correctness before trying to download a VCV Rack Free distribution, so... make sure you type an available version.
178
+
The script *does not* check for version correctness before trying to download a VCV Rack Free distribution: it will fail if the selected version is not found.
179
+
180
+
## Can I use the script to update Rack Free to the latest version?
181
+
182
+
Yes! Just pass it using the `-u` option.
183
+
184
+
For example, to update Rack Free 2.6.3 to Rack Free 2.6.5, type:
185
+
186
+
```
187
+
install_rack_free.sh -u 2.6.4
188
+
```
167
189
168
190
## My distro is too old! The script is incompatible!
distros=("Arch Linux based (Manjaro Linux, Arch Linux, EndeavourOS)""Debian based (Linux Mint, Ubuntu, Debian, Pop!_OS)""Fedora Linux based (Fedora Linux)""Quit")
190
210
selectdistroin"${distros[@]}"
191
211
do
192
212
case$REPLYin
193
213
1)
194
-
selectedDistro=1
214
+
selectedDistro=2
195
215
distroName=0
196
216
echo
197
217
break
198
218
;;
199
219
2)
200
-
selectedDistro=2
220
+
selectedDistro=3
201
221
distroName=1
202
222
echo
203
223
break
204
224
;;
205
225
3)
206
-
selectedDistro=2
226
+
selectedDistro=4
207
227
distroName=2
208
228
echo
209
229
break
210
230
;;
211
231
4)
212
-
selectedDistro=3
213
-
distroName=3
214
-
echo
215
-
break
216
-
;;
217
-
5)
218
232
echo
219
233
echo"Aborted by user. Bye!"
220
234
exit 0
@@ -227,27 +241,26 @@ function chooseDistro() {
227
241
# End functions block.
228
242
229
243
# <--- Begin actual script --->
230
-
whilegetopts':v:hjrd:' opt
244
+
whilegetopts':v:hjrd:u:' opt
231
245
do
232
246
case$optin
233
-
v) rackVersion=$OPTARG;;
247
+
v)
248
+
rackVersion=$OPTARG
249
+
wantVersion=1
250
+
;;
234
251
d)
235
252
# TODO: Update this logic when new distros are added.
236
253
case$OPTARGin
237
-
M)
238
-
selectedDistro=1
254
+
A)
255
+
selectedDistro=2
239
256
distroName=0
240
257
;;
241
-
U)
242
-
selectedDistro=2
258
+
D)
259
+
selectedDistro=3
243
260
distroName=2
244
261
;;
245
-
T)
246
-
selectedDistro=2
247
-
distroName=1
248
-
;;
249
262
F)
250
-
selectedDistro=3
263
+
selectedDistro=4
251
264
distroName=3
252
265
;;
253
266
*)
@@ -259,6 +272,11 @@ do
259
272
h) printHelp;;
260
273
j) wantJack=0;;
261
274
r) wantRackOnly=1;;
275
+
u)
276
+
selectedDistro=1
277
+
rackVersion=$OPTARG
278
+
wantRackOnly=1
279
+
;;
262
280
\?)
263
281
echo"ERROR: Invalid option: \"$OPTARG\"."
264
282
echo
@@ -267,6 +285,14 @@ do
267
285
echo"Exiting now."
268
286
exit 1
269
287
;;
288
+
:)
289
+
echo"ERROR: Option -$OPTARG requires an argument."
290
+
echo
291
+
echo"Type $0 -h for help."
292
+
echo
293
+
echo"Exiting now..."
294
+
exit 1
295
+
;;
270
296
esac
271
297
done
272
298
@@ -276,8 +302,17 @@ if [ $selectedDistro == 0 ]; then
276
302
chooseDistro
277
303
fi
278
304
279
-
echo"Trying to install VCV Rack Free ${rackVersion} in ${distroLabels[distroName]}..."
280
-
echo
305
+
if [ $selectedDistro!= 1 ];then
306
+
echo"Trying to install VCV Rack Free ${rackVersion} for ${distroLabels[distroName]}..."
307
+
echo
308
+
else
309
+
if [ $wantVersion== 1 ];then
310
+
echo"ERROR: -u and -v are mutually exclusive!"
311
+
echo"Exiting now..."
312
+
exit 1
313
+
fi
314
+
echo"Trying to update VCV Rack free to ${rackVersion}..."
0 commit comments