Reputation: 1642
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
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
Upvotes: 97
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
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
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
Reputation: 2018
Follow the Microsoft instructions for installing Nuget on Linux:
Install Mono 4.4.2 or later.
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
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"
Reload the shell. Test the installation by entering nuget
with no parameters. NuGet CLI help should display.
Upvotes: 7
Reputation: 2555
In case you want to use nuget
with WSL2, the steps are as follows.
Download nuget.exe through wget https://dist.nuget.org/win-x86-commandline/latest/nuget.exe
Create a bash file called nuget
:
> nuget
# Or
vi nuget
vim nuget
, then i
):# Edit the file with - make sure to add the correct path to nuget.exe file
'nuget.exe' $@ &
# Make it executable
chmod +x nuget
# Edit .bashrc
vi .bashrc
export PATH=/path/to/nuget-folder:$PATH
in the .bashrc file.Upvotes: 2
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