# The `stack config` commands ~~~text stack config COMMAND Available commands: env Print environment variables for use in a shell set Sets a key in YAML configuration file to value ~~~ The `stack config` commands provide assistance with accessing or modifying Stack's configuration. See `stack config` for the available commands. ## The `stack config env` command ~~~text stack config env [--[no-]locals] [--[no-]ghc-package-path] [--[no-]stack-exe] [--[no-]locale-utf8] [--[no-]keep-ghc-rts] ~~~ `stack config env` outputs a script that sets or unsets environment variables for a Stack environment. Flags modify the script that is output: * `--[no-]locals` (enabled by default) include/exclude local package information * `--[no-]ghc-package-path` (enabled by default) set `GHC_PACKAGE_PATH` environment variable or not * `--[no-]stack-exe` (enabled by default) set `STACK_EXE` environment variable or not * `--[no-]locale-utf8` (disabled by default) set the `GHC_CHARENC` environment variable to `UTF-8` or not * `--[no-]keep-ghc-rts` (disabled by default) keep/discard any `GHCRTS` environment variable ## The `stack config set` commands ~~~text stack config set COMMAND Available commands: install-ghc Configure whether Stack should automatically install GHC when necessary. package-index Configure Stack's package index resolver Change the resolver of the current project. system-ghc Configure whether Stack should use a system GHC installation or not. ~~~ The `stack config set` commands allow the values of keys in YAML configuration files to be set. See `stack config set` for the available keys. ## The `stack config set install-ghc` command ~~~text stack config set install-ghc [--global] true|false ~~~ `stack config set install-ghc true` or `false` sets the `install-ghc` key in a YAML configuration file, accordingly. By default, the project-level configuration file (`stack.yaml`) is altered. The `--global` flag specifies the user-specific global configuration file (`config.yaml`). ## The `stack config set package-index download-prefix` command [:octicons-tag-24: 2.9.3](https://github.com/commercialhaskell/stack/releases/tag/v2.9.3) ~~~text stack config set package-index download-prefix [--global] [URL] ~~~ `stack config set package-index download-prefix ` sets the `download-prefix` key of the `package-index` key in a YAML configuration file, accordingly. By default, the project-level configuration file (`stack.yaml`) is altered. The `--global` flag specifies the user-specific global configuration file (`config.yaml`). ## The `stack config set resolver` command ~~~text stack config set resolver SNAPSHOT ~~~ `stack config set resolver ` sets the `resolver` key in the project-level configuration file (`stack.yaml`). A snapshot of `lts` or `nightly` will be translated into the most recent available. A snapshot of `lts-20` will be translated into the most recent available in the `lts-20` sequence. Known bug: * The command does not respect the presence of a `snapshot` key. ## The `stack config set system-ghc` command ~~~text stack config set system-ghc [--global] true|false ~~~ `stack config set system-ghc true` or `false` sets the `system-ghc` key in a YAML configuration file, accordingly. By default, the project-level configuration file (`stack.yaml`) is altered. The `--global` flag specifies the user-specific global configuration file (`config.yaml`).