Conda
Package, dependency, and environment management for any language, Python, R, Ruby, Lua, Scala, Java, JavaScript, C/ C++, Fortran, and more. Conda is an open-source package management system and environment management system that runs on Windows, macOS, Linux, and z/OS. Conda quickly installs, runs, and updates packages and their dependencies. Conda easily creates, saves, loads, and switches between environments on your local computer. It was created for Python programs, but it can package and distribute software for any language. Conda as a package manager helps you find and install packages. If you need a package that requires a different version of Python, you do not need to switch to a different environment manager, because conda is also an environment manager. With just a few commands, you can set up a totally separate environment to run that different version of Python, while continuing to run your usual version of Python in your normal environment.
Learn more
PackageManagement (OneGet)
This module is currently not in development. We are no longer accepting any pull requests to this repository. OneGet is in a stable state and is expected to receive only high-priority bug fixes from Microsoft in the future. If you have a question or are seeing an unexpected behavior from this module please open up an issue in this repository. PackageManagement is supported in Windows, Linux and MacOS now. We periodically make binary drops to PowerShellCore, meaning PackageManagement is a part of PowerShell Core releases.
Learn more
Nix
Nix is a tool that takes a unique approach to package management and system configuration. Learn how to make reproducible, declarative, and reliable systems. Nix builds packages in isolation from each other. This ensures that they are reproducible and don't have undeclared dependencies, so if a package works on one machine, it will also work on another. Nix makes it trivial to share development and build environments for your projects, regardless of what programming languages and tools you’re using. Nix ensures that installing or upgrading one package cannot break other packages. It allows you to roll back to previous versions and ensures that no package is in an inconsistent state during an upgrade. Nix is a purely functional package manager. This means that it treats packages like values in purely functional programming languages such as Haskell, they are built by functions that don’t have side effects, and they never change after they have been built.
Learn more
Zypper
Zypper is a command-line package manager for installing, updating, and removing packages. It can also be used to manage repositories. Zypper works and behaves as a regular command-line tool. It features subcommands, arguments, and options that can be used to perform specific tasks. Zypper offers several benefits compared to graphical package managers. Being a command-line tool, Zypper is faster in use and light on resources. Zypper actions can be scripted. Zypper can be used on systems that do not have graphical desktop environments. This makes it suitable for use with servers and remote machines. The simplest way to execute Zypper is to type its name, followed by a command. Additionally, you can choose from one or more global options by typing them immediately before the command. Some commands require one or more arguments. Executing subcommands in the Zypper shell, and using global Zypper options are not supported.
Learn more