TUFLOW on Linux: Difference between revisions
Content deleted Content added
| (4 intermediate revisions by the same user not shown) | |||
Line 10:
It is recommended that admins use <code>dnf</code> or <code>apt</code> respectively, to ensure that dependencies are automatically downloaded and installed as needed.
For detailed installation, licensing, version management and WSL instructions, see [[Installing TUFLOW on Linux]].
= How to use =
Line 17 ⟶ 19:
= Use across both Microsoft Windows and Linux =
Some of the quirky differences between Windows and Linux will affect users that want to use TUFLOW across both systems.▼
▲Some of the
By no means a complete overview, but these are some aspects to consider:▼
*'''Slashes and backslashes'''<br/>Windows uses backslashes in file and directory paths like <code>D:\Project\results\</code>. Linux uses forward slashes instead like <code>~/Project/results</code> and will often interpret characters following backslashes as special characters. TUFLOW will usually deal with either format on either system in configuration files, but when writing scripts or commands (in powershell, terminal, etc) users should remain aware. Also, logs and outputs referring to files will use the format appropriate to the system it is running on.▼
*'''Drive letters'''<br/>Drive letters like <code>D:</code> are specific to Windows. Configuration files that need to be usable across both systems should avoid their use and instead use relative paths like <code>../Model/Materials_001.csv</code> or absolute paths that assume the file is on the current drive like <code>/Project/model/Materials_001.csv</code>.▼
*'''Character case in names'''<br/>Windows is case-insensitive, which means that files called <code>Hello.TXT</code> and <code>hello.txt</code> are considered to have the same name, and cannot exist in the same location. Linux is case-sensitive and considers uppercase characters and lowercase characters to be different, and so those two files can exist side by side. This is very relevant if TUFLOW users use one spelling in one place, and the other in another - whereas Windows might interpret both references to point to the same file, on Linux they would result in two separate files. Similarly, if a file's name is spelled with different case from its actual name, a Windows application would find it, and a Linux application might not. (see below)▼
*'''Encoding and special characters'''<br/>On older versions of Windows in English-speaking countries, text files (including TUFLOW configuration files) would use the 1252-Windows encoding. In modern versions of Windows, UTF-8 with BOM is the standard. On Linux UTF-8 without BOM is the standard. TUFLOW accepts any of these encodings and will typically write files in UTF-8 without BOM. On Windows, line endings in such text files are encoded as two characters, a carriage return and a line feed (CR/LF), while Linux uses only a single LF. TUFLOW accepts both forms and writes what is appropriate to the system it is running on.▼
To ensure maximum compatibility of models across systems, TUFLOW will do its best to match names in the model files in the same way between Windows and Linux. <!-- This may surprise some new users on Linux and can be disabled with a command-line flag if undesirable, in future releases.-->▼
▲* '''Slashes and backslashes'''<br/>Windows uses backslashes in file and directory paths,
As a general principle, TUFLOW will default to trying to run a model with as little change as possible required across both platforms, writing results in a form that is appropriate to the platform it runs on. <!-- Future releases may provide users with more control over this behaviour, if needed.-->▼
▲* '''Drive letters'''<br/>Drive letters
▲* '''Character case in names'''<br/>Windows is generally case-insensitive,
▲* '''Encoding and special characters'''<br/>On older versions of Windows in English-speaking countries, text files,
▲To ensure maximum model compatibility
▲As a general principle, TUFLOW will
= Common Questions Answered (FAQ)=
== Why use TUFLOW on Linux at all? ==
TUFLOW on Linux is not just for users
* '''Performance'''<br/>
*'''Infrastructure cost'''<br/> Especially relevant when running virtual machines dedicated to running TUFLOW, or many of those in the cloud, most distributions of Linux do not require a licence whereas Windows does. This can substantially reduce the cost of infrastructure.▼
▲* '''Infrastructure cost'''<br/>This is
* '''HPC tooling'''<br/>Automating TUFLOW model runs across many computers or in the cloud can be simplified using tools designed for this purpose. Many of these tools are available off the shelf, primarily for Linux, such as SLURM and PBS/Torque. Containerisation tools, such as Docker, Podman and LXC, also typically run on Linux. <br>''Note:'' HPC tooling refers to job scheduling and automation software used to manage large numbers of model runs. Containerisation packages applications and their dependencies into portable and reproducible runtime environments.
== Must TUFLOW users on Linux use the command line interface? ==
Line 46 ⟶ 52:
Like Windows, Linux offers a variety of scripting options that can help minimise the direct use of the command line by users, if that is desirable. Bash shell scripts are as easy to write and run as batch files are on Windows. Running Python or even PowerShell on Linux is easy to set up as well.
However,
| |||