| 1 | <!DOCTYPE html> |
|---|
| 2 | <html> |
|---|
| 3 | <head> |
|---|
| 4 | <title>FCM: Installation</title> |
|---|
| 5 | <meta name="author" content="FCM team" /> |
|---|
| 6 | <meta name="viewport" content="width=device-width, initial-scale=1.0" /> |
|---|
| 7 | <link rel="icon" href="../etc/fcm-icon.png" type="image/png" /> |
|---|
| 8 | <link rel="shortcut icon" href="../etc/fcm-icon.png" type="image/png" /> |
|---|
| 9 | <link href="../etc/bootstrap/css/bootstrap.min.css" type="text/css" |
|---|
| 10 | rel="stylesheet" media="screen" /> |
|---|
| 11 | <link href="../etc/fcm.css" type="text/css" rel="stylesheet" media="screen" /> |
|---|
| 12 | </head> |
|---|
| 13 | <body> |
|---|
| 14 | <div class="navbar navbar-inverse"> |
|---|
| 15 | <div class="container-fluid"> |
|---|
| 16 | <div class="navbar-header"> |
|---|
| 17 | <a class="navbar-brand" href=".."><span class="fcm-version">FCM</span></a> |
|---|
| 18 | </div> |
|---|
| 19 | <div class="collapse navbar-collapse"> |
|---|
| 20 | <ul class="nav navbar-nav"> |
|---|
| 21 | <li class="active"><a href="#">Installation</a></li> |
|---|
| 22 | |
|---|
| 23 | <li><a href="../user_guide/">User Guide</a></li> |
|---|
| 24 | </ul> |
|---|
| 25 | </div> |
|---|
| 26 | </div> |
|---|
| 27 | </div> |
|---|
| 28 | |
|---|
| 29 | <div class="page-header"> |
|---|
| 30 | <div class="fcm-page-content pull-right well well-sm"></div> |
|---|
| 31 | <h1>FCM: Installation</h1> |
|---|
| 32 | </div> |
|---|
| 33 | |
|---|
| 34 | <div class="container"> |
|---|
| 35 | <div class="row"> |
|---|
| 36 | <div class="col-md-12"> |
|---|
| 37 | <h2 id="requirements">System Requirements</h2> |
|---|
| 38 | |
|---|
| 39 | <p>FCM is intended to run on a Unix/Linux system. It is known to work on |
|---|
| 40 | recent popular Linux distributions such as RHEL-6. See |
|---|
| 41 | <a href="https://github.com/metomi/metomi-vms">metomi-vms @ Github</a> for |
|---|
| 42 | information.</p> |
|---|
| 43 | |
|---|
| 44 | <p>FCM releases can be downloaded from <a href= |
|---|
| 45 | "https://github.com/metomi/fcm/releases">Github</a>. Download the tar.gz file |
|---|
| 46 | and un-pack it into an appropriate location on your system. Add the |
|---|
| 47 | <samp>bin/</samp> directory into your <var>PATH</var> environment variable. |
|---|
| 48 | Enable the configuration files in <samp>etc/fcm/</samp> directory and edit |
|---|
| 49 | them to meet the your requirements. Once you have done this you should now |
|---|
| 50 | have access to the FCM user utilities, assuming that you have met the |
|---|
| 51 | requirements described below:</p> |
|---|
| 52 | |
|---|
| 53 | <dl class="well"> |
|---|
| 54 | <dt><a href="http://www.perl.org/">Perl</a></dt> |
|---|
| 55 | |
|---|
| 56 | <dd> |
|---|
| 57 | <p><dfn>used by:</dfn> <code>fcm</code>.</p> |
|---|
| 58 | |
|---|
| 59 | <p><dfn>versions known to work:</dfn> RHEL-6: 5.10.1</p> |
|---|
| 60 | |
|---|
| 61 | <p><dfn>remark:</dfn> We assume that all <em>core</em> Perl modules (as |
|---|
| 62 | documented by <a href="http://perldoc.perl.org/">perldoc.perl.org</a>) of |
|---|
| 63 | the <em>known to work versions</em> are installed on your system. (N.B. On |
|---|
| 64 | platforms based on RHEL, you may need the <em>perl-core</em> RPM instead |
|---|
| 65 | of just <em>perl</em>, see <a href= |
|---|
| 66 | "http://www.nntp.perl.org/group/perl.perl5.porters/2009/08/msg149891.html">this |
|---|
| 67 | discussion</a>.)</p> |
|---|
| 68 | </dd> |
|---|
| 69 | |
|---|
| 70 | <dt>Perl module <a href= |
|---|
| 71 | "http://search.cpan.org/dist/Config-IniFiles/">Config::IniFiles</a></dt> |
|---|
| 72 | |
|---|
| 73 | <dd> |
|---|
| 74 | <p><dfn>used by:</dfn> the admin commands.</p> |
|---|
| 75 | |
|---|
| 76 | <p><dfn>versions known to work:</dfn> RHEL-6: 2.72.</p> |
|---|
| 77 | </dd> |
|---|
| 78 | |
|---|
| 79 | <dt>Perl module <a href= |
|---|
| 80 | "http://search.cpan.org/dist/DBD-SQLite/">DBD::SQLite</a></dt> |
|---|
| 81 | |
|---|
| 82 | <dd> |
|---|
| 83 | <p><dfn>used by:</dfn> the admin commands.</p> |
|---|
| 84 | |
|---|
| 85 | <p><dfn>versions known to work:</dfn> RHEL-6: 1.29.</p> |
|---|
| 86 | </dd> |
|---|
| 87 | |
|---|
| 88 | <dt>Perl module <a href= |
|---|
| 89 | "http://search.cpan.org/dist/Alien-SVN/">SVN::Client</a></dt> |
|---|
| 90 | |
|---|
| 91 | <dd> |
|---|
| 92 | <p><dfn>used by:</dfn> the admin commands.</p> |
|---|
| 93 | |
|---|
| 94 | <p><dfn>versions known to work:</dfn> RHEL-6: 1.8.5 (RPM from <a href= |
|---|
| 95 | "http://opensource.wandisco.com/rhel/6/svn-1.8/RPMS/x86_64/">http://opensource.wandisco.com/</a>).</p> |
|---|
| 96 | </dd> |
|---|
| 97 | |
|---|
| 98 | <dt>Perl module <a href= |
|---|
| 99 | "http://search.cpan.org/dist/XML-Parser/">XML::Parser</a></dt> |
|---|
| 100 | |
|---|
| 101 | <dd> |
|---|
| 102 | <p><dfn>used by:</dfn> the code management commands.</p> |
|---|
| 103 | |
|---|
| 104 | <p><dfn>versions known to work:</dfn> RHEL-6: 2.36.</p> |
|---|
| 105 | </dd> |
|---|
| 106 | |
|---|
| 107 | <dt>Perl module <a href= |
|---|
| 108 | "http://search.cpan.org/~srezic/Tk-804.028/">Tk</a></dt> |
|---|
| 109 | |
|---|
| 110 | <dd> |
|---|
| 111 | <p><dfn>used by:</dfn> <code>fcm gui</code>.</p> |
|---|
| 112 | |
|---|
| 113 | <p><dfn>versions known to work:</dfn> RHEL-6: 804.028.</p> |
|---|
| 114 | </dd> |
|---|
| 115 | |
|---|
| 116 | <dt><a href="http://subversion.apache.org/">Subversion</a></dt> |
|---|
| 117 | |
|---|
| 118 | <dd> |
|---|
| 119 | <p><dfn>used by:</dfn> the code management commands, the extract system |
|---|
| 120 | of <code>fcm make</code>, the deprecated <code>fcm extract</code>.</p> |
|---|
| 121 | |
|---|
| 122 | <p><dfn>versions known to work:</dfn>RHEL-6: 1.8.10.</p> |
|---|
| 123 | |
|---|
| 124 | <p><dfn>remark:</dfn> you can use the extract system to mirror code to a |
|---|
| 125 | remote platform for building. Therefore it is only necessary to have |
|---|
| 126 | Subversion installed on the platform where you do your code development. |
|---|
| 127 | If you use other platforms purely for building and running then you do |
|---|
| 128 | not need to have Subversion installed on these platforms.</p> |
|---|
| 129 | </dd> |
|---|
| 130 | |
|---|
| 131 | <dt><a href="http://trac.edgewall.org/">Trac</a></dt> |
|---|
| 132 | |
|---|
| 133 | <dd> |
|---|
| 134 | <p><dfn>used by:</dfn> (optional, but highly recommended as a companion |
|---|
| 135 | to Subversion)</p> |
|---|
| 136 | |
|---|
| 137 | <p><dfn>versions known to work:</dfn> RHEL-6: 1.0.5.</p> |
|---|
| 138 | </dd> |
|---|
| 139 | |
|---|
| 140 | <dt><a href="http://furius.ca/xxdiff/">xxdiff</a></dt> |
|---|
| 141 | |
|---|
| 142 | <dd> |
|---|
| 143 | <p><dfn>used by:</dfn> <code>fcm branch-diff --graphical</code>, |
|---|
| 144 | <code>fcm conflicts</code>, <code>fcm diff --graphical</code>.</p> |
|---|
| 145 | |
|---|
| 146 | <p><dfn>versions known to work:</dfn> RHEL-6: 3.2.</p> |
|---|
| 147 | |
|---|
| 148 | <p><dfn>remark:</dfn> The <code>fcm branch-diff --graphical</code> and |
|---|
| 149 | <code>fcm diff --graphical</code> commands use xxdiff by default but can |
|---|
| 150 | also use other graphical diff tools.</p> |
|---|
| 151 | </dd> |
|---|
| 152 | |
|---|
| 153 | <dt><a href="http://www.gnu.org/software/diffutils/">GNU diffutils</a>: |
|---|
| 154 | diff3</dt> |
|---|
| 155 | |
|---|
| 156 | <dd> |
|---|
| 157 | <p><dfn>used by:</dfn> the extract system of <code>fcm make</code>, the |
|---|
| 158 | deprecated <code>fcm extract</code>.</p> |
|---|
| 159 | |
|---|
| 160 | <p><dfn>versions known to work:</dfn> RHEL-6: 2.8.1.</p> |
|---|
| 161 | |
|---|
| 162 | <p><dfn>remark:</dfn>: used to merge changes to source files modified by |
|---|
| 163 | 2+ diff source trees (compared with the base).</p> |
|---|
| 164 | </dd> |
|---|
| 165 | |
|---|
| 166 | <dt><a href="http://rsync.samba.org/">rsync</a></dt> |
|---|
| 167 | |
|---|
| 168 | <dd> |
|---|
| 169 | <p><dfn>used by:</dfn> the mirror system of <code>fcm make</code>, the |
|---|
| 170 | deprecated <code>fcm extract</code>.</p> |
|---|
| 171 | |
|---|
| 172 | <p><dfn>versions known to work:</dfn> RHEL-6: 3.0.6.</p> |
|---|
| 173 | |
|---|
| 174 | <p><dfn>remark:</dfn> used to mirror source file to another |
|---|
| 175 | <var>USER@HOST</var>.</p> |
|---|
| 176 | </dd> |
|---|
| 177 | |
|---|
| 178 | <dt><a href="http://www.gnu.org/software/make/make.html">GNU make</a></dt> |
|---|
| 179 | |
|---|
| 180 | <dd> |
|---|
| 181 | <p><dfn>used by:</dfn> the deprecated <code>fcm build</code>.</p> |
|---|
| 182 | |
|---|
| 183 | <p><dfn>versions known to work:</dfn> RHEL-6: 3.81.</p> |
|---|
| 184 | </dd> |
|---|
| 185 | </dl> |
|---|
| 186 | </div> |
|---|
| 187 | </div> |
|---|
| 188 | |
|---|
| 189 | <div class="row"> |
|---|
| 190 | <div class="col-md-12"> |
|---|
| 191 | <h2 id="distro">Content in the Distribution</h2> |
|---|
| 192 | |
|---|
| 193 | <dl class="well"> |
|---|
| 194 | <dt>ACKNOWLEDGEMENT.md<br /> |
|---|
| 195 | CONTRIBUTING.md<br /> |
|---|
| 196 | README.md<br /> |
|---|
| 197 | COPYING</dt> |
|---|
| 198 | |
|---|
| 199 | <dd>Terms of use and project information.</dd> |
|---|
| 200 | |
|---|
| 201 | <dt>CHANGES.md</dt> |
|---|
| 202 | |
|---|
| 203 | <dd>Contains highlight and noteworthy changes since release 2-3-1.</dd> |
|---|
| 204 | |
|---|
| 205 | <dt>bin/</dt> |
|---|
| 206 | |
|---|
| 207 | <dd>Contains the <code>fcm</code> user utilities.</dd> |
|---|
| 208 | |
|---|
| 209 | <dt>doc/</dt> |
|---|
| 210 | |
|---|
| 211 | <dd>FCM documentation.</dd> |
|---|
| 212 | |
|---|
| 213 | <dt>doc/installation/</dt> |
|---|
| 214 | |
|---|
| 215 | <dd>Contains this document.</dd> |
|---|
| 216 | |
|---|
| 217 | <dt>doc/release_notes/</dt> |
|---|
| 218 | |
|---|
| 219 | <dd>Contains release notes prior to and including release 2-3-1.</dd> |
|---|
| 220 | |
|---|
| 221 | <dt>doc/user_guide/</dt> |
|---|
| 222 | |
|---|
| 223 | <dd>Contains the <a href="../user_guide/">FCM User Guide</a>.</dd> |
|---|
| 224 | |
|---|
| 225 | <dt>etc/</dt> |
|---|
| 226 | |
|---|
| 227 | <dd>Miscellaneous items and example site configurations, including the |
|---|
| 228 | <samp>fcm/keyword.cfg.example</samp> file. If you wish to define keywords |
|---|
| 229 | for your site you will need to create the <samp>etc/fcm/keyword.cfg</samp> |
|---|
| 230 | file. An example file, <samp>fcm/keyword.cfg.example</samp>, is provided |
|---|
| 231 | which is a copy of the file currently used at the Met Office. For further |
|---|
| 232 | details please refer to the section <a |
|---|
| 233 | href="../user_guide/system_admin.html#fcm-keywords">FCM keywords</a> in the |
|---|
| 234 | System Admin chapter of the User Guide.</dd> |
|---|
| 235 | |
|---|
| 236 | <dt>lib/</dt> |
|---|
| 237 | |
|---|
| 238 | <dd>Contains the Perl library of FCM.</dd> |
|---|
| 239 | |
|---|
| 240 | <dt>man/</dt> |
|---|
| 241 | |
|---|
| 242 | <dd>Contains a basic manual page for <code>fcm</code>.</dd> |
|---|
| 243 | |
|---|
| 244 | <dt>sbin/</dt> |
|---|
| 245 | |
|---|
| 246 | <dd>Contains a selection of useful admin utility commands.</dd> |
|---|
| 247 | |
|---|
| 248 | <dt>sbin/my-regular-update.example</dt> |
|---|
| 249 | |
|---|
| 250 | <dd>An example of how you might set up a cron job to make use of the |
|---|
| 251 | <samp><repos>.latest</samp> file (see |
|---|
| 252 | <code>svn-hooks/post-commit-background</code>).</dd> |
|---|
| 253 | |
|---|
| 254 | <dt>svn-hooks/</dt> |
|---|
| 255 | |
|---|
| 256 | <dd>Contains a selection of useful hook scripts for Subversion.</dd> |
|---|
| 257 | |
|---|
| 258 | <dt>svn-hooks/pre-commit</dt> |
|---|
| 259 | |
|---|
| 260 | <dd> |
|---|
| 261 | This script restricts write-access to the repository by checking the |
|---|
| 262 | following: |
|---|
| 263 | |
|---|
| 264 | <ul> |
|---|
| 265 | <li>It executes the Subversion utility <code>svnperms.py</code> if it, |
|---|
| 266 | and the associated <samp>svnperms.conf</samp> file, exist. This utility |
|---|
| 267 | checks whether the author of the current transaction has enough |
|---|
| 268 | permission to write to particular paths in the repository.</li> |
|---|
| 269 | |
|---|
| 270 | <li>It checks the disk space required by the current transaction. It |
|---|
| 271 | fails the commit if it requires more than 10MB of disk space (or |
|---|
| 272 | whatever is specified in the |
|---|
| 273 | <code>pre-commit-size-threshold.conf</code> file.</li> |
|---|
| 274 | </ul> |
|---|
| 275 | </dd> |
|---|
| 276 | |
|---|
| 277 | <dt>svn-hooks/post-commit</dt> |
|---|
| 278 | |
|---|
| 279 | <dd>This script runs <code>post-commit-background</code> in the |
|---|
| 280 | background.</dd> |
|---|
| 281 | |
|---|
| 282 | <dt>svn-hooks/post-commit-background</dt> |
|---|
| 283 | |
|---|
| 284 | <dd> |
|---|
| 285 | This script runs in the background after each commit. |
|---|
| 286 | |
|---|
| 287 | <ul> |
|---|
| 288 | <li>It updates a <samp><repos>.latest</samp> file with the latest |
|---|
| 289 | revision number.</li> |
|---|
| 290 | |
|---|
| 291 | <li>It creates a dump of the new revision.</li> |
|---|
| 292 | |
|---|
| 293 | <li>It calls <code>post-commit-background-custom</code> if it |
|---|
| 294 | exists.</li> |
|---|
| 295 | </ul> |
|---|
| 296 | </dd> |
|---|
| 297 | |
|---|
| 298 | <dt>svn-hooks/pre-revprop-change</dt> |
|---|
| 299 | |
|---|
| 300 | <dd>This script only allows the modification of <var>svn:log</var>.</dd> |
|---|
| 301 | |
|---|
| 302 | <dt>svn-hooks/post-revprop-change</dt> |
|---|
| 303 | |
|---|
| 304 | <dd>This script runs <code>post-revprop-change-background</code> in the |
|---|
| 305 | background.</dd> |
|---|
| 306 | |
|---|
| 307 | <dt>svn-hooks/post-revprop-change-background</dt> |
|---|
| 308 | |
|---|
| 309 | <dd>This script invokes the <code>trac-admin</code> command to |
|---|
| 310 | <code>resync</code> the revision property cache stored in the corresponding |
|---|
| 311 | Trac environment. If a user modifies the log message of a changeset and |
|---|
| 312 | he/she is not the original author of the changeset, this script will e-mail |
|---|
| 313 | the original author. If the file |
|---|
| 314 | <code>post-revprop-change-background-cc.list</code> exits, the script will |
|---|
| 315 | also e-mail those in the list.</dd> |
|---|
| 316 | |
|---|
| 317 | <dt>t/</dt> |
|---|
| 318 | |
|---|
| 319 | <dd>Contains functional test for FCM.</dd> |
|---|
| 320 | |
|---|
| 321 | <dt>test/</dt> |
|---|
| 322 | |
|---|
| 323 | <dd>Contains regression tests for FCM.</dd> |
|---|
| 324 | |
|---|
| 325 | <dt>test/test_include/</dt> |
|---|
| 326 | |
|---|
| 327 | <dd>Contains simple test code to check how your chosen compilers handle |
|---|
| 328 | include files.</dd> |
|---|
| 329 | |
|---|
| 330 | <dt>tutorial/</dt> |
|---|
| 331 | |
|---|
| 332 | <dd>Contains the files necessary to set up a Subversion repository for the |
|---|
| 333 | FCM tutorial. This will allow you to follow the <a href= |
|---|
| 334 | "../user_guide/getting_started.html#tutorial">tutorial section</a> in the |
|---|
| 335 | User Guide. See <samp>tutorial/README</samp> on how to set it up.</dd> |
|---|
| 336 | </dl> |
|---|
| 337 | </div> |
|---|
| 338 | </div> |
|---|
| 339 | </div> |
|---|
| 340 | |
|---|
| 341 | <hr/> |
|---|
| 342 | <div class="container-fluid text-center"> |
|---|
| 343 | <div class="row"><div class="col-md-12"> |
|---|
| 344 | <address><small> |
|---|
| 345 | Copyright © 2006-2021 British Crown (Met Office) & Contributors. |
|---|
| 346 | <a href="http://www.metoffice.gov.uk">Met Office</a>. |
|---|
| 347 | See <a href="../etc/fcm-terms-of-use.html">Terms of Use</a>.<br /> |
|---|
| 348 | This document is released under the British <a href= |
|---|
| 349 | "http://www.nationalarchives.gov.uk/doc/open-government-licence/" rel= |
|---|
| 350 | "license">Open Government Licence</a>.<br /> |
|---|
| 351 | </small></address> |
|---|
| 352 | </div></div> |
|---|
| 353 | </div> |
|---|
| 354 | |
|---|
| 355 | <script type="text/javascript" src="../etc/jquery.min.js"></script> |
|---|
| 356 | <script type="text/javascript" src="../etc/bootstrap/js/bootstrap.min.js"></script> |
|---|
| 357 | <script type="text/javascript" src="../etc/fcm.js"></script> |
|---|
| 358 | <script type="text/javascript" src="../etc/fcm-version.js"></script> |
|---|
| 359 | </body> |
|---|
| 360 | </html> |
|---|