| layout | page |
|---|
The latest stable release, OSCAR v{{ site.data.release.version }}, is officially supported on Windows, macOS, and Linux (Debian, Ubuntu, Fedora).
If you are using a different operating system, we do not provide support and cannot guarantee compatibility. However, if you still wish to try installing OSCAR, you will need:
- GNU Make
- A C++ compiler that supports C++17, such as:
It is possible to install OSCAR and its cornerstones only once on your system,
and to let several people use this installation. For that, the following bash scripts can be used.
Install OSCAR system-wide, or update the system-wide installation of OSCAR when a new version is available.
Enter the following commands into a file (for exampleoscar_systemwide_install),
adjust the paths for the variables julia_for_oscar and central_depot,
and then run the script in a terminal (with administrator rights).
{% highlight bash %}
#!/bin/bash
Specify the intended version of Julia.
julia_for_oscar=/users/oscar/julia-1.8.5/bin/julia
Specify the intended location of the central Oscar installation.
central_depot=/users/oscar/JULIA_DEPOT
We will store the necessary artifacts in the
"architecture dependent location" in Julia's default DEPOT_PATH.
First determine this path and create the directory if necessary.
(Here we asume that DEPOT_PATH[2] is the architecture-specific
shared system directory, as documented for the default value of
DEPOT_PATH.)
system_depot=$(
Set the Julia variables that control the location of packages.
(Do not admit the current user's own depot path.)
export JULIA_DEPOT_PATH=${central_depot}:${system_depot}
Clean the environment, such that the already centrally installed packages
get replaced by newer versions if necessary.
(This is safer than calling Pkg.update() in Julia.)
Then let Julia install and precompile the packages.
${julia_for_oscar} --project=@v#.#-oscar -e 'using Pkg, Artifacts;
rm("'${central_depot}'/environments/v" * join(split(string(VERSION), ".")[1:2], ".") * "/Project.toml", force=true)
Artifacts.with_artifacts_directory("'${system_depot}'/artifacts") do;
Pkg.add("Oscar");
Pkg.add("GAP");
Pkg.add("Nemo");
Pkg.add("Hecke");
Pkg.add("Singular");
Pkg.add("Polymake");
Pkg.add("AbstractAlgebra");
Pkg.instantiate();
end;
exit();'
{% endhighlight %}
Call Julia such that the system-wide installation of Oscar gets loaded
when the user enters using Oscar in the Julia session.
Enter the following commands into a file (for example julia_with_oscar),
adjust the paths for the variables julia_for_oscar and central_depot,
and then run the script in a terminal (not with administrator rights).
{% highlight bash %}
#!/bin/bash
Specify the intended version of Julia.
julia_for_oscar=/users/oscar/julia-1.8.5/bin/julia
Specify the intended location of the central Oscar installation.
central_depot=/users/oscar/JULIA_DEPOT
Admit the path with the central installation.
export JULIA_DEPOT_PATH=:${central_depot} export JULIA_LOAD_PATH=":@v#.#-oscar"
Call Julia.
~/.julia/packages, or if they add them later on.