Ubuntu 16.04 LTSを使用してラップトップにVS Codeをインストールしました。複数のインストール方法を試しましたが、結果は同じです。最近では、Cactux here の「新しい」指示に従いました。効果がないように、2つの方法でアプリケーションを開いてみました。
code
と入力すると、コマンドは何も実行せず、1秒以内に新しいプロンプトが表示されます。私はLinuxに比較的慣れていないので、何を試してみるのに苦労しています。 which code
は、bashスクリプトである/usr/bin/code
を生成します。これは、私が深みの外に出るところです。
スクリプトの内容
/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 $?
デバッグ出力(異なるディレクトリから)
~$ 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
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
ヘルプや提案は大歓迎です。
ここで説明したのと同じ問題、Ubuntu 18.04 LTSの新規インストールがありました。 condaからVS Codeをインストールしました。
以下を実行すると
code --verbose
コードで何が起こっているかがわかります。私の場合
code --verbose
[main 20:19:26] Startup error:
Error: EACCES: permission denied, mkdir '/home/<user>/.config/Code/CachedData'
フォルダー〜/ .config/Codeが何らかの理由でルートアクセス許可を持っていることを確認してください。 Sudoを使用してフォルダーを削除しました。
rm -rf /home/<user>/.config/Code
コードを実行しようとすると、正常に動作しました。
同じ問題がありました。 Robin GやNezirが提案したように、/ home/user/.config/Code driectoryの所有者が「ルート」であることに気付きました。ただし、削除するのではなく、そのディレクトリの所有権を変更するだけで済みます。
Sudo chown -R user /home/user/.config/Code
「-R」オプションは、ターゲットディレクトリの下のすべてのファイルとディレクトリの所有権を再帰的に変更するために必要です。
この後、ubuntu 18.04のVisual Studio Code v。1.27は、私のマシンで想定されているとおりに動作します。
正しいコマンドでbashをデバッグする
デバッグするには、次のコマンドを使用する必要があります。
bash --debugger `which code`
これにより、bashスクリプトが1行ごとに実行されます。次の行に移動するには、単にnおよびreturnと入力します。あとで出力を投稿します。
BTW Ubuntu 18.04 LTS(長期リリース)はコードを直接サポートするようになり、snapパッケージでインストールできます:
Ubuntuがサポートするスナップのバージョンと情報を表示:
snap info code
そしてそれをインストールする
Sudo snap install code
私は個人的にprefer apt経由でインストールします。したがって、Microsoftからの次の指示に従ってください。
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'
これにより、gpgキーがダウンロードされ、aptファイルがコピーおよび作成されます。その後、単純にvs codeを更新してインストールできます。
Sudo apt-get update
Sudo apt-get install code
私はここで同様の問題を抱えていました:
https://github.com/Microsoft/vscode/issues/55774#issuecomment-41277447
「/home/user/.config/Code folder
を削除」で修正しました
ありがとうございました!
ターミナルで試す
code --user-data-dir
私のために働いた。
code --verbose
xシステムがクラッシュした後、コードの起動に失敗した(詰まった)場合に、私だけでうまくいきました。ただし、開かれたファイルは最新のものではなく、古代のものです。
ターミナルを開き、次のコマンドを実行します。
Sudo rm -rf /home/*your_username*/.config/Code
code --verbose