mirror of
https://github.com/weewx/weewx.git
synced 2026-04-19 00:56:54 -04:00
* Got test suites working again. * Updated TODO * indicate specific firmware for cc3000 * clarify rainwise firmware * Further refinement - max and maxtime now updated - reworked the progress function, now a method in the class Have left __main__ code in that has been used for testing windSpeed recalculation fix * indicate when calibrations are ignored * Now emits the barometer trend in LOOP packets as field 'trendIcon' Vantage only. * Updated TODO guide, reflecting this morning's phone call. * Presses on, despite database error * Simplified patching by moving metadata code to DaySummaryManager * Got rid of _getVersion() Can now get it from _read_metadata * Remove interval weighting fix from weewx startup Refer TODO.txt * Update TODO.txt * added write timeout to ultimeter driver * better logging when cc3000 loses contact with sensors * document some of the channel, sensor, and logger specifics for the wmr100/wmr200 hardware * Removed the p word, patch.py is now database.py, rejigged wee_database as per skype and followup emails - progress function for fixes included as a method in base class that can be overridden - much changing of logging to give consistent results/output - believe I retained Tom's recent changes to patch.py (commit4acf752) * Picks daily summary weights on the basis of database version * Rewrote the backfill routine (again) * wee_database now uses new version of backfill_day_summary * Fixed problem that prevented cold startup * Revised to reflect latest wee_database incantation * Modified weighting fix Should not mess with lessUpdate Delete lastWeightPatch after successful patch * Check to make sure the daily summaries have not been partially updated. * Revised to reflect latest wee_database incantation * Revised wee_database and interval weighting paras, added windSpeed recalc para * Removed vacuum * Updated what has been done and committed * Better diagnostics with partial update of the daily summaries. * MySQL now uses transaction isolation level READ COMMITTED * Add .config (#204) * Changed semantics of "$last_xxx" tags. * Template test updates including fixing issue #201 (#205) * Add .config * Standardise test skin for index.html.tml to remove "%x %X" locale dependent formatting. Note: Used 24 hour time as AM/PM can also be locale dependent. Also include fixes for line formatting in some other test files and expected results. * sysctlbyname is not available on every platform, so catch AttributeError too, otherwise cheetah fails with a name error * Got rid of tabs * update usb mode info for acurite models * Removed intervalgenRoundTS and archiveDaysAgoSpan. * Simplified tags. Got template test working again. * Somehow, style "indent" got lost * Documented new "$ago" tags. * Documented $ago options, as well as .start and .end * Update changes doc * Stupid typo * use markdown instead of html for README * indenting seems to confuse markdown's handling of urls * Left over $last_day in $spans example (#206) * Add .config * Standardise test skin for index.html.tml to remove "%x %X" locale dependent formatting. Note: Used 24 hour time as AM/PM can also be locale dependent. Also include fixes for line formatting in some other test files and expected results. * Left over $last_day in $spans example. * a user-specified sensor_map will update, not replace, the default sensor_map * Updated the upgrade guide. * ensure that weewx-multi works on deb and rpm as well as setup.py * document the sensor mapping changes * Added comprehensive example to customizing guide. * Updated TODO * Got the weighting update to work on MySQL * added crude caching of pressure in wmr300 * Fixed typo * Fixed little errors. Consistently use "tag", instead of "dot code." * no altimeter, just pressure and barometer * Fixed little HTML problems. * Reformatted, in anticipation of a refactoring of some sections. * Fixed location of 'Version' So it works with automatic replacement of 'Version' * initial experiment with different fonts * override jquery-ui hijacking of toc font family * bring header highlighting to h2 to correlate with toc. reduce post-header margins. * fix some table header cruft. prevent indent sections from overflowing right margin. let the table cells breath. * fix broken tty formatting * Checkpoint Work in progress. * Refined examples of creating new units and groups * Polishing. Or, maybe fiddling? * minor css fixes. rearrange troubleshooting sections about pressure. * minor cleanup to readme * Fixed test suites Add MySQL back to template tests. * Reworked the iteration examples. * Corrected and clarified the units used in the "electricity" example. * remove write_timeout since naming is inconsistent between pyserial versions and there is no backward compatibility * remove write_timeout from ultimeter * Minor changes to users guide * increase body size to 100%. background for code. weeWX in titles. true bold for monospace. prep for direct font comparisons. * Clarified the role of encoding * update utilities guide with suggested wee_database descriptions and args * more compaction * increase margins on html examples. use droid serif for html examples. * Clarified a few things * decode weewx into weeWX * include transaction limit defaults * eliminate transaction-limit * weeWX fixes in install pages. more fixes to utilities. * missed a few code spans * fix version label alignment * use only major.minor for docs * Fix error where import fields that are None can cause Source.mapRawData() to crash in some cases * Updated TODO and NEW_FEATURES * There will be no daykeys if the daily summaries have been dropped. * Restructure usage string, hard code transaction days * dry-run goes with fix-strings, not check-strings * Log daily summary version * No need to check for weewx.debug * include examples in manifest * added examples and extensions to data_files * do not install sample extensions * Can now specify date field separator for Cumulus imports, weewx -> weeWX * Clarified option strings * Rudimentary test of selective daily summary rebuild * No longer allows selective rebuild of the daily summaries if the summaries are not complete * Hardwired UTF-8 encoding, but with a warning comment. * Hardwired UTF-8 encoding, but with a warning comment. * Documented Cumulus import separator config option * Added comments about Tools. * Changed to execute in user environment * Ported to PyMySQL as an alternative to python-mysqldb See https://github.com/PyMySQL/PyMySQL for a description of PyMySQL * Recognize additional MySQL "Can't connect" error * Fixed error in test suites Subsequent tests depended on ordering of a dictionary. * pymysql seems to have problems connecting via file socket unless it is told explicitly about it. * Workaround for pypy compiler * Defaults now support MySQLdb over pymysql * Fixed bug in record augmentation. The augmentation was happening without giving StdConvert a chance to do its thing. * More clear msg when encountering an ImportError * Clarified the relationship between archive period and report_timing option, aded note regarding primacy of the report cycle * Reverted back to MySQLdb only version. * Changed config option names but never changed the code! * One transaction for updating daily high/lows and archive record Formerly, these were done in two transactions. * v3.7.0a2 * Adjustable value for how long to wait after a bad uploader login. Option retry_login. Fixes issue #212. * Fixed Cumulus import rain field issue wee_import will try to use field 26(AA) - midnight reset daily rainfall but if not available due it will revert to field 9(J) or 11(L) * Switched back to __str__ when extracting string out of template. .respond() doesn't seem to encode Unicode characters properly * Fix errors in wee_import WU step-by-step, remove Cumulus version caveat on rain * Now uses dedicated test users 'weewx1' and 'weewx2' * Formal check of the various MySQLdb exceptions. * Added sqlite3 exceptions. * Reworked check_strings() output (#213) Reworked check_strings() screen and syslog output: - now gives progress ala --rebuild-daily - syslog is silent for --check-strings and --fix-strings with --dry-run - left 'Preparing' (rather than 'Starting') but added 'this may take a while' as there is a significant delay in dbmanager.genBatchRows() initialising at line 619 (well there was for 400k records) * reduce debug log spewage in wmr300 driver * Finished formal test of errors * First cut at V3.7 exception hierarchy * Ported the weedb sqlite driver to the new exception hierarchy. * Ported MySQLdb to the new database exception hierarchy. * windSpeed fix now gracefully handles no windSpeed summary table, tweaked --update output/logging * Now picks up absence of windSpeed daily summary * The weedb Connection object can now be used in a "with" clause. * The weedb Cursor object can now be used in a "with" clause. * V3.7.0a3 * more code removal * code formatting only * use apt instructions for debian installs * Reworked --wee-database section of Utilities Guide to reflect current wee-database operation - revised usage - reword --rebuild-daily - reword --check - reword --update * More details on upgrading * Moved start time to just before applying the patch * Accumulator is now initialized with override values from weewx.conf * Added sentences about wee_import/interval and weight patching multiple dbs * remove extensions from rpm and deb packages * v3.7.0b1 * Cleaned up some HTML warnings. * must do a try loop at the read level so we can skip the no data 'errors' and return empty buffer so that a subsequent write will get the station to talk again * Slightly more robust mechanism for decoding last time a file was FTP'd. * adjust wording of weighting description * added examples * simplify * fixed typo * fixed typo * read /etc/default before bailing out * make init script work properly with /etc/default/weewx * make output consistent * more simplification * keep PEP happy * avoid resource consumption from slow reports by extending the StdReport.max_wait. provide log messages when it happens. * new features have move to the roadmap * no more todo items left * do not emit default sensor_map to the config * aborted attempt to get additional battery status * bump to 3.7.0b2 * do recipe using wget instead of curl * forgot the O option to wget * do not warn when calibrations are ignored - the implementation resulted in too many log entries * get rid of tabs * added notes about wmr300 rain counter and logger * added norwegian 'no data available' as 'Ingen data er tilgjengelige' * simplify. eliminate more passive voice and gerunds. * avoid run-on * provide better feedback for operational errors. make manager logging more consistent. * fix typo in wmr300 ConfEditor * decode heatindex and windchill from wmr300 sensor outputs * fixed bad extract_signed invocation * fixed wmr* partial packets note * added mysqldb install instructions to userguide * minor html fixes * added link to wee_extension * clarify acurite sensor transmission periods. * added battery status for all wmr100 remote t/h sensors * added battery status for all wmr100 remote t sensors * document changes to wmr100, wmr200, wmr9x8 drivers. fix 'Calculatios' typo. * fixed inverted wmr200 battery status * rename fault_out to out_fault to match pattern of other faults * make battery status labels consistent across all wmr drivers * wmr300 driver moves from rc to 0.18 * bump to 3.7.0b3 * css fixes: neutralize the glaring yellow; brighten the note green to more closely match the tone of warning red; @media tweaks to match font changes. * fix column title * distinguish selection color from code color * fixed shift bug in weewx-multi * Fixed (I think) issue #219 * update logwatch script to properly handle revised generator log messages refer commit03c3e4ef57 (diff-3cefdd7265f340e9683b0a2d0417b70f)* normalize the quick-start * Merge branch 'development', remote branch 'origin' * fix layout table width on installation pages * v3.7.0b4 * use released_versions instead of previous_versions * Merge branch 'development', remote branch 'origin' * parameterize release rule. make release rule idempotent. * replace cheetahtemplate.org with pythonhosted.org * wee_database --help output was slightly different to reality * Removed BOM at beginning of customizing.htm * wee_database --help output was slightly different to reality * Reworded comment on whether to --update daily summaries. * cater for change in manager log output * remove misleading windGustDir info * bump to 3.7.0 * Added date to change log * escape the dollars in release target * fixed log syntax * adjust log level for wmr100 bad usb report * emit rapidfire cache info only when debug >= 3 * enable post_interval overrides for WOW uploader * Fixes issue #230, exception when using Rapidfire with metric units * Added StdRESTbase back in. It seems that some uploaders still depend on it. * Fixed problem that prevented a MySQL port from being specified. * Added antialias GIF to list of files to be installed. * Make sure GIF files get uploaded * distribute examples in a single directory * distinguish docs/examples vs examples * Fixed bug that prevented a port from being specified for MySQL installations. * Removed redundant change log entry * Add MySQL Error 2003 to exceptions (#234) * Added PR #234 to change log * Documented change in location of the examples * update examples paths in remaining guides. explicitly list all path changes for examples. * By default, autocommit is now enabled for the MySQL driver. Fixes issue #237. Included regression test.
312 lines
12 KiB
HTML
312 lines
12 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
<head>
|
|
<title>weewx: Installation using setup.py</title>
|
|
<meta http-equiv="Content-Language" content="en-us"/>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
|
<link rel="stylesheet" href="css/weewx_docs.css"/>
|
|
<link rel="icon" href="images/favicon.png" type="image/png"/>
|
|
</head>
|
|
|
|
<body>
|
|
|
|
<h1 class="title">weeWX: Installation using setup.py
|
|
<div class='os-icons'>
|
|
<img class='logo' src='images/logo-linux.png' alt=""/>
|
|
<img class='logo' src='images/logo-debian.png' alt=""/>
|
|
<img class='logo' src='images/logo-ubuntu.png' alt=""/>
|
|
<img class='logo' src='images/logo-mint.png' alt=""/>
|
|
<img class='logo' src='images/logo-rpi.png' alt=""/>
|
|
<img class='logo' src='images/logo-redhat.png' alt=""/>
|
|
<img class='logo' src='images/logo-centos.png' alt=""/>
|
|
<img class='logo' src='images/logo-fedora.png' alt=""/>
|
|
<img class='logo' src='images/logo-suse.png' alt=""/>
|
|
</div>
|
|
<div style="clear: both"></div>
|
|
</h1>
|
|
|
|
<p>These are generic instructions for installing weeWX using the Python utility
|
|
<span class="code">setup.py</span>.
|
|
</p>
|
|
|
|
<h2>Download</h2>
|
|
|
|
<p>
|
|
Download the source archive <span class='code'>weewx-X.Y.Z.tar.gz</span> from <a href="http://weewx.com/downloads"><span class="code">weewx.com/downloads</span></a>.
|
|
</p>
|
|
|
|
<h2 id="setup_prerequisites">Install Prerequisites</h2>
|
|
|
|
<p>Ensure that Python2 is installed. Python 2.6 or 2.7 will work,
|
|
but Python 3 will not.</p>
|
|
<pre class='tty cmd'>python -V</pre>
|
|
<p>Then install required python packages using the package management software for your system (<em>e.g.</em>, <span class='code'>apt-get</span>, <span class='code'>yum</span>, <span class='code'>yast</span>) or the Python Package Management System (<span class='code'>pip</span>). Select the appropriate tab for specific instructions.</p>
|
|
|
|
<div class='tabs'>
|
|
<div id='prereq-tab-debian' class='tab selected' onclick="showprereq('debian')">Debian <img src='images/logo-debian.png' class='thumbnail' alt=""/> <img src='images/logo-ubuntu.png' class='thumbnail' alt=""/> <img src='images/logo-mint.png' class='thumbnail' alt=""/></div>
|
|
<div id='prereq-tab-redhat' class='tab' onclick="showprereq('redhat')">Redhat <img src='images/logo-redhat.png' class='thumbnail' alt=""/> <img src='images/logo-centos.png' class='thumbnail' alt=""/> <img src='images/logo-fedora.png' class='thumbnail' alt=""/></div>
|
|
<div id='prereq-tab-suse' class='tab' onclick="showprereq('suse')">SuSE <img src='images/logo-suse.png' class='thumbnail' alt=""/></div>
|
|
<div id='prereq-tab-pip' class='tab' onclick="showprereq('pip')">pip</div>
|
|
</div>
|
|
<div id='prereq' style='clear:both'>
|
|
<div id='prereq-debian'>
|
|
<pre class='tty'># debian, ubuntu, mint, raspbian
|
|
|
|
# required packages:
|
|
<span class="cmd">sudo apt-get install python-configobj
|
|
sudo apt-get install python-cheetah
|
|
sudo apt-get install python-imaging</span>
|
|
|
|
# required if hardware is serial or USB:
|
|
<span class="cmd">sudo apt-get install python-serial
|
|
sudo apt-get install python-usb</span>
|
|
|
|
# required if using MySQL:
|
|
<span class="cmd">sudo apt-get install mysql-client
|
|
sudo apt-get install python-mysqldb</span>
|
|
|
|
# required if using FTP on Raspbian systems:
|
|
<span class="cmd">sudo apt-get install ftp</span>
|
|
|
|
# optional for extended almanac information:
|
|
<span class="cmd">sudo apt-get install python-dev
|
|
sudo apt-get install python-pip
|
|
sudo pip install pyephem</span></pre>
|
|
</div>
|
|
<div id='prereq-redhat' style='display:none'>
|
|
<pre class='tty'># redhat, centos, fedora
|
|
|
|
# required packages:
|
|
<span class="cmd">sudo yum install python-configobj
|
|
sudo yum install python-cheetah
|
|
sudo yum install python-imaging</span>
|
|
|
|
# required if hardware is serial or USB:
|
|
<span class="cmd">sudo yum install python-setuptools
|
|
sudo easy_install pyserial
|
|
sudo easy_install pyusb</span>
|
|
|
|
# required if using MySQL:
|
|
<span class="cmd">sudo yum install mysql-client
|
|
sudo yum install python-mysqldb</span>
|
|
|
|
# optional for extended almanac information:
|
|
<span class="cmd">sudo yum install pyephem</span></pre>
|
|
</div>
|
|
<div id='prereq-suse' style='display:none'>
|
|
<pre class='tty'># suse
|
|
# on some SuSE systems, use 'yast -i' instead of 'zypper install'
|
|
|
|
# required packages:
|
|
<span class="cmd">sudo zypper install python-configobj
|
|
sudo zypper install python-imaging
|
|
sudo zypper install python-Cheetah</span>
|
|
|
|
# required if hardware is serial or USB:
|
|
<span class="cmd">sudo zypper install python-pyserial
|
|
sudo zypper install pyton-usb</span>
|
|
|
|
# required if using MySQL:
|
|
<span class="cmd">sudo zypper install mysql-community-server-client
|
|
sudo zypper install python-mysql</span>
|
|
|
|
# optional for extended almanac information:
|
|
<span class="cmd">sudo zypper install python-devel
|
|
sudo zypper install setuptools
|
|
sudo pip install pyephem</span></pre>
|
|
</div>
|
|
<div id='prereq-pip' style='display:none'>
|
|
<pre class='tty'># python setup tool (pip)
|
|
|
|
# required packages:
|
|
<span class="cmd">sudo pip install configobj
|
|
sudo pip install Cheetah
|
|
sudo pip install pillow</span>
|
|
|
|
# required if hardware is serial or USB:
|
|
<span class="cmd">sudo pip install pyserial
|
|
sudo pip install pyusb</span>
|
|
|
|
# optional for extended almanac information:
|
|
<span class="cmd">sudo pip install pyephem</span></pre>
|
|
</div>
|
|
</div>
|
|
|
|
<h2>Install weeWX</h2>
|
|
|
|
<p>Expand the source archive:</p>
|
|
<pre class="tty cmd">tar xvfz weewx-X.Y.Z.tar.gz</pre>
|
|
<p>Change directory:</p>
|
|
<pre class="tty cmd">cd weewx-X.Y.Z</pre>
|
|
<p>To specify a location different from the standard
|
|
<span class='code'>/home/weewx</span>, modify the parameter
|
|
<span class='code'>home</span> in the
|
|
<span class='code'>setup.cfg</span> file.</p>
|
|
|
|
<p>Then build and install:</p>
|
|
<pre class="tty cmd">./setup.py build
|
|
sudo ./setup.py install</pre>
|
|
<p>
|
|
The installer will prompt for a location, latitude/longitude, altitude, station type, and parameters specific to the station.
|
|
</p>
|
|
|
|
<h2>Run</h2>
|
|
|
|
<p>Run the main program directly:</p>
|
|
<pre class="tty cmd">cd /home/weewx
|
|
sudo ./bin/weewxd weewx.conf</pre>
|
|
<p>Or as a daemon automatically when the computer starts:</p>
|
|
|
|
<div class='tabs'>
|
|
<div id='startup-tab-debian' class='tab selected' onclick="showstartup('debian')">Debian <img src='images/logo-debian.png' class='thumbnail' alt=""/> <img src='images/logo-ubuntu.png' class='thumbnail' alt=""/> <img src='images/logo-mint.png' class='thumbnail' alt=""/></div>
|
|
<div id='startup-tab-redhat' class='tab' onclick="showstartup('redhat')">Redhat <img src='images/logo-redhat.png' class='thumbnail' alt=""/> <img src='images/logo-centos.png' class='thumbnail' alt=""/> <img src='images/logo-fedora.png' class='thumbnail' alt=""/></div>
|
|
<div id='startup-tab-suse' class='tab' onclick="showstartup('suse')">SuSE <img src='images/logo-suse.png' class='thumbnail' alt=""/></div>
|
|
</div>
|
|
<div id='startup' style='clear:both'>
|
|
<div id='startup-debian'>
|
|
<pre class="tty cmd">cd /home/weewx
|
|
sudo cp util/init.d/weewx.debian /etc/init.d/weewx
|
|
sudo chmod +x /etc/init.d/weewx
|
|
sudo update-rc.d weewx defaults 98
|
|
sudo /etc/init.d/weewx start</pre>
|
|
</div>
|
|
<div id='startup-redhat' style='display:none'>
|
|
<pre class="tty cmd">cd /home/weewx
|
|
sudo cp util/init.d/weewx.redhat /etc/rc.d/init.d/weewx
|
|
sudo chmod +x /etc/rc.d/init.d/weewx
|
|
sudo chkconfig weewx on
|
|
sudo /etc/rc.d/init.d/weewx start</pre>
|
|
</div>
|
|
<div id='startup-suse' style='display:none'>
|
|
<pre class="tty cmd">cd /home/weewx
|
|
sudo cp util/init.d/weewx.suse /etc/init.d/weewx
|
|
sudo chmod +x /etc/init.d/weewx
|
|
sudo /usr/lib/lsb/install_initd /etc/init.d/weewx
|
|
sudo /etc/init.d/weewx start</pre>
|
|
</div>
|
|
</div>
|
|
|
|
<h2>Status</h2>
|
|
|
|
<p>
|
|
Look in the system log for messages from weeWX.
|
|
For example, on Debian systems:
|
|
</p>
|
|
<pre class='tty cmd'>sudo tail -f /var/log/syslog</pre>
|
|
|
|
<h2>Verify</h2>
|
|
|
|
<p>
|
|
After about 5 minutes, open the station web page in a web browser. You
|
|
should see your station information and data.
|
|
</p>
|
|
<pre class='tty'><a href="file:///home/weewx/public_html/index.html">file:///home/weewx/public_html/index.html</a></pre>
|
|
<p>If your hardware supports hardware archiving, then how long you wait
|
|
will depend on the
|
|
<a href="usersguide.htm#archive_interval">archive interval</a>
|
|
set in your hardware.
|
|
</p>
|
|
|
|
<h2>Customize</h2>
|
|
|
|
<p>
|
|
To enable uploads such as Weather Underground or to customize reports,
|
|
modify the configuration file
|
|
<span class='code'>/home/weewx/weewx.conf</span>. See the
|
|
<a href="usersguide.htm">User Guide</a> and
|
|
<a href="customizing.htm">Customization Guide</a> for details.
|
|
</p>
|
|
|
|
<p>
|
|
WeeWX must be restarted for configuration file changes to take effect.
|
|
</p>
|
|
|
|
<h2>Uninstall</h2>
|
|
|
|
<p>
|
|
To uninstall, simply delete the directory
|
|
<span class='code'>/home/weewx</span>. This will delete weeWX,
|
|
configuration files, and data.
|
|
</p>
|
|
<pre class='tty cmd'>sudo rm -r /home/weewx
|
|
sudo rm /etc/init.d/weewx</pre>
|
|
|
|
<h2>Layout</h2>
|
|
|
|
<p>The installation will place weeWX in the
|
|
<span class="code">/home/weewx</span> directory with the following
|
|
layout: </p>
|
|
<table class='locations' style="width: auto;">
|
|
<tr>
|
|
<td align='right'>executable:</td>
|
|
<td class='tty'>/home/weewx/bin/weewxd</td>
|
|
</tr>
|
|
<tr>
|
|
<td align='right'>configuration file:</td>
|
|
<td class='tty'>/home/weewx/weewx.conf</td>
|
|
</tr>
|
|
<tr>
|
|
<td align='right'>skins and templates:</td>
|
|
<td class='tty'>/home/weewx/skins/</td>
|
|
</tr>
|
|
<tr>
|
|
<td align='right'>sqlite databases:</td>
|
|
<td class='tty'>/home/weewx/archive/</td>
|
|
</tr>
|
|
<tr>
|
|
<td align='right'>generated web pages and images:</td>
|
|
<td class='tty'>/home/weewx/public_html/</td>
|
|
</tr>
|
|
<tr>
|
|
<td align='right'>documentation:</td>
|
|
<td class='tty'>/home/weewx/docs/</td>
|
|
</tr>
|
|
<tr>
|
|
<td align='right'>examples:</td>
|
|
<td class='tty'>/home/weewx/examples/</td>
|
|
</tr>
|
|
<tr>
|
|
<td align='right'>utilities:</td>
|
|
<td class='tty'>/home/weewx/bin/</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<p class='copyright'>
|
|
© <a href='copyright.htm'>Copyright</a> Tom Keffer
|
|
</p>
|
|
|
|
<script type="text/javascript">
|
|
function showprereq(id) {
|
|
document.getElementById('prereq-debian').style.display = 'none';
|
|
document.getElementById('prereq-redhat').style.display = 'none';
|
|
document.getElementById('prereq-suse').style.display = 'none';
|
|
document.getElementById('prereq-pip').style.display = 'none';
|
|
|
|
document.getElementById('prereq-tab-debian').className = 'tab';
|
|
document.getElementById('prereq-tab-redhat').className = 'tab';
|
|
document.getElementById('prereq-tab-suse').className = 'tab';
|
|
document.getElementById('prereq-tab-pip').className = 'tab';
|
|
|
|
document.getElementById('prereq-' + id).style.display = 'block';
|
|
document.getElementById('prereq-tab-' + id).className = 'tab selected';
|
|
}
|
|
|
|
function showstartup(id) {
|
|
document.getElementById('startup-debian').style.display = 'none';
|
|
document.getElementById('startup-redhat').style.display = 'none';
|
|
document.getElementById('startup-suse').style.display = 'none';
|
|
|
|
document.getElementById('startup-tab-debian').className = 'tab';
|
|
document.getElementById('startup-tab-redhat').className = 'tab';
|
|
document.getElementById('startup-tab-suse').className = 'tab';
|
|
|
|
document.getElementById('startup-' + id).style.display = 'block';
|
|
document.getElementById('startup-tab-' + id).className = 'tab selected';
|
|
}
|
|
</script>
|
|
|
|
</body>
|
|
</html>
|