* make sure that you have `pip` (for Python libraries) and `cpan` (for Perl modules) available on your system. For `cpan you may need to setup [local::lib](https://metacpan.org/pod/local::lib) to install locally in your user environment.
The installation procedure should hopefully setup the necessary software for running the OPUS-MT recipes. Be aware that running the scripts does not work out of the box because many settings are adjusted for the local installations on our IT infrastructure at [CSC](https://docs.csc.fi/). Here is an incomplete list of prerequisites needed for running a process:
* [marian-nmt](https://github.com/marian-nmt/): The essential NMT toolkit we use in OPUS-MT; make sure you compile a version with GPU and SentencePiece support!
* [Moses scripts](https://github.com/moses-smt/mosesdecoder): various pre- and post-processing scripts from the Moses SMT toolkit (also bundled here: [marian-nmt](https://github.com/marian-nmt/moses-scripts))
* [OpusTools](https://pypi.org/project/opustools): library and tools for accessing OPUS data
* [OpusTools-perl](https://github.com/Helsinki-NLP/OpusTools-perl): additional tools for accessing OPUS data
* [iso-639](https://pypi.org/project/iso-639/): a Python package for ISO 639 language codes
* Perl modules [ISO::639::3](https://metacpan.org/pod/ISO::639::3) and [ISO::639::5](https://metacpan.org/pod/ISO::639::5)
Environment variables are mostly specified in `lib/env.mk`. Adjust the settings to match your environment! You maye have to re-run `make install` after the adjustments or compile/install tools manually.
## CSC users
OPUS-MT-train is developed to run on the CSC HPC infrastructure and supports `puhti` and `mahti`. There are some hard-coded settings that match our particular environment in our CSC project. You need to adjust those settings in `lib/env/puhti.mk` and `lib/env/puhti.mk`. This includes at least the paths to important tools such as Marian-NMT and others. You also need to set the CSC project identifier (`CSCPROJECT`) to match the project that you use for requestion billing units!