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?
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?
Once you've followed the (somewhat annoying) install steps to get .Net core installed and the apt repo setup from https://www.microsoft.com/net/core, you can just do this:
sudo apt install nuget
and you'll have a working nuget on your local machine:
$ cat /etc/issue
Ubuntu 16.04.1 LTS \n \l
$ nuget
NuGet Version: 2.8.7.0
usage: NuGet <command> [args] [options]
Type 'NuGet help <command>' for help on a specific command.
Notice that as of the time of writing do not run nuget update -self
, as although it will successfully install a more recent version of nuget, that version won't actually run.
If you do break it though, you can always just blow it away and reinstall:
sudo apt remove nuget
sudo apt install nuget
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
.
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
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.
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.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>