Help us understand the problem. What is going on with this article?

UserLAndにVSCodeをインストール

はじめに

UserLAnd上のDebianでVSCodeを動かしたいという物好きのメモ。
VSCodeの他、ブラウザや日本語環境も同時に準備します。
UserLAnd特有のはまりどころがあったので、VSCode使う人以外も参考になる…かも。

デスクトップ環境の導入

VSCodeの起動にためにはデスクトップ環境が必須なのでLXDEを準備。

下準備

debianをSSHで起動。
何にしてもまずは下準備。
ファイルの編集のためのvimも導入。

$ sudo apt update
$ sudo apt upgrade
$ sudo apt install vim

LXDE導入

最小構成でいいのでlxde-coreをインストール。

$ sudo apt install lxde-core

解像度の変更は~/.vncrcを修正。

~/.vncrc
$geometry = "1600x900";

VNC接続準備

VNC接続時にLXDEが自動で起動するようにVNC起動スクリプトの最終行を修正。

/support/startVNCserverStep2.sh
#DISPLAY=localhost:51 xterm -geometry 80x24 +0+0 -e /bin/bash --login &
source /etc/profile.d/userland_profile.sh
DISPLAY=localhost:51 startlxde &

userland_profile.shを読み込まないと、コマンド実行時に下記のようなエラーが出る。
これがなかなか解決できず苦戦。

$ ssh
ssh: error while loading shared libraries: libdl.so: cannot open shared object file: No such file or directory

XSDL接続準備

Android9以降でもXSDLを使いたい場合があります。
UserLAndはAndroid9以降の場合、XSDL接続が抑止されているのでSSH接続後にXSDLに接続することになります。そのため、起動用シェルを作成。

~/xsdl.sh
#!/bin/sh
export DISPLAY=localhost:0
startldex &

この設定を追記後、下記手順でXSDLによるLXDE利用が可能。
1. XSDL起動
2. UserLAndのdebianをSSH接続で起動
3. シェルを実行

$ ./xsdl.sh &

デスクトップ環境整備

デスクトップをある程度使えるようにブラウザと日本語環境を整備。

Chromium導入

Chromiumを起動するときには"--no-sandbox"オプションが必要。

$ sudo apt install chromium

タイムゾーン変更

タイムゾーンの変更はココが非常に参考になりました。

$ sudo rm /etc/localtime 
$ sudo echo Asia/Tokyo > /etc/timezone 
$ sudo dpkg-reconfigure -f noninteractive tzdata

日本語環境の整備

日本語環境の準備はココが非常に参考になりました。

$ sudo apt install fonts-noto-cjk
$ sudo apt install locales

/etc/locale.genを開いて下記の行をコメントアウトを外す。

/etc/locale.gen
ja_JP.UTF-8 UTF-8
en_US.UTF-8 UTF-8

localeファイルの生成

$ sudo /usr/sbin/locale.gen

起動時に環境変数を設定するようスクリプトを修正。

/etc/profile.d/userland_profile.sh
export LANG="ja_JP.UTF-8"
export LC_ALL="ja_JP.UTF-8"
export LANGUAGE="ja"

設定後、debianを再起動すると日本語環境になります。

fcitx-mozcの導入

日本語が入力でないとコメント等が書けないのでfcitx-mozcを導入。
上記の日本語環境整備が終わっていないとfcitxをインストールしても漢字変換できませんでした。

$ sudo apt install fcitx-mozc
$ sudo apt install dbus-x11
$ sudo im-config -n fcitx

そして下記の環境変数を追加。(2020/02/15 ディレクトリが誤っていたため修正)

/etc/profile.d/userland_profile.sh
export XMODIFIERS="@im=fcitx"
export QT_IM_MODULE=fcitx
export QT4_IM_MODULE=fcitx
export GTK_IM_MODULE=fcitx
export CLUTTER_IM_MODULE=fcitx

LXDE上でfcitxが自動起動してきてくれないので下記を追加。

/etc/xdg/lxsession/LXDE/autostart
@fcitx 

これで再起動するとctrl+spaceで漢字変換ができるようになります。

VSCodeのインストール

VSCodeといいつつ、HeadMeltedのCode-OSSです。
apt.shの実行でサクッとインストールできると思いきや1.42はエラーが出て起動しなかったため、1.32をインストールします。

GPGKeyの追加

HeadMeltedのGPGKeyを追加します。

$ wget https://packagecloud.io/headmelted/codebuilds/gpgkey
$ sudo apt-key add gpgkey

apt.shの編集と実行

apt.shをダウンロードして1.42をインストールしないよう修正します。

$ wget https://code.headmelted.com/installers/apt.sh

最新版をインストールする行をコメントアウト

apt.sh
# apt-get install -t ${repo_name} -y ${code_executable_name};

apt.shをルート権限で実行

$ sudo su
# chmod 755 apt.sh
# ./apt.sh

VSCodeのインストール

1バージョン古い1.32をインストールします。

$ sudo apt install code-oss=1.32.0-1550644676

libxcb.so.1のコピーと編集

libxcb.so.1をコピーして編集しないとVSCodeは動きません。

$ cd /usr/share/code-oss
$ sudo cp /usr/lib/aarch64-linux-gnu/libxcb.so.1 .
$ sudo sed -i 's/BIG-REQUESTS/_IG-REQUESTS/' libxcb.so.1

VSCodeの設定

VSCodeのバグのせいらしく、Backspaceが効かない、5キーがBackspaceになる等の問題があります。
この修正のためスタートメニューからCode-OSSをクリックして起動させ、設定を変更します。

起動後、
1. File -> Preference -> Settingsをクリックします。
2. 表示されたSettingsタブのテキストボックスに"keycode"と入力します。
3. "keyboard:dispatch"というプロパティが表示されるので、"code"から"keyCode"に変更します。
4. VSCodeを再起動します。

ゴール!

これでスタートメニューのcode-OSSクリックするとVSCodeが利用できる…はずです。
お疲れさまでした。

おわりに

はじめてのQiita投稿です。
わかりづらい点があったら申し訳ありません。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした