Skip to content

Commit

Permalink
Merge pull request #69 from MicrosoftDocs/repo_sync_working_branch
Browse files Browse the repository at this point in the history
Confirm merge from repo_sync_working_branch to live to sync with https://github.com/microsoftdocs/live-share (branch master)
  • Loading branch information
Chuxel committed May 19, 2018
2 parents d68df91 + 248d472 commit 0f40c5f
Show file tree
Hide file tree
Showing 2 changed files with 86 additions and 22 deletions.
43 changes: 22 additions & 21 deletions docs/reference/linux.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
title: "Linux installation details - Visual Studio Live Share | Microsoft Docs"
description: "Detailed information on installing Visual Studio Live Share on Linux."
ms.custom:
ms.date: 05/17/2018
ms.date: 05/19/2018
ms.reviewer: ""
ms.suite: ""
ms.technology:
Expand Down Expand Up @@ -45,35 +45,39 @@ If you **prefer not to have VS Code run the command for you**, you can also opt
#### Debian / Ubuntu

Visual Studio Live Share uses the .NET Core runtime which requires a number of libraries be installed. The following libraries may be missing from certain Debian/Ubuntu distributions or derivatives:
Visual Studio Live Share uses the .NET Core runtime which requires a number of libraries be installed. The following libraries are required for Debian/Ubuntu based distributions or derivatives:

- libunwind8
- liblttng-ust0
- libcurl3
- libssl1.0.0 (Ubuntu 16.X, 17.X, 18.X)
- libcurl3 (Ubuntu 16.04, 17.10, Mint 18.3, Debian 9)
- libcurl4 (Ubuntu 18.04 - libcurl3 also works)
- libssl1.0.0 (Ubuntu 16.04, 17.10, 18.04)
- libssl1.0.2 (Debian 9)
- libuuid1
- libkrb5-3
- zlib1g
- libicu55 (for Ubuntu 16.X)
- libicu57 (for Ubuntu 17.X)
- libicu60 (for Ubuntu 18.X)
- libicu55 (for Ubuntu 16.04, Mint 18.3)
- libicu57 (for Ubuntu 17.10, Debian 9)
- libicu60 (for Ubuntu 18.04)
- gettext
- apt-transport-https
- gnome-keyring
- libsecret-1-0
- desktop-file-utils

