A particular binary distribution of GHC will depend on certain libraries, which need to be available.
There are many different Linux distributions and different versions of a particular Linux distribution. One Linux distribution/version may make available different libraries to another Linux distribution/version.
In attempting to identify the particular binary distribution of GHC that is required on Linux, Stack will refer to the presence or absence of certain libraries or the versions of those libraries.
For example, Stack 3.1.1 considers:
If libc.musl-x86_64.so.1
is present. This file is provided by the musl libc.
The version of libc6
(if musl libc is not applicable), the GNU C Library (glibc), that is present. The GNU C Library is designed to be backwards compatible.
If libgmp.so.3
or libgmp.so.10
is present. These files are provided by different versions of the GNU Multiple Precision Arithmetic Library.
If libncursesw.so.6
is present. This file is provided by a shared library for terminal handling with wide character support.
If libtinfo.so.5
or libtinfo.so.6
is present. These files are provided by different versions of a shared low-level terminfo library for terminal handling.
Stack 3.1.1 uses ghc-build
:
musl
to indicate libc.musl-x86_64.so.1
is present and Stack should use the GHC binary distribution for Alpine Linux.tinfo6
to indicate libgmp.so.10
and libtinfo.so.6
are present and libc6
is compatible with libc6
2.32.tinfo6-libc6-pre232
to indicate libgmp.so.10
and libtinfo.so.6
are present and libc6
is not compatible with libc6
2.32.ncurses6
to indicate libgmp.so.10
and libncursesw.so.6
are presentgmp4
to indicate libgmp.so.3
is presentBy default, Stack associates:
the tinfo6
build with the 'Fedora 33' binary distribution of GHC 9.4.1 to 9.4.3 and 9.6.1 and later. Those binary distributions require versions of libc6
that are compatible with libc6
2.32;
the tinfo6-libc6-pre232
build with the 'Debian 10' binary distribution of GHC 9.4.1 to 9.4.3 and the 'Rocky 8' binary distribution of GHC 9.6.1 and later. Those binary distributions require versions of libc6
that are compatible with libc6
2.28; and
the tinfo6
and tinfo6-libc6-pre232
builds with the 'Fedora 27' binary distribution of GHC 9.4.4 to 9.4.8. Those binary distributions require versions of libc6
that are compatible with libc6
2.26.
Since Windows 10 version 1607, Windows has been 'long file paths' capable but that capability is not enabled by default. Consequently, Stack does not assume that it is being used on a system that is 'long file paths' enabled.
Stack uses the 7-Zip tool to decompress, and extract tools from, downloaded archive files. Aiming to avoid long file paths, Stack does so in a temporary directory (named stack-tmp-<hash>
) on the drive of the final destination (either in the system temporary directory, where applicable, or the root of the drive). Consequently, Stack needs permission to create a directory in that location.
A Windows user account will usually have permission to create a directory in the system temporary directory. A Windows user account of type Administrator will have permission to create a directory in the root of the system drive (C:\
, by convention) but a Standard user account may well not have permission.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4