# Options

The following options are allowed for all `nix-env` operations, but may not always have an effect.

  - `--file` / `-f` *path*\
    Specifies the Nix expression (designated below as the *active Nix
    expression*) used by the `--install`, `--upgrade`, and `--query
    --available` operations to obtain derivations. The default is
    `~/.nix-defexpr`.

    If the argument starts with `http://` or `https://`, it is
    interpreted as the URL of a tarball that will be downloaded and
    unpacked to a temporary location. The tarball must include a single
    top-level directory containing at least a file named `default.nix`.

  - `--profile` / `-p` *path*\
    Specifies the profile to be used by those operations that operate on
    a profile (designated below as the *active profile*). A profile is a
    sequence of user environments called *generations*, one of which is
    the *current generation*.

  - `--dry-run`\
    For the `--install`, `--upgrade`, `--uninstall`,
    `--switch-generation`, `--delete-generations` and `--rollback`
    operations, this flag will cause `nix-env` to print what *would* be
    done if this flag had not been specified, without actually doing it.

    `--dry-run` also prints out which paths will be
    [substituted](@docroot@/glossary.md) (i.e., downloaded) and which paths
    will be built from source (because no substitute is available).

  - `--system-filter` *system*\
    By default, operations such as `--query
                    --available` show derivations matching any platform. This option
    allows you to use derivations for the specified platform *system*.
