Smxi Manual :: Configuration and Operation Information
Page Version: 1.0.8 Page Updated: October 25 2012
- Basic smxi script features and functions
- Script Installation
- smxi options
- User set smxi script options
- Using smxi with an apt proxy
- Other useful things to know in console
- Sgfxi Manual
Basic smxi script features and functions
The script has many features, many of which will only appear once to users, others of which are always there. See smxi navigation page for full list of all current smxi functions and features.
After doing the initial system check, and asking a few questions for configurations, these are the main options you will see:
- Script information. This section shows your current kernel, when you last used script to update system, when you last ran script, and some other information. This can be useful especially on systems you don't update that often (recommended: always upgrade at least 1 time per month. Less often is risky.)
- Kernel Options. Offers current stable kernel as default, and offers advanced options that let you install other, older versions, as well as various other useful things.
- dist-upgrade warning section. Offers live warnings of current and past sid problems. After you agree to continue (hint: sid is almost never in the green, trouble free state, it's usually yellow, safe but with fixes), you will see a 'update these configuration files' information piece. Take a quick look at those, and if the upgrade asks if you want to keep or replace your config file for that item, say y instead of the normal n.
- pre dist-upgrade fixes, if any, will then run.
- dist-upgrade section, includes error handling to let you know if upgrade went fine or exited with errors.
- post dist-upgrade fixes will run, if any.
- miscellaneous options including:
- package-install - groups of common package install options, including non-free stuff like flash and googleearth installer, and office installers. Note: the LibreOffice/OpenOffice.org installer offers language pack selections and some other goodies you might not be aware of. Also utility and other package install options.
- package-removal - lists of various package groups you might want to remove, like wifi, german components, etc.
- clean-up-stuff - various cleanup options, like kernel remover (note: always leave at least one old kernel installed to avoid possible future problems)
- miscellaneous-tweaks - things like the popular mozilla settings and file hander tweaks, and other things that vary over time, check it out.
- kernel-options - Repeats the initial kernel options section in case you want to do something without the upgrade section, or after it.
- continue - goes on to graphics installer question
- quit - exits smxi at that point if you don't need to do anything more. Note, graphics installer has a start kde/init 5 option, so you can always use that to get back to your desktop
- graphics installer - this uses the sgfxi graphics installer to install nvdia, and usually ati fglrx proprietary drivers (ati has been erratic over the past year, but they usually work). Also offers xorg driver install, as well as starting your x/desktop
smxi home page
The script home page can be found at the script forums.
Script installation - smxi.zip method
For all the possible different ways to install smxi, please read the complete installation options. For most people, however, the following is probably all you need to know:
This method will download and extract the smxi.zip package. This requires the unzip utility. So first let's check if you have it:
# type this command: which unzip # if it gives you an answer, you have it. # If nothing happens when you do that, just do this: apt-get update && apt-get install unzip # or, if you prefer aptitude, do: aptitude update && aptitude install unzip
Ok, so now we're ready to get the file, which contains smxi, svmi, and sgfxi.
# as root, run the following command cd /usr/local/bin && wget -Nc smxi.org/smxi.zip && unzip smxi.zip && smxi
If everything worked as expected, it should, if you are X (KDE, Gnome, etc), ask if you want to turn off X and start again.
This method installs smxi, svmi, and sgfxi, all ready to go.
Smxi has a wide range of options, that have been added over the years to solve specific issues people had, or to trigger more customized behaviors that defaults don't handle as well, or that are simply extra features that most people don't normally need.
You can also see the smxi/sgfxi/svmi options page for more information.
Since these options change over time, I can't guarantee each one listed here will always be present, but most of these are pretty standard by now, and should not change that much. However, always check: smxi -h
to see what the latest supported options and features are. This -h option is present on all the scripts I do, as are a few others (-U for update, -j for color scheme).
How to use the smxi script options
Smxi, and all other scripts here, use standard option triggers, and are all either single letter, or single letter plus further arguments. If you aren't familiar with how to use options, it's a good thing to learn, since it opens up a lot wider range of fine tuning, control, and features, than using just the defaults would give you.
You can put together options, like this:
or use them separated:
-giktw -f -x
You can run this script with any combination of these options, as long, of course, as tehy don't conflict with each other.
Single letter options are very convenient since you can put them together, like this: -ik or use them singly, like this: -w -x
Each option, or group of options, must begin with a dash:
skips the system info, kernel install, and warning.
smxi script options: skipping parts of script
The following allow you skip parts of the du script:
- -d Skips dist-upgrade if you also select the w option.
- -e Skips some of the 'Please hit enter to continue' questions.
- -g Skips the graphics install question.
- -i Skips the system information section.
- -k Skips the kernel install question.
- -r Skips check for latest, restart, and downloading latest script version. This skips the restart of the script, that is. Not recommended for most users except when they are rebooting from a fresh kernel install and running the script again.
- -s Skips some parts of script that require an internet connection. Avoid using this since it disables almost all script functionality.
- -S Skips the internet connection test. Use this if script fails connection test but you know your connection is fine. (this option is not recommended and may not always work)
- -t Skips the Post dist-upgrade options section.
- -w Skips the du warnings section.
would go directly to the misc options section after the dist-upgrade. smxi -ki would skip the kernel install question and the information section.
smxi-options that can be run in X/Desktop
The following options can be run in X/Desktop as root, and let you run the post upgrade section of the script only. The warnings/upgrade/graphics install parts are turned off
- -G Runs smxi in Graphics/Gui mode. Skips upgrade/warning section. Can be run in X/Desktop, lets' you run the post upgrade options like cleanup, kernel install, package install, and so on.
The following options can be run in X/Desktop, and provide useful information about various things
- -h Prints this help menu.
- -U Forces an update of script before it runs again.
- -v Prints version and system information, including distro version, current kernel, apt update and full-upgrade last used, and last use of smxi.
- -W Requires argument: c (print current configs) OR w (print warnings) OR
wc (prints first the smxi warnings, then configs). Like this: smxi -W wc
Note: if you want to get the live, current configs/warnings, and not the ones left from your last smxi use, you must be root in terminal/console.
- -! 20 (that's an exclamation mark) Triggers update of ALL smxi components, including sgfxi, svmi, and inxi.
- -! 21 (that's an exclamation mark) Downloads and installs rbxi package to /usr/local/bin.
smxi advanced options
The following are advanced script options, and are for doing things that aren't common, but can be useful to you:
- -I Sets different Init level for X restart. Requires this syntax: -I 3
Please note, the number is the init level you want the script to start x in.
- -j Alternate text/output script colors. Requires this syntax: -j 0 (sets to monochrome )
-j 1 (script default); -j 2 (alternate color scheme); -j 3 (nice earthy scheme)
-j 4 (darker scheme good for consoles with light backgrounds, ie black on white)
smxi, svmi, and sgfxi all use this option, and smxi sends it to svmi or sgfxi if it starts that script.
- -K Advanced Kernel Install. If newer test kernels are available, they will show in the kernel install options. Install advanced kernels at your own risk!
- -m Runs the option to change debian mirrors in /etc/apt/sources.list
- -M Runs the option to change default kernel mirrors for smxi
- -p Runs apt-get update without using pdiffs. Good for fast connections.
- -P Run script with Proxy settings for connection, requires this syntax:
- -U Forces an update of script before it runs again.
- -x Runs extra script features that are not core to central functionality.
- -! 20 Triggers update of ALL smxi components, including sgfxi, svmi, and inxi.
- -! 21 Downloads and installs rbxi package to /usr/local/bin.
- -! 40 Runs debdelta-upgrade prior to running system upgrade command (requires debdelta package). Note that you can't use apt-get clean becuase you need the deb archives installed to run the debdelta process on. Use apt-get/aptitude autoclean instead. Please verify this for yourselves, I don't use this feature.
User set smxi script options
You can also have the script do some other things by editing its configuration file /etc/smxi.conf. See sticky options for more powerful methods of setting smxi user options permanently.
Please note that file does not exist until the first time the script runs, so if you want to add any of these and don't have the file, just create it.
For a complete set of sticky options, please look at smxi sticky options as well.
hold-install=<package list separated by ^> - This option allows you to add packages to the script automatic hold/release function that will help you avoid temporary issues with broken packages, or to keep packages you don't want to upgrade, without forgetting about them. Example:
Note: Important: no spaces, only use ^ as package name separator!
DEPRECATED: please use sgfxi sticky options instead.
sgfxi=<some normal sgfxi options, not standard in graphics installer>, for example, if you add the line:
to /etc/smxi.conf and your nvidia install will automatically use the argument -q
Note that these are arguments supported by sgfxi, not by smxi, smxi will merely add these to the arguments it sends sgfxi when you do your graphics driver install. This does not support any argument / option that requires extra information, like: -o 173.12.23 for example, just single letter options for sgfxi graphics install.
Using smxi with an apt proxy
Update: I consider approx to be far too buggy to recommend, I'm sorry, I have had nothing but failures with it, and am no longer able to use it in any system, so I'm leaving this up just as a legacy how-to. I believe apt-cacher is more reliable, but I haven't used it so I can't recommend it or not recommend it, and I also have no how-to available for it.
Smxi works with apt proxies as long as the proxy url follows a very fixed convention. This feature was added Jan. 27 2009, and is quite basic. But if you enjoy using either apt-proxy or approx (approx is recommended, it's easy to setup, and seems to be relatively bug free), and are willing to use the following naming conventions for your repos, you can use smxi fine. The only catch is that the repo switching options -m and -M will not work. And the non free autocheck/update tool will also not work.
I needed to add this feature because I'm testing approx locally here, and too many parts of smxi broke when I added in the local proxy urls for the sources.
Setting up approx
There's a fine setup how-to for approx that should get you on your way. I didn't need any more information than was provided there to get approx up and running. The only thing I'd like to change is moving the /var/cache/approx directory to another, dedicated data partition, but other than that, the how-to was all you need to know.
Just pick the machine in your network to use as the apt proxy server that you don't mind being on, since you can't use apt without the apt proxy machine being turned on after you convert to using an apt proxy like approx. I chose one that uses very little energy, but which is still reasonably strong (an old PIII box) and silent.
Proxy port on proxy machine must be 9999
Please note, you MUST use the default proxy port on your apt proxy box, 9999, because smxi will be testing for :9999 to determine if a proxy apt agent is being used instead of standard.
Repo proxy names supported by smxi
This is the supported syntax for your (let's say you're using approx) approx proxy urls. There are two forms you can use, short syntax or full, but please make sure to use one of them to avoid smxi errors.
Repo Proxy Name Full Syntax
# Debian primary repos: use for sid, testing, and stable debian branches. debian-main # security debian-security # volatile debian-volatile ## aptosid repos: anything with the term aptosid in it: aptosid-main # and for alternate repo aptosid-alt # mepis: anything with the term 'mepis' in it mepis ## miscellaneous # for multimedia stuff, the french guy # anything with the term 'debian-multimedia' in it: debian-multimedia ## opera: anything with 'opera' opera # skype: anything with 'skype' skype # swiftfox: anything with 'swiftfox' swiftfox # virtualbox repos virtualbox
Repo Proxy Name Short Syntax
## debian primary repos # this would be for sid, testing, and stable debian branches. deb-main deb-sec # for debian security deb-vol # for debian volatile ## aptosid repos deb-ats-alt # first list your alternate aptosid repo, if used deb-ats-main # then your primary aptosid repo # mepis repos deb-mep ## for multimedia stuff, the french guy deb-mm ## opera repos deb-op # skype repos deb-skp # swiftfox repos deb-swift # virtualbox repos deb-vb
Because of the randomness of your own proxy server naming, it's not possible to do any more fine tuned detections, but smxi still needs to know that you have aptosid, mepis, or whatever other sources it might need to check before doing anything.
Local sources.list syntax
In your local sources.list file, /etc/apt/sources.list (or sub, sources.list.d/...list files if you run aptosid), you'd have something like this:
Local sources.list full syntax
# remember, the alt repo for aptosid needs to go FIRST if you want it be # used in preference to the primary aptosid one deb http://my-apt-proxy:9999/debian-main/ main sid contrib non-free deb http://my-apt-proxy:9999/aptosid-alt/ main sid contrib non-free (etc... deb http://my-apt-proxy:9999/aptosid-main/ main sid contrib non-free (etc...) # and some sample alternate types: deb http://my-apt-proxy:9999/opera/ sid non-free
Local sources.list short syntax
deb http://my-apt-proxy:9999/deb-main/ main sid contrib non-free # remember, the alt repo for aptosid needs to go FIRST if you want it be # used in preference to the primary Aptosid one deb http://my-apt-proxy:9999/deb-ats-alt/ main sid contrib non-free (etc...) deb http:////my-apt-proxy:9999/deb-ats-main/ main sid contrib non-free (etc...) # and so on... # and some sample alternate types: deb http://my-apt-proxy:9999/deb-op/ sid non-free
And of course, you can also use the actual local IP address directly for your proxy machine, but I prefer using names, which you can set in /etc/hosts, like this:
192.168.10.122 my-apt-proxy ## if the proxy is on your local machine, it would be 127.0.0.1 (localhost default IP) # on that machine, and all the other machines would have the actual IP # address of your proxy machine. 127.0.0.1 my-apt-proxy
In this case, 192.168.10.122 is the address (must be a static, non-dhcp address in the network) of the proxy server on your local network, and my-apt-proxy is the name you give it for the local machine that will be its client. That name could be whatever you want.
One advantage, by the way, of not using the IP address in the sources.list file directly is that if you want to switch machines to use as apt proxy server, all you'd need to do is switch the IP address in /etc/hosts on each machine in your network.
Easier to follow and read proxy naming on local machine
Tip: if you give each proxy locally a distinct and clear name, it's easier to see what apt updating is occuring. In other words, rather than using my-apt-proxy, you can use, in your sources.list file and in /etc/hosts, something like this (but use the same syntax type option as listed.
debian-main-proxy debian-multimedia-proxy aptosid-main-proxy swiftfox-proxy
which results in sources like this:
Unstable deb http://debian-main-proxy:9999/deb-main unstable main contrib non-free #deb-src http://debian-main-proxy:9999/deb-main unstable main contrib non-free # Testing deb http://debian-main-proxy:9999/deb-main testing main contrib non-free #deb-src http://debian-main-proxy:9999/deb-main testing main contrib non-free # opera deb http://opera-proxy:9999/deb-op sid non-free #deb http://opera-proxy:9999/deb-op testing nonfree # Aptosid Sources deb http://aptosid-alt-proxy:9999/deb-ats-alt/ sid main contrib non-free fix.main fix.contrib fix.non-free deb http://aptosid-main-proxy:9999/deb-ats-main/ sid main contrib non-free fix.main fix.contrib fix.non-free # deb-src http://aptosid-main-proxy:9999/deb-ats-main/ sid main contrib non-free fix.main fix.contrib fix.non-free
using /etc/hosts like this:
127.0.0.1 debian-main-proxy aptosid-alt-proxy aptosid-main-proxy debian-multimedia-proxy opera-proxy 127.0.0.1 swiftfox-proxy
Now when the update runs, assuming you matched the proxy names in sources.list and /etc/hosts correctly, you'll see the updating using that syntax, which is easier to follow and read, and if a failure occurs, you'll know which server it came from, instead of the one my-apt-proxy name.
Proxy server config file syntax
In approx, the corresponding /etc/approx/approx.conf file would have entries like this:
Proxy server config file Full syntax
debian-main http://ftp.uk.debian.org/debian # an alternate Aptosid repo, should go first for Aptosid users aptosid-alt ftp://ftp.spline.de/pub/aptosid/debian/ # the primary repo aptosid-main http://aptosid.com/debian swiftfox http://getswiftfox.com/builds/debian
Proxy server config file Short syntax
deb-main http://ftp.uk.debian.org/debian # an alternate Aptosid repo, should go first for Aptosid users # the primary repo deb-ats-alt ftp://ftp.spline.de/pub/aptosid/debian/ # or if you want the fuller, anything with Aptosid in it deb-ats-main http://aptosid.com/debian deb-swift http://getswiftfox.com/builds/debian
And that's about it. Note that it doesn't really matter what the local machine is using as the proxy server name at all, the :9999 is actually what matters, as long as the name you use is in your /etc/hosts and matches the name(s) in your sources.list on the local machines. 9999 sends that request to the listening port of the proxy server machine, which then sends it along to approx.
Easy switching between Debian standard and apt proxy sources with switcher
You can also check out switcher, which is a little script made to let you switch between proxy/approx source.list files and standard Debian ones, which can be useful if you for example use a laptop on your network and while travelling.
Other useful things to know in console
Remember: to scroll up or down in terminal window, use: shift+pageup/pagedown to go up to see something that has scrolled by. This is usually limited to about 6 screens or so back