2020年4月21日

TIPS:VSCodeで日本語化がうまくいかないとき

前置き


Visual Studio Codeで拡張機能「Japanese Language Pack for Visual Studio Code」を入れたら日本語になりますよね。
でも、「Remote Development」で色々な環境を日本語化してると、偶に英語のままになってしまうことがあります。この稀によくある現象は日本人の私にはとても困ります。

観測範囲に於いては、拡張機能が入っている場合には表示言語の切り替えに失敗しただけなので、言語切り替えでうまくいきました。
ということで、手順のご紹介です。

表示言語構成


まず、パレットを開きます([Ctrl]+[Shift]+[P])
次に「conf lang」と入力し、「Configure Display Language」を選択します。
その後は「ja」を選んで、表示されるVSCode再起動メッセージで再起動ボタンを押せば日本語モードで起動しなおしてくれます。



2020年4月3日

小ネタ:CentOS7に指定バージョンのPythonを入れる

表題の通り、Pythonの入れ方です。 これは他のサイト情報をまとめた自分用メモに近いです。指定Versionを定期的に変更したかったので。
# 通常install後に、導入が必要なもの。他にもあるかも。
yum -y install gcc libffi-devel zlib-devel openssl-devel

# バージョン指定
pyVersion=3.7.7

# Install
curl -O https://www.python.org/ftp/python/${pyVersion}/Python-${pyVersion}.tgz
tar xf Python-${pyVersion}.tgz
cd Python-${pyVersion}
./configure
make
make altinstall

# link生成
pyMinor=`echo $pyVersion | awk -F . '{ print $1 "." $2}'`
echo $pyMinor

ln -s /usr/local/bin/python${pyMinor} /usr/bin/python3
ln -s /usr/local/bin/pip${pyMinor} /usr/bin/pip3

# バージョン確認とpip Upgrade
python3 -V
pip3 -V

pip3 install --upgrade pip
pip3 -V
参考:

https://www.unknownengineer.net/entry/2018/06/20/191011
https://www.atmarkit.co.jp/ait/articles/1805/25/news035.html

2020年3月20日

SSHのPort Forwardingについて

前置き

VSCodeのRemote DevelopなどでSSH接続の利便性が上がり、開発環境をLinux上に構築することが増えてきた昨今、SSHのPort Forwardingは開発する上でも便利に利用できる大変シャレオツな機能です。つーか普通にデバッグする時にVSCodeでもマッピングしてくれるしね。

ただ、その概念を覚えるためにググってみた時に、Webを結構探してみたのだけどもスッと入ってくる図が見つからなかったので、だったら自分で描いてしまおうということで、久しぶりの投稿と相成った。

SSH Config

SSH のPort Forwardingについては、単発であればコマンドラインでもできるけども、開発環境として長期的な利用も視野に入れてSSH Configを書くところから入りたい。

環境は以下のような構成だとします。



  • SSHクライアント
    • ホスト名:ssh-cl1
    • IPアドレス:192.168.1.101
  • SSHサーバー
    • ホスト名:ssh-sv1
    • IPアドレス:192.168.1.123

クライアントの ~/.ssh/config に以下のようなconfigを登録したとします。
Host ssh-sv1
    HostName 192.168.1.123
    User root
    IdentityFile ~/.ssh/id_rsa
    LocalForward 18080 127.0.0.1:8080
    RemoteForward 15000 127.0.0.1:5000

なお、同じポート番号でバインドさせることが一般的かと思いますが、値が異なるほうが説明時にわかりやすいので敢えて変えてます。
よって、利用時には真似してローカルとリモートでポート番号を変える必要はありません。もちろん、ポート重複や複数台で登録したいからと、ポート番号を意図的に変えたい場合には参考にしていただければ幸いです。
あと、前方の「127.0.0.1:」は省きポート番号だけ記載しております。そのほうがわかりやすいと思うので。

Port Forwarding

順に見ていきましょう。
まず、LocalForwardの定義です。

これはSSH サーバーのポートをクライアント側(Local)に転送する機能です。
先に挙げたconfigの例では、サーバー側で起動している8080ポートをクライアントに18080ポートとしてバインドします。


次に、RemoteForwardの定義です。

これはSSH クライアントのポートをサーバー側(Remote)に転送する機能です。
先に挙げたconfigの例では、クライアント側で起動している5000ポートをサーバーに15000ポートとしてバインドします。


これでconfigとの対比もわかりますね。先に書かれたポート情報が転送先でのポート番号になり、あとに書かれている定義が転送元のどのポート番号かの定義になります。

動作確認

では、実際に挙動を確認してみましょう。
特定のポートでWebを簡単に起動させて確認できるように、どこのご家庭にでもあるPython環境で試します。え?無い??無料だからInstallすれば解決だよ。


まずはLocalForwarding。
サーバー側の準備はこれだけですね。SSH接続したらHTTPサーバーを8080で立てるだけ。
ssh ssh-sv1
python3 -m http.server 8080

今回のSSHクライアントはWindows10です。他の環境の方は適宜環境ごとの試験をしてください。
netstat -ano | Select-String ":18080"
Invoke-WebRequest http://localhost:18080
SSHサーバー上で立てたHTTPサーバーへのリクエストを、ローカルポートにバインドした18080宛に投げて、結果を受け取ることができました。

続いてRemoteForwarding。
クライアント側の準備はこれだけですね。HTTPサーバーを5000で立てるだけ。
python -m http.server 5000

今回のSSHサーバーはCentOS7ですので、netstatの代わりにssを使ってます。他の環境の方は適宜環境ごとの試験をしてください。
ssh ssh-sv1
ss -antu | grep "15000"
curl http://localhost:15000 | tail
SSHクライアント上で立てたHTTPサーバーへのリクエストを、リモートポートにバインドした15000宛に投げて、結果を受け取ることができました。

TIPS:VSCodeで日本語化がうまくいかないとき

前置き Visual Studio Codeで拡張機能「 Japanese Language Pack for Visual Studio Code 」を入れたら日本語になりますよね。 でも、「 Remote Development 」で色々な環境を日本語化してると、偶に...