Brief: smxi is an interactive console script that helps you maintain your Debian installation. You can use it to install upgrades, install graphics drivers, upgrade kernels and much more.
I know that you can do it all with their respective commands. This smxi script gives you everything at one place and in an interactive manner.
smxi is limited to only direct derivates of Debian. Only distributions like AntiX, Aptosid, Epidemic, Linux Mint Debian Edition (LMDE), Mepis are supported. It also supports the testing and Sid branches of Debian. That means Ubuntu and Ubuntu-based distributions are NOT supported as there are many differences between Ubuntu and Debian.
smxi: A Debian sysadmin’s maintenance script
smxi is a maintenance script with a few features that you will appreciate once you start using it. It varies from helping you install a specific office suite to managing multiple Linux kernels on the same machine.
Below are a few features that it offers:
- Automatic installation of GPU drivers, along with necessary patches (even nVidia)
- Installing software (from a simple package to a full fledged Desktop Environment)
- Removing any given software
- System clean up (clearing apt cache, removing old kernels and kernel modules, etc)
- Manage and deploy system upgrades
- Kernel upgrades / Kernel module upgrades
Installing smxi on Debian
smxi tool is not available in Debian repositories. You need to manually download a zip archive from the developer which contains smxi along with some other tools offered by the developer.
It’s just a script so you extract the content of the folder to /usr/local/bin directory.
Use the wget command (you should have it installed) to download the archive file:
wget -N -c https://smxi.org/smxi.zip
Once the zip archive is downloaded, the next step is to extract the archive contents to “/usr/local/bin”:
sudo unzip smxi.zip -d /usr/local/bin/
That is it. You now have smxi “installed” on your Debian machine!
You need to be a superuser (root) to execute the script. Escalating permissions via sudo command will not work.
Become root with this command:
sudo su -
Once you are logged in as root, run the script
Every time you smxi, it will always do an “apt-get update” for you.
As the next step, smxi will ask you if you want either ‘dist-upgrade’ or ‘upgrade’ or ‘continue’ – move ahead without upgrading anything.
Choosing ‘dist-upgrade’ will present you with the following screen.
Reliably identifying which branch of Debian you are running is hard for the script, so now it is asking you which branch of Debian you are on.
Since I am on the stable branch of Debian 11 Bullseye, I will go ahead with the first option ‘debian-stable’.
Once the ‘dist-upgrade’ process is complete, you will see an overview of your system which contains your current kernel version and the latest kernel that is available for your system, date and time when your apt package database was last updated and some hardware information.
Once the upgrade is complete and you are past the system information screen, you now have all the options to take action that smxi offers.
‘package-install’ is the first option available at your fingertips in the script menu. As you might have guessed, selecting this option will help you install a set of applications.
There are a few options here for you that can be chosen from.
Office: For installing LibreOffice, AbiWord and a few other office and productivity tools. There is also option to hold LibreOffice package from upgrading.
Non-free: This sub-menu of ‘package-install’ allows you to install the non-free packages, which are not in the Debian repositories. This includes applications like Chrome, Opera, Skype etc.
Utilities: Under the ‘package-install’ is another sub-menu which helps you install various utilities like htop, gzip etc. This allows you to install the terminal based browsers like Lynx. There are a lot of utilities in categories here. Somewhat like a smaller, command line version of software center. Feel free to explore it.
Another option for you to choose under the ‘package-install’ sub menu is to install a variety of desktop environments like KDE, LXDE, window managers, display manager etc. There are various packages available for a single desktop environment, so choose accordingly.
The ‘package-install’ option also allows you to install one or more servers (or it’s client). The choices are as follows.
apache-mysql-php: This is the first option to install as a server. It installs the Apache2 server, MySQL server and PHP server.
nfs: This [second] option install the NFS (Network File Sharing) server or the NFS client. You get to choose if you want the NFS server or NFS client installed.
samba: This [third] option will prompt you to either install samba (SMB) client or samba server; it also has the option to install “fuse-smb”.
Under the ‘package-removal’ option, you will once again be presented with an unprecedented amount of choices in a list.
The setup here is a bit different. Lets say that you want to remove bluetooth [drivers], input the number for bluetooth (1) and then select the option ‘remove-chosen’ (18) to remove bluetooth.
This allows you to select multiple items to select together for removal, and then remove all of them all at once.
If you go under the ‘clean-up’ option, you will get the following choices to choose from
- clean-smxi-stuff (remove all the items that smxi has created over time)
- clean-cruft (remove all of the files related to an already removed package)
‘miscellaneous-tweaks’ is the fourth option available in smxi menu. This option allows you to perform the following tasks
mozilla-tweaks has more options which include dumping gtk file handler in all Mozilla browsers (Firefox, Iceweasel, Swiftfox, etc), tweak Gecko (Firefox’s browser engine) preferences and add plug-ins to Switftox.
install-graphics: Updates your bashrc, updates locales, change Debian mirrors, change the default run level (read more about run levels here).
The fourth option is ‘legacy-tweaks’. These are tweaks that are considered legacy because they are either obsolete tweaks or that they are no longer required by newer versions of Debian. This option is available for the older installations of Debian.
The sixth option in smxi’s main menu is ‘kernel-options’ helps you configure, add and remove one or more kernel(s).
The first option in the ‘kernel-options’ sub menu allows you install archived kernels. This option exists because sometimes newer kernels can have some hardware issues at times.
The ‘advance-kernel-options’ allows you to add or remove kernel meta package, which includes adding Liquorix kernel sources (if it is supported by your Debian install).
And the final option, ‘kernel-remover’, helps you remove unused kernels (one at a time).
As I said in the beginning of this article, you can do all of this using the regular package manager in Debian. It just presents many things at one place in an interactive manner.
This is something old school and maybe liked by a seasoned sysadmin. I am not sure about you.
Share your thoughts on using smxi and smxi-like tools in the 2020s.