> **Critical Note:** Be sure you do **not** have both **libssl1.0.0 and libssl1.0.2 installed** or the Live Share agent may crash. Use `sudo apt remove libssl1.0.0` to remove the older version if both are installed. See [here](https://github.com/dotnet/core/issues/973) for additional information on this .NET Core bug.
In addition, the following are libraries **Live Share itself depends on** that may be missing in some instances (e.g. distributions not using Gnome):
Libraries may be installed on Debian/Ubuntu based distributions by running `sudo apt install <library-name>` in a terminal. For Ubuntu 16.04, 17.10, and Mint 18.3 run:

- gnome-keyring
- libsecret-1-0
- desktop-file-utils
sudo apt install libssl1.0.0 libcurl3 libunwind8 liblttng-ust0 libuuid1 libkrb5-3 zlib1g gnome-keyring libsecret-1-0 desktop-file-utils gettext apt-transport-https libicu??

For Ubuntu 18.04, run:

Libraries may be installed on Debian/Ubuntu based distributions by running `sudo apt install <library-name>` in a terminal. For example, this will install everything for Ubuntu 16.04/17.10/18.04 or Mint 18.3:
sudo apt install libssl1.0.0 libcurl4 libunwind8 liblttng-ust0 libuuid1 libkrb5-3 zlib1g gnome-keyring libsecret-1-0 desktop-file-utils gettext apt-transport-https libicu??

sudo apt install libunwind8 liblttng-ust0 libcurl3 libuuid1 libkrb5-3 zlib1g gnome-keyring libsecret-1-0 desktop-file-utils gettext apt-transport-https libssl1.0.? libicu??
For Debian 9, run:

The last two parts of the command automatically determines which version of libssl and libicu to install.
sudo apt install libssl1.0.2 libcurl3 libunwind8 liblttng-ust0 libuuid1 libkrb5-3 zlib1g gnome-keyring libsecret-1-0 desktop-file-utils gettext apt-transport-https libicu??

#### Fedora / CentOS / RHL

Expand All @@ -87,9 +91,6 @@ Fedora/CentOS/RHL requires similar packages to Debian / Ubuntu but with slightly
- krb5-libs
- libicu
- zlib

As with Debian/Ubuntu, **Live Share itself** depends on the following:

- gnome-keyring
- libsecret
- desktop-file-utils
Expand Down Expand Up @@ -120,11 +121,11 @@ While the prerequisite install script above should cover Debian / Ubuntu and RHL
| Distribution | Vanilla install missing libraries | Additional steps |
|--------|-------------------|----|
| Ubuntu Desktop 18.04 (64-bit) | `libcurl3 liblttng-ust0 apt-transport-https` | &lt;none&gt; |
| Ubuntu Desktop 18.04 (64-bit) | `libcurl4 liblttng-ust0 apt-transport-https` | &lt;none&gt; |
| Ubuntu Desktop 16.04 (64-bit) | &lt;none&gt; | &lt;none&gt; |
| Kubuntu 18.04 (64-bit) | `libcurl3 liblttng-ust0 gnome-keyring desktop-file-utils gettext apt-transport-https` | <ul><li>If you run into trouble with Live Share's browser integration, be sure `desktop-file-utils` is installed and then restart VS Code.</li></ul> |
| Kubuntu 18.04 (64-bit) | `libcurl4 liblttng-ust0 gnome-keyring desktop-file-utils gettext apt-transport-https` | <ul><li>If you run into trouble with Live Share's browser integration, be sure `desktop-file-utils` is installed and then restart VS Code.</li></ul> |
| Kubuntu 16.04 (64-bit) | `libunwind8 liblttng-ust0 gnome-keyring desktop-file-utils` | <ul><li>If you run into trouble with Live Share's browser integration, be sure `desktop-file-utils` is installed and then restart VS Code.</li></ul> |
| Xubuntu 18.04 (64-bit) |`libcurl3 liblttng-ust0 apt-transport-https` | <ul><li>Ensure "Launch GNOME services on startup" is checked in the "Advanced" tab of "Session and Startup".</li><li>If you run into sign-in trouble, install `seahorse`, start "Passwords and Keys", verify you have "Login" keyring and that you can unlock it.</li></ul> |
| Xubuntu 18.04 (64-bit) |`libcurl4 liblttng-ust0 apt-transport-https` | <ul><li>Ensure "Launch GNOME services on startup" is checked in the "Advanced" tab of "Session and Startup".</li><li>If you run into sign-in trouble, install `seahorse`, start "Passwords and Keys", verify you have "Login" keyring and that you can unlock it.</li></ul> |
| Xubuntu 16.04 (64-bit) | `libunwind8 liblttng-ust0` | <ul><li>Ensure "Launch GNOME services on startup" is checked in the "Advanced" tab of "Session and Startup".</li><li>If you run into sign-in trouble, install `seahorse`, start "Passwords and Keys", verify you have "Login" keyring and that you can unlock it.</li></ul> |
| Mint 18.3 Cinnamon (64-bit) | `libcurl3` | &lt;none&gt; |
| Debian 9 GNOME Desktop (64-bit) | `libunwind8 liblttng-ust0 apt-transport-https gettext` | <ul><li>You will need to install `sudo` if you have not already to run the automated prerequisite installer.</li><li>Be sure you do **not** have both **libssl1.0.0 and libssl1.0.2** installed. Use `sudo apt remove libssl1.0.0` to remove the older version if it is installed in addition to 1.0.2. See [here](https://github.com/dotnet/core/issues/973) for details.</ul> |
Expand Down Expand Up @@ -179,4 +180,4 @@ See [above](#tips-for-unsupported-distros) for additional details on whether the
- [Connectivity requirements for Live Share](connectivity.md)
- [Security features of Live Share](security.md)

Having problems? See [troubleshooting](../troubleshooting.md) or [provide feedback](../support.md).
Having problems? See [troubleshooting](../troubleshooting.md) or [provide feedback](../support.md).
65 changes: 64 additions & 1 deletion scripts/linux-prereqs.sh
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,75 @@ APT=$(which apt 2>&1)
if type apt > /dev/null 2>&1; then
echo "(*) Detected Debian / Ubuntu"
echo ""
sudo apt install -yq libunwind8 liblttng-ust0 libcurl3 libssl1.0.? libicu?? libuuid1 libkrb5-3 zlib1g gnome-keyring libsecret-1-0 desktop-file-utils gettext apt-transport-https
sudo apt install -yq libunwind8 liblttng-ust0 libicu?? libuuid1 libkrb5-3 zlib1g gnome-keyring libsecret-1-0 desktop-file-utils gettext apt-transport-https
if [ $? -ne 0 ]; then
echo "(!) Installation failed! Press enter to dismiss this message."
read
exit 1
fi
# Ubuntu 18.04 has libcurl3 and 4, others only libcurl3, so only install libcurl3
# if nothing is already installed to avoid unexpected impacts
LIBCURL=$(dpkg-query -f '${db:Status-Abbrev}\t${binary:Package}\n' -W 'libcurl[0-9]' 2>&1 | sed -n -e '/^i/p' | grep -o 'libcurl[0-9]:')
if [[ -z $LIBCURL ]]; then
# No libcurl installed - so install one
sudo apt install -yq libcurl3
if [ $? -ne 0 ]; then
echo "(!) Installation failed! Press enter to dismiss this message."
read
exit 1
fi
else
LIBCURLINSTALLED=$(echo "$LIBCURL" | head -n 1 | sed -e 's/...\t\(.*\):\(.*\)/\1/')
echo "$LIBCURLINSTALLED already installed"
fi
# On Debian, .NET Core will crash if there is more than one version of libssl1.0 installed.
# Remove one if this situation is detected. See https://github.com/dotnet/core/issues/973
LIBSSL=$(dpkg-query -f '${db:Status-Abbrev}\t${binary:Package}\n' -W 'libssl1\.0\.?' 2>&1 | sed -n -e '/^i/p' | grep -o 'libssl1\.0\.[0-9]:')
if [ $? -ne 0 ]; then
echo "(!) Installation failed! Press enter to dismiss this message."
read
exit 1
fi
if [[ -z $LIBSSL ]]; then
# No libssl install 1.0.2 for Debian, 1.0.0 for Ubuntu
if [[ ! -z $(apt-cache --names-only search ^libssl1.0.2$) ]]; then
sudo apt install -yq libssl1.0.2
if [ $? -ne 0 ]; then
echo "(!) Installation failed! Press enter to dismiss this message."
read
exit 1
fi
else
sudo apt install -yq libssl1.0.0
if [ $? -ne 0 ]; then
echo "(!) Installation failed! Press enter to dismiss this message."
read
exit 1
fi
fi
else
LIBSSLCOUNT=$(echo "$LIBSSL" | wc -l)
LIBSSLFIRSTPKG=$(echo "$LIBSSL" | head -n 1 | sed -e 's/...\t\(.*\):\(.*\)/\1/')
if [[ $LIBSSLCOUNT -gt 1 ]]; then
# More than one is installed - so see if we should remove one
echo ""
echo "(!) WARNING: $LIBSSLCOUNT sub-versions of libssl1.0 detected. This can crash Live Share."
echo ""
read -p "Attempt to fix by removing $LIBSSLFIRSTPKG [Y/n]? "
if [[ "$REPLY" == "" ]] || [[ "$REPLY" =~ ^[Yy] ]]; then
# This can remove other packages, so skip "-yq" so user can review impact
echo ""
sudo apt remove $LIBSSLFIRSTPKG
if [ $? -ne 0 ]; then
echo "(!) Installation failed! Press enter to dismiss this message."
read
exit 1
fi
fi
else
echo "$LIBSSLFIRSTPKG already installed."
fi
fi

#RHL/Fedora/CentOS
elif type yum > /dev/null 2>&1; then
Expand Down

0 comments on commit 0f40c5f

Please sign in to comment.