diff --git a/README.md b/README.md index 083bd3c..9fccbfa 100644 --- a/README.md +++ b/README.md @@ -1,39 +1,90 @@ -# Deno Binary Installer +# deno_install -| **Linux** | **Windows** | +**One-line commands to install Deno on your system.** + +| **Linux & Mac** | **Windows** | |:---------------:|:-----------:| | [![Build Status](https://travis-ci.com/denoland/deno_install.svg?branch=master)](https://travis-ci.com/denoland/deno_install) | [![Build status](https://ci.appveyor.com/api/projects/status/gtekeaf7r60xa896?branch=master&svg=true)](https://ci.appveyor.com/project/deno/deno-install) | -Downloads the latest Deno binary into `$HOME/.deno/bin`. +## Install Latest Version -**Install with Shell:** +**With Shell:** ```sh curl -L https://deno.land/x/install/install.sh | sh ``` -**Install with PowerShell:** +**With PowerShell:** ```powershell -iex (iwr https://deno.land/x/install/install.ps1) +iwr https://deno.land/x/install/install.ps1 | iex ``` -_Note: Depending on your security settings, you may have to run `Set-ExecutionPolicy RemoteSigned -Scope CurrentUser` first to allow downloaded scripts to be executed._ +## Install Specific Version -## Install other versions - -If you need to install specific version of deno, use the following commands: - -**Install with Shell:** +**With Shell:** ```sh -curl -L https://deno.land/x/install/install.sh | sh -s v0.2.0 +curl -L https://deno.land/x/install/install.sh | sh -s v0.2.10 ``` -**Install with PowerShell:** +**With PowerShell:** ```powershell -iwr https://deno.land/x/install/install.ps1 -out install.ps1; .\install.ps1 v0.2.0 +iwr https://deno.land/x/install/install.ps1 -out install.ps1; .\install.ps1 v0.2.10 ``` -_Note: Depending on your security settings, you may have to run `Set-ExecutionPolicy RemoteSigned -Scope CurrentUser` first to allow downloaded scripts to be executed._ +## Compatibility + +- The Shell installer can be used on Windows via the [Windows Subsystem for Linux](https://docs.microsoft.com/en-us/windows/wsl/about). +- The PowerShell installer can be used on Linux and Mac thanks to [PowerShell Core](https://docs.microsoft.com/en-us/powershell/scripting). + +## Known Issues + +### Could not create SSL/TLS secure channel + +``` +PS C:\> iwr https://deno.land/x/install/install.ps1 | iex +iwr : The request was aborted: Could not create SSL/TLS secure channel. +At line:1 char:1 ++ iwr https://deno.land/x/install/install.ps1 | iex ++ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebException + + FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand +``` + +**When does this issue occur?** + +If your systems' [ServicePointManager](https://docs.microsoft.com/en-us/dotnet/api/system.net.servicepointmanager.securityprotocol) is configured to use an out-dated security protocol, such as, TLS 1.0. + +**How can this issue be fixed?** + +Configure your system to use an up-to-date security protocol, such as, TLS 1.2: + +```powershell +[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 +``` + +### Running scripts is disabled + +``` +PS C:\> iwr https://deno.land/x/install/install.ps1 -out install.ps1; .\install.ps1 v0.2.10 +.\install.ps1 : File C:\install.ps1 cannot be loaded because running scripts is disabled on this system. For more information, see about_Execution_Policies at https:/go.microsoft.com/fwlink/?LinkID=135170. +At line:1 char:63 ++ ... no.land/x/install/install.ps1 -out install.ps1; .\install.ps1 v0.2.10 ++ ~~~~~~~~~~~~~ + + CategoryInfo : SecurityError: (:) [], ParentContainsErrorRecordException + + FullyQualifiedErrorId : UnauthorizedAccess +``` + +**When does this issue occur?** + +If your systems' [ExecutionPolicy](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_execution_policies) is `Undefined` or `Restricted`. + +**How can this issue be fixed?** + +Allow scripts that are downloaded from the internet to be executed by setting the execution policy to `RemoteSigned`: + +```powershell +Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force +``` diff --git a/install_test.ps1 b/install_test.ps1 index d8276ae..80a30da 100644 --- a/install_test.ps1 +++ b/install_test.ps1 @@ -25,13 +25,13 @@ $BinDir = if ($IsWindows) { # Test we can install a specific version. Remove-Item $BinDir -Recurse -Force -ErrorAction SilentlyContinue -.\install.ps1 v0.2.0 +.\install.ps1 v0.2.10 $DenoVersion = if ($IsWindows) { deno --version } else { ~/.deno/bin/deno --version } -if (!($DenoVersion -like '*0.2.0*')) { +if (!($DenoVersion -like '*0.2.10*')) { throw $DenoVersion } diff --git a/install_test.sh b/install_test.sh index 77797f5..c4dfee5 100755 --- a/install_test.sh +++ b/install_test.sh @@ -8,8 +8,8 @@ shfmt -d . # Test we can install a specific version. rm -rf ~/.deno -./install.sh v0.2.0 -~/.deno/bin/deno -v | grep 0.2.0 +./install.sh v0.2.10 +~/.deno/bin/deno -v | grep 0.2.10 # Test we can install the latest version. rm -rf ~/.deno