user3610920
user3610920

Reputation: 1642

How to install NuGet from command line on linux

I need to install NuGet on Linux based machine.When am using the following command in Windows machine it works fine.

nuget install packages.config

But I am unable to do this with linux machine, how to achieve this?

Upvotes: 68

Views: 125000

Answers (7)

Doug
Doug

Reputation: 35136

I do not recommend to use apt-get install nuget because it adds so many certificates and when using apt-get remove nuget it does not remove them as well :(

What is the need to install those certificates without any warning?

I vote negative to apt-get nuget

enter image description here

Upvotes: 97

Didier68
Didier68

Reputation: 1325

I had the same need on an Ubuntu machine with .NET Core 6.0.

I found the solution on Microsoft documentation at https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-add-package with the CLI command dotnet add package

Samples: nuget packages needed for ASP.NET Core web site:

dotnet add package Microsoft.Extensions.Logging --version 6.0.0

dotnet add package Newtonsoft.Json

The full command synopsis is (details on the link above):

dotnet add [<PROJECT>] package <PACKAGE_NAME>
   [-f|--framework <FRAMEWORK>] [--interactive]
   [-n|--no-restore] [--package-directory <PACKAGE_DIRECTORY>]
   [--prerelease] [-s|--source <SOURCE>] [-v|--version <VERSION>]

dotnet add package -h|--help

Upvotes: 0

Santhos
Santhos

Reputation: 3498

A quick and dirty way if you just need the package might be to use curl or wget and unzip. The script may look like:

curl -L -o package.zip https://www.nuget.org/api/v2/package/<target_package>

unzip package.zip -d <target_folder>

Pay attention to the -L curl flag that tells curl to follow any redirects. It's common that nuget would redirect you to a CDN.

Now, you have the latest nuget package in your desired folder. Optionally, you can target a specific version by appending the url with /<version>.


Examples:

curl -L -o package.zip https://www.nuget.org/api/v2/package/Microsoft.Azure.Kusto.Language
...

unzip package.zip -d test
Archive:  package.zip
  inflating: test/_rels/.rels
  inflating: test/Microsoft.Azure.Kusto.Language.nuspec
  inflating: test/lib/net472/Kusto.Language.dll
  inflating: test/lib/net472/Kusto.Language.xml
  inflating: test/lib/net5.0/Kusto.Language.dll
  inflating: test/lib/net5.0/Kusto.Language.xml
  inflating: test/lib/netcoreapp2.1/Kusto.Language.dll
  inflating: test/lib/netcoreapp2.1/Kusto.Language.xml
  inflating: test/lib/netstandard2.0/Kusto.Language.dll
  inflating: test/lib/netstandard2.0/Kusto.Language.xml
  inflating: test/EULA-agreement.txt
  inflating: test/MSFT.png
  inflating: test/[Content_Types].xml
  inflating: test/package/services/metadata/core-properties/0878db782482414487821399a0d09728.psmdcp
 extracting: test/.signature.p7s

cat test/Microsoft.Azure.Kusto.Language.nuspec | grep "<version>"
    <version>11.1.0</version>
curl -L -o package.zip https://www.nuget.org/api/v2/package/Newtonsoft.Json/12.0.2
...

unzip package.zip -d test
Archive:  package.zip
  inflating: test/LICENSE.md
  inflating: test/Newtonsoft.Json.nuspec
  inflating: test/packageIcon.png
  inflating: test/README.md
  inflating: test/[Content_Types].xml
  inflating: test/_rels/.rels
  inflating: test/lib/net20/Newtonsoft.Json.dll
  inflating: test/lib/net20/Newtonsoft.Json.xml
  inflating: test/lib/net35/Newtonsoft.Json.dll
  inflating: test/lib/net35/Newtonsoft.Json.xml
  inflating: test/lib/net40/Newtonsoft.Json.dll
  inflating: test/lib/net40/Newtonsoft.Json.xml
  inflating: test/lib/net45/Newtonsoft.Json.dll
  inflating: test/lib/net45/Newtonsoft.Json.xml
  inflating: test/lib/net6.0/Newtonsoft.Json.dll
  inflating: test/lib/net6.0/Newtonsoft.Json.xml
  inflating: test/lib/netstandard1.0/Newtonsoft.Json.dll
  inflating: test/lib/netstandard1.0/Newtonsoft.Json.xml
  inflating: test/lib/netstandard1.3/Newtonsoft.Json.dll
  inflating: test/lib/netstandard1.3/Newtonsoft.Json.xml
  inflating: test/lib/netstandard2.0/Newtonsoft.Json.dll
  inflating: test/lib/netstandard2.0/Newtonsoft.Json.xml
  inflating: test/package/services/metadata/core-properties/66867671be6046c2a70df93bfa9634b8.psmdcp
 extracting: test/.signature.p7s

cat test/Newtonsoft.Json.nuspec | grep "<version>"
    <version>12.0.2</version>

Upvotes: 2

olegz
olegz

Reputation: 1222

Install mono, then download nuget:

sudo apt-get install mono-complete
wget https://dist.nuget.org/win-x86-commandline/latest/nuget.exe

After then run it using mono nuget.exe.

Upvotes: 30

Gary Barrett
Gary Barrett

Reputation: 2018

Follow the Microsoft instructions for installing Nuget on Linux:

  1. Install Mono 4.4.2 or later.

  2. Execute the following command at a shell prompt (Bash):

    # Download the latest stable `nuget.exe` to `/usr/local/bin` 
    sudo curl -o /usr/local/bin/nuget.exe https://dist.nuget.org/win-x86-commandline/latest/nuget.exe
    
  3. Create an alias by adding the following script to the appropriate file for your OS (typically ~/.bash_aliases or ~/.bash_profile)(Bash):

    # Create as alias for nuget
    alias nuget="mono /usr/local/bin/nuget.exe"
    
  4. Reload the shell. Test the installation by entering nuget with no parameters. NuGet CLI help should display.

Upvotes: 7

Alexz S.
Alexz S.

Reputation: 2555

In case you want to use nuget with WSL2, the steps are as follows.

  1. Download nuget.exe through wget https://dist.nuget.org/win-x86-commandline/latest/nuget.exe

  2. Create a bash file called nuget:

> nuget
# Or
vi nuget
  1. Edit the file with the content below (vim nuget, then i):
# Edit the file with - make sure to add the correct path to nuget.exe file
'nuget.exe' $@ &
  1. Make it executable.
# Make it executable
chmod +x nuget
  1. Add to the $PATH environment variable
# Edit .bashrc
vi .bashrc
  1. Insert export PATH=/path/to/nuget-folder:$PATH in the .bashrc file.

Upvotes: 2

Warren Parad
Warren Parad

Reputation: 4074

nuget apt package doesn't really work on linux, and exe's are for windows. If you want to run nuget the easiest thing is to use mono wrapper.

sudo apt-get install mono-complete
//download nuget.exe
mono nuget.exe install

Upvotes: 16

Related Questions