A pure Bash command-line menu tool for installing Ubuntu/Debian software fast
Prononounced mew-er because the g moves in silence like lasagna
- Contents
GMUAR is a pure Bash command-line menu tool program to install a host of common software on Ubuntu/Debian. This helps get software onto fresh Ubuntu installs fast.
I got tired of having to manually sudo apt install a bunch of software everytime I launched a fresh Ubuntu installation. I wanted the ability to pick and choose what kind of software I would like installed through a terminal menu. That's all
Click to expand
```bash
├── customization
│ └── zsh.sh
├── desktop
│ ├── atom.sh
│ ├── chrome.sh
│ ├── qbittorrent.sh
│ ├── slack.sh
│ ├── spotify.sh
│ ├── sublime.sh
│ ├── vlc.sh
│ └── wavebox.sh
├── development
│ ├── anaconda.sh
│ ├── awscli.sh
│ ├── dvm.sh
│ ├── genymotion.sh
│ ├── go.sh
│ ├── gvm.sh
│ ├── heroku.sh
│ ├── node_n.sh
│ ├── pgadmin4.sh
│ ├── postman.sh
│ ├── rvm.sh
│ ├── vscode.sh
│ ├── workbench.sh
│ └── yarn.sh
├── setup
│ ├── cmake.sh
│ ├── curl.sh
│ ├── git.sh
│ ├── make.sh
│ └── pip3.sh
└── utilities
├── docker.sh
├── fuck.sh
├── htop.sh
├── mlocate.sh
├── nettools.sh
└── qv2ray.sh
```
Clone this repository
git clone https://github.com/emmanuelnk/GetMeUpAndRunning.git && cd GetMeUpAndRunningGive ./gmuar.sh permissions to launch
chmod +x ./gmuar.shRun it!
./gmaur.shIt's pretty straight-forward. When you run ./gmuar.sh a menu prompt will open showing you what programs are already installed and what you can install.
Simply follow the instructions.
- ▣ selected -- will be installed
- □ unselected -- will not be installed
If a program is already installed, it will have the tag [INSTALLED] beside its name e.g.

You can run ./gmuar -p to pre-select all the software that you don't have installed. By default, GMUAR will not pre-select uninstalled software in the menu.
- Simply create a new
.shfile under the relevant category. - You can also create new categories, just remember to add them in the
categories_arrin thedescriptions.shfile - The order of insatallation of categories is determined by the order of categories in
categories_arr.
If I want to add gimp to GMUAR. I consider it a category desktop software:
touch categories/desktop/gimp.sh Open the file and add:
#!/bin/bash
# name of the package in apt (like in `sudo apt install gimp`)
package_name="gimp"
# name of this file i.e. gimp.sh without the extension
script_name="gimp"
# installation function should be script_name.ub()
gimp.ub() {
# print what you are installing
echo -e "\n\ninstalling Gimp...\n"
# add the commands that would correctly install Gimp
sudo add-apt-repository ppa:otto-kesselgulasch/gimp -y
sudo apt-get update -y
sudo apt-get install gimp -y
}
# installation check function should be script_name.is_installed()
gimp.is_installed() {
# add how you would check if Gimp is install
# if you installed it with apt or the executable is added to PATH (e.g. snap packages)
# then this is enough
check_is_apt_installed $1 $2
}package_nameandscript_nameMUST be definedpackage_nameis usually the name the package has inaptscript_nameis the name of the.shfile you just created
If you want to create a new category called business, create a folder called business under categories folder:
mkdir -p categories/business- Then add
businessto thecategories_arrin thedescriptions.shfile
#!/bin/bash
# arrays
declare -A gmu_packagenames # apt package names of programs
declare -A gmu_descriptions # descriptions of programs
declare -A gmu_categories # category of routine
declare -a categories_arr=("setup" "utilities" "desktop" "development" "customization" "business")
for directory in "${!categories_arr[@]}"; do
for file in "categories/${categories_arr[$directory]}"/*; do
. "$file"
gmu_packagenames[$script_name]=$package_name
gmu_descriptions[$script_name]=$script_name
gmu_categories[$script_name]="${categories_arr[$directory]}"
done
done- Then you can continue to add your software files in this new category
- If you do not install a program using
aptyou can usecheck_installed_by_files_existto check for certain files or binaries:postman.is_installed() { # will check for the file "$HOME/src/Postman/Postman" to see that Postman exists check_installed_by_files_exist $1 $2 "$HOME/src/Postman/Postman" }
- The
check_installed_by_files_existfunction can take multiple args as well as wildcards:your_program.is_installed() { $FILE_1="$HOME/src/your_program/your_program_executable_1" $FILE_2="$HOME/src/your_program/your_program*.config" $FILE_3="$HOME/src/your_program/your_program*.AppImage" check_installed_by_files_exist $1 $2 $FILE_1 $FILE_2 $FILE_3 }
- To get a feel of how this script works, you can clone this repository and run:
docker build -t gmuar/gmuar .
sudo docker run -it gmuar/gmuar:latest /bin/bash- Go to the Demo

- Run the following commands
cd ~/GetMeUpAndRunningDemo/GetMeUpAndRunning
./gmuar.sh- If you would like me to add a certain software, just open up an issue
- If you would like to make a contribution, just fork the repo and make a pull request
- All kinds of contributions, optimizations and suggestions etc are welcomed
- These scripts have only been tested on Ubuntu 20.04
- It is your responsibility to check the install scripts and ensure whats to be installed is compatible with your system.

