{ lib , stdenv , fetchurl , runCommand , makeWrapper , buildFHSUserEnv , libselinux , xorg # Conda installs its packages and environments under this directory , installationPath ? "~/.conda" # Conda manages most pkgs itself, but expects a few to be on the system. , condaDeps ? [ stdenv.cc xorg.libSM xorg.libICE xorg.libXrender libselinux ] # Any extra nixpkgs you'd like available in the FHS env for Conda to use , extraPkgs ? [ ] }: # How to use this package? # # First-time setup: this nixpkg downloads the conda installer and provides a FHS # env in which it can run. On first use, the user will need to install conda to # the installPath using the installer: # $ nix-env -iA conda # $ conda-shell # $ conda-install # # Under normal usage, simply call `conda-shell` to activate the FHS env, # and then use conda commands as normal: # $ conda-shell # $ conda install spyder let version = "4.3.31"; src = fetchurl { url = "https://repo.continuum.io/miniconda/Miniconda3-${version}-Linux-x86_64.sh"; sha256 = "1rklq81s9v7xz1q0ha99w2sl6kyc5vhk6b21cza0jr3b8cgz0lam"; }; conda = runCommand "conda-install" { buildInputs = [ makeWrapper ]; } '' mkdir -p $out/bin cp ${src} $out/bin/miniconda-installer.sh chmod +x $out/bin/miniconda-installer.sh makeWrapper \ $out/bin/miniconda-installer.sh \ $out/bin/conda-install \ --add-flags "-p ${installationPath}" \ --add-flags "-b" ''; in buildFHSUserEnv { name = "conda-shell-${version}"; targetPkgs = pkgs: (builtins.concatLists [ [ conda ] condaDeps extraPkgs]); profile = '' # Add conda to PATH export PATH=${installationPath}/bin:$PATH # Paths for gcc if compiling some C sources with pip export NIX_CFLAGS_COMPILE="-I${installationPath}/include" export NIX_CFLAGS_LINK="-L${installationPath}lib" # Some other required environment variables export FONTCONFIG_FILE=/etc/fonts/fonts.conf export QTCOMPOSE=${xorg.libX11}/share/X11/locale ''; meta = { description = "Conda is a package manager for Python"; homepage = https://conda.io/; platforms = lib.platforms.linux; license = lib.licenses.bsd3; maintainers = with lib.maintainers; [ jluttine bhipple ]; }; }