I've installed VS Code on my laptop with Ubuntu 16.04 LTS. I've tried multiple installation methods with identical results; most recently, I followed the "new" instructions from Cactux here. I've tried opening the application two ways to no effect.

  • When I open the program from 'Applications', the icon shows in the launcher for approximately 15 seconds and then disappears. No error pops up.
  • When I open a terminal and type code, the command does nothing and I get a new prompt in less than a second.

I'm struggling with what to try since I'm relatively new to Linux. which code yields /usr/bin/code, which is a bash script. This is where I get outside my depth.

Contents of script

/usr/bin$ cat code
#!/usr/bin/env bash
#
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.

# If root, ensure that --user-data-dir or --file-write is specified
if [ "$(id -u)" = "0" ]; then
    for i in $@
    do
        if [[ $i == --user-data-dir || $i == --user-data-dir=* || $i == --file-write ]]; then
            CAN_LAUNCH_AS_ROOT=1
        fi
    done
    if [ -z $CAN_LAUNCH_AS_ROOT ]; then
        echo "You are trying to start vscode as a super user which is not recommended. If you really want to, you must specify an alternate user data directory using the --user-data-dir argument." 1>&2
        exit 1
    fi
fi

if [ ! -L $0 ]; then
    # if path is not a symlink, find relatively
    VSCODE_PATH="$(dirname $0)/.."
else
    if which readlink >/dev/null; then
        # if readlink exists, follow the symlink and find relatively
        VSCODE_PATH="$(dirname $(readlink -f $0))/.."
    else
        # else use the standard install location
        VSCODE_PATH="/usr/share/code"
    fi
fi

ELECTRON="$VSCODE_PATH/code"
CLI="$VSCODE_PATH/resources/app/out/cli.js"
ELECTRON_RUN_AS_NODE=1 "$ELECTRON" "$CLI" "$@"
exit $?

Debug output (from different directories)

~$ bash -x code
++ id -u
+ '[' 1000 = 0 ']'
+ '[' '!' -L code ']'
++ dirname code
+ VSCODE_PATH=./..
+ ELECTRON=./../code
+ CLI=./../resources/app/out/cli.js
+ ELECTRON_RUN_AS_NODE=1
+ ./../code ./../resources/app/out/cli.js
/usr/bin/code: line 35: ./../code: No such file or directory
+ exit 127

/usr/bin$ bash -x code
++ id -u
+ '[' 1000 = 0 ']'
+ '[' '!' -L code ']'
+ which readlink
+++ readlink -f code
++ dirname /usr/share/code/bin/code
+ VSCODE_PATH=/usr/share/code/bin/..
+ ELECTRON=/usr/share/code/bin/../code
+ CLI=/usr/share/code/bin/../resources/app/out/cli.js
+ ELECTRON_RUN_AS_NODE=1
+ /usr/share/code/bin/../code /usr/share/code/bin/../resources/app/out/cli.js
+ exit 0

Contents of PATH

~$ $PATH
bash: /home/adam/anaconda3/bin:/home/adam/anaconda3/bin:/home/adam/bin:/home/adam/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin: No such file or directory

Any help or suggestions are appreciated.

  • 1
    Make sure you have your packages updated. You can verify this with these commands: 1) sudo apt update 2) sudo apt upgrade. If you get any errors, address the errors. Then try to run the apt from the terminal and check for errors. – L. D. James Apr 7 at 20:36

I had the same problem described here, new install of Ubuntu 18.04 LTS. I installed VS Code from conda.

Discovered that if you run the following

code --verbose

It will tell you what is going on with Code. In my case

code --verbose
[main 20:19:26] Startup error: 
Error: EACCES: permission denied, mkdir '/home/<user>/.config/Code/CachedData'

sure enough the folder ~/.config/Code had root access permissions for some reason. Deleted the folder using sudo.

rm -rf /home/<user>/.config/Code 

Tried again to run code and it working fine.

I had the same problem. Like Robin G and Nezir suggested I realized that the owner of the /home/user/.config/Code driectory is the "root". However, You could just change the ownership of that directory instead of removing it.

sudo chown -R user /home/user/.config/Code

"-R" option is needed to recursively change the ownership of all the files and directories under the target directory.

After this the Visual Studio Code v. 1.27 on ubuntu 18.04 works as it is supposed to on my machine.

  • At least I learnt something new: chown command – Soma Mbadiwe Oct 26 at 18:59

Debug the bash with the correct command

To debug you should use following command:

bash --debugger `which code`

This will run the bash script line per line. To go to the next line simply type n and return. Post the output than we will see more.

Installing via snap (for Ubuntu versions > 18.04)

BTW Ubuntu 18.04 LTS (Long term release) now supports code directly and you can install it via snap package:

Show version and info of ubuntu supported snap:

snap info code

and to install it

sudo snap install code 

I personal prefer to install it via apt. Therefore follow this instruction from microsoft:

Installing VS Code

curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
sudo mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg
sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list'

This will download the gpg key and copy and make the apt files. Then you can simply update and install vs code:

sudo apt-get update
sudo apt-get install code
  • The advantage of this installation method is that you can simple update vscode using the apt-get update command. Works fine and I use vs code with the vim plugin for over 2 years (c, c++, python, md, latex, html, javascript ...).
  • No dice. At this point though, I actually can just wait for 18.04. Thanks for the tip. – Adam Apr 8 at 1:44

I had the similar problem here:

https://github.com/Microsoft/vscode/issues/55774#issuecomment-412774473

and fixed it with "delete the /home/user/.config/Code folder"

Thank you!

VS code may silently fail to open if you don't have required dependencies.

From this page:

sudo apt-get install -f # Install dependencies
  • I hope one sentence is enough to explain what it means ` install dependencies ` – Andrey Kudriavtsev Jun 16 at 19:39

Open your terminal and run the following command:

  1. sudo rm -rf /home/*your_username*/.config/Code

    • then provide your password and press enter
  2. code --verbose

Try in terminal

code --user-data-dir

Worked for me.

Your Answer

 

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.