UPSs fall into two categories, which I'll call ``smart'' and ``dumb''. The difference between the two is the amount of information one can get from the UPS and the amount of control one can exert over the UPS.
Usually smart UPSs can be operated in dumb mode. This is useful because as far as I know, the company which manufactures the most popular smart UPS (namely APC) will only disclose the communication protocol for their UPSs to people who sign a non-disclosure agreement.
As far as I know, the only smart UPS available which is easy to communicate with under Linux are those made by Best. Furthermore, BEST fully documents the smart mode (and the dumb mode) of their UPSs. BEST also supplies source code for programs which can communicate with their UPSs.
All the packages listed in section Software will communicate with a UPS in dumb mode. This is all you really need. The ones specifically for the APC UPSs make various claims as to being usable in smart mode, but I don't know exactly what they permit. A full implementation would give you a pop-up window with all sorts of fun gauges displaying various statistics for the UPS, such as load, internal temperature, fault history, input voltage, output voltage, etc. It seems like the smupsd-0.9-1.i386.rpm
package (section Software) approaches this. I'm not sure about the others.
The rest of this document is pretty much confined to configuring your system to work with a dumb UPS. The general idea is about the same with a smart UPS, but the details of how powerd
would need to work and what kind of cable you need are different for a smart UPS.