MMMMMMMMMMMMMMMMMMMMMMMMMmds+.
MMm----::-://////////////oymNMd+`
MMd /++ -sNMd:
MMNso/` dMM `.::-. .-::.` .hMN:
ddddMMh dMM :hNMNMNhNMNMNh: `NMm
NMm dMM .NMN/-+MMM+-/NMN` dMM __ __ _ _ ____ _
NMm dMM -MMm `MMM dMM. dMM | \/ (_)_ __ | |_/ ___| ___| |_ _ _ _ __
NMm dMM -MMm `MMM dMM. dMM | |\/| | | '_ \| __\___ \ / _ \ __| | | | '_ \
NMm dMM -MMm `MMM dMM. dMM | | | | | | | | |_ ___) | __/ |_| |_| | |_) |
NMm dMM .mmd `mmm yMM. dMM |_| |_|_|_| |_|\__|____/ \___|\__|\__,_| .__/
NMm dMM` ..` ... ydm. dMM |_|
hMM- +MMd/-------...-:sdds dMM
-NMm- :hNMNNNmdddddddddy/` dMM
-dMNs-``-::::-------.`` dMM
`/dMNmy+/:-------------:/yMMM
./ydNMMMMMMMMMMMMMMMMMMMMM
\.MMMMMMMMMMMMMMMMMMM
This is Python App to build a Bash script that will help you configure your Linux Mint computers with all of the applications you want in a single script. This is meant to be as general as possible (using your distro codename), but when I need to make a decision, I make it to work for the most recent version of Linux Mint Cinnamon, right now that is Linux Mint 19 "Tara" Cinnamon. The app gives you a wide variety of packages to choose from, pre-installed software to remove, and cleans up your setup in a quick and easy GUI.
Running the app is super simple, and you have three choices.
- Bash Script to Execute Everything for You: Open a terminal in the directory where
setup.py
is and run the following command. This option tries to download Python 3 and all requirements first, and deletes the virtualenv it runs in. Optionally, you can also use the-d
or--delete
flags to have the script delete the entire directory when its done.
bash run.sh
bash run.sh -d
bash run.sh --delete
- Make the Python Script Executable: Open a terminal in the directory where
setup.py
is and run the following command (to make it executable), then double clicksetup.py
and hit "Run".
chmod +x setup.py
- Run the Script in the Command Line: Open a terminal in the directory where
setup.py
is and run the following command
python3 setup.py
When you run the app, you'll see this screen:
You can navigate through the various tabs, checking boxes for things you'd like to install/uninstall. The "Git" page also has text boxes if you'd like to setup a git cache so you don't have to enter credentials as often.
Once you are ready, click the "MintSetup" button at the bottom. If you have any settings that are odd (like installing R packages without install R) a dialog will pop up. If everything is fine, you'll see the dialog below asking if you're ready to set up your computer:
Once you click yes, you're done! If you're running in the terminal, the script will notify you what is happening in real time:
- How does it work?
- Is anything installed that I can't disable?
- What is a distribution codename?
- What software do I have the option to install?
- What software do I have the option to uninstall?
The commands.json
file acts a huge dictionary that maps the appropriate software to the appropriate commands to install them. The Python3 app runs the GUI and records your choices, then uses this dictionary to compile all the necessary commands you need into a Bash script called your_setup.sh
in the /bin folder. Feel free to check out your setup script there.
The app does a dist-upgrade and downloads cURL by default. Here is a full list of everything else you can download:
It's kind of like a version for Ubuntu-based OSs. You can find yours by running the following command in the terminal:
alias upstream-lsb="grep DISTRIB_CODENAME /etc/upstream-release/lsb-release | grep -o --colour=never \"[a-z-]*$\""
- General
- Deluge
- Docker
- Google Chrome
- HTop
- Laptop Mode Tools
- Neofetch/Screenfetch
- Owncloud Desktop Sync
- Spotify
- VLC
- Zoom
- Programming
- Git
- Git
- with option to configure a username/email cache
- Python 3
- Pip
- Spyder 3
- Python Packages (Pip)
- numpy
- pandas
- setuptools
- virtualenv
- wheel
- Python Packages (System)
- build-essential
- libffi-dev
- libssl-de
- libxslt1-dev
- matplotlib
- python3-pytest
- python3-dev
- python3-tk
- zliblg-dev
You also have the option to remove some of the pre-installed software:
Simple script to take a "requirements.txt" file and strip the specific versions from it. Below demonstrates what I mean by this with "example==9.3.4" being a typical entry in a "requirements.txt" file and "example" being the output from my script.
example==9.3.4 ---> example
If you want to bring over the Python packages you have installed, run the following command:
$ pip freeze > requirements.txt
For Python 2.X you probably want to probably want to prepend the command with "python -m" and for Python 3.X you would probably want "python3 -m".
- 1.0.x : (March 17th, 2018 - September 11th, 2018) | Just one version to setup
- 1.1.x : (September 12th, 2018 - November 24th, 2018) | Full and Lite versions
- 1.2.x : (November 25th, 2018 - April 26th, 2019) | Added weekly scheduled updates
- 2.0.x : (April 27th, 2019 - Present) | GUI added to customize installation
- Add "on Hover" information about software in the GUI
- Add more options
- Add testing/automated testing/CI