検索条件
お知らせ
現在サイトのリニューアル作業中のため、表示が崩れているページが存在することがあります。
Ubuntu22.04 LTSのターミナルのレンダリングが異常に重いのでバージョンを落として運用するためのメモ
Node.jsの開発環境だけ入れる
| 環境 |
Version |
| Windows 11 Pro |
Build 22621.3155 |
| Ubuntu |
20.04.6 LTS |
| zsh |
5.8 (x86_64-ubuntu-linux-gnu) |
| MariaDB |
Ver 15.1 Distrib 10.3.38-MariaDB |
| Docker |
20.10.17, build 100c701 |
| Git |
2.42.0 |
- 管理者権限のPowerShellで以下を流す
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
- OS再起動
- Linuxカーネル更新プログラム パッケージをインストールする
- Ubuntuを入れる
適当な開発環境をサクッと。
~/.ssh/には予め鍵を入れておき、パーミッション700で作っておく。
# systemdの有効化
cat <<EOF | sudo tee /etc/wsl.conf
[boot]
command=service docker start; service nginx start; service mysql start;
[interop]
appendWindowsPath = false
[user]
default=ここにユーザー名
EOF
sudo apt update -y
sudo apt upgrade -y
sudo apt install -y \
zsh \
ssh \
net-tools \
traceroute \
unzip \
mariadb-server \
nginx \
git \
keychain
# chsh
sudo apt -y install unzip traceroute
chsh -s $(which zsh)
# Docker
sudo apt remove docker docker-engine docker.io containerd runc
sudo apt update
# 依存関係のインストール
sudo apt install -y \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release
# Docker公式のGPG鍵を追加
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# リポジトリをパッケージマネージャーに登録
echo \
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
# docker本体のインストール
sudo apt install -y dockerdocker-ce docker-ce-cli containerd.io docker-compose-plugin
# sudo緩和
sudo usermod -aG docker $USER
# WSLをリブート
# dot file設定
git clone https://github.com/Lycolia/my-dotfiles.git
rm -Rf my-dotfiles/.git/
mv my-dotfiles/.* .
rm -Rf my-dotfiles/
# Node.js @ nvm
export NVM_DIR="$HOME/.nvm" && (
git clone https://github.com/nvm-sh/nvm.git "$NVM_DIR"
cd "$NVM_DIR"
git checkout `git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1)`
) && \. "$NVM_DIR/nvm.sh"
nvm install --lts
# Keychain設定
cat <<'EOF' | tee -a ~/.zshrc
Keychain
keychain -q --nogui $HOME/.ssh/id_ed25519
source $HOME/.keychain/hostname-sh
EOF
上記手順に書いてないことをすると起きるが、一応付記しておく
wsl.confの[user]セクションでdefault=USER_NAMEが存在しないユーザーを指定していると出る
systemdが有効になっていると起動しないので/etc/wsl.confからsystemd=trueを消す
パーミッションを治す
chmod -R 700 .ssh
| Env |
Ver |
| Ubuntu |
20.04.4 LTS |
| nginx |
1.18.0 (Ubuntu) |
| MariaDB |
15.1 Distrib 10.3.34-MariaDB |
| grafana-server |
Version 9.2.5 (commit: 042e4d216b, branch: HEAD) |
- Windows側から
http://grafana.test/としてアクセスする
- DBにはMariaDBを使用
Windows側のhostsに以下を追記
127.0.0.1 grafana.test
sudo apt update
sudo apt install -y nginx mariadb-server
sudo apt-get install -y apt-transport-https software-properties-common wget
sudo wget -q -O /usr/share/keyrings/grafana.key https://apt.grafana.com/gpg.key
echo "deb [signed-by=/usr/share/keyrings/grafana.key] https://apt.grafana.com stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
sudo apt-get update
sudo apt-get install grafana
cat <<'EOF' | sudo tee /etc/nginx/conf.d/granafa.conf
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
upstream grafana {
server localhost:4000;
}
server {
listen 80;
server_name grafana.test;
access_log /var/log/nginx/grafana.access.log;
error_log /var/log/nginx/grafana.error.log;
location / {
proxy_set_header Host $http_host;
proxy_pass http://grafana;
}
location /api/live/ {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Host $http_host;
proxy_pass http://grafana;
}
}
EOF
sudo service nginx start
idとpwの部分は適当に変える
sudo service mysql start
sudo mysql
CREATE USER 'id'@'%' IDENTIFIED BY 'pw';
GRANT ALL PRIVILEGES ON *.* TO 'id'@'%' WITH GRANT OPTION;
quit
適当なRDBクライアントから繋げればOK
sudo nano /etc/grafana/grafana.iniで適当にいじる
# The http port to use
http_port = 4000
# The public facing domain name used to access grafana from a browser
domain = grafana.test
sudo service grafana-server start
- http://grafana.test/ へアクセス
- IDPW共に
adminが初期
- MariaDBに適当なDBとテーブルを作る
- Grafanaにログインする
- サイドバーから
Configuration -> Data sources
- DBの情報を入れて接続
- 後はよしなにやる
xrdpが入っていなければxrdpをインストール
- Desktop版なら最初から入ってた気もする
3389ポートを開ける
sudo ufw allow 3389
- オートログインを殺す
sudo sed -ie 's/AutomaticLoginEnable=true/AutomaticLoginEnable=false/' /etc/gdm3/custom.conf
- あとは再起動してWindowsのリモートデスクトップから繋げて画面が映ればOK
sudo reboot
pkill gnome-sessionでログインセッションを殺す
sudo nano /etc/xrdp/startwm.shして以下の内容を追記する
export DESKTOP_SESSION=ubuntu
export GNOME_SHELL_SESSION_MODE=ubuntu
export XDG_CURRENT_DESKTOP=ubuntu:GNOME
あらかじめgpgのパスをPATHに通しておくと良い
参考値:C:\Program Files (x86)\GnuPG\bin
| Env |
Ver |
| Windows 10 Pro |
Build 19042.804 |
| git |
2.30.0.windows.1 |
| VSCode |
1.53.2 |
| Kleopatra |
Gpg4win-3.1.15 |
Windows側からVSCodeのRemote - SSHで接続
| Env |
Ver |
| Ubuntu Desktop |
20.04.2 |
| git |
2.25.1 |
| gpg |
2.2.19 |
- Kleopatoraを起動
- ファイル> New Pair Key
- 個人用のOpenPGP鍵ペアを生成
- 期限なし、パスフレーズは適当に
- Exportから
-----BEGIN PGP PUBLIC KEY BLOCK----- の中身を全部GitHubの GPG keys/ Add new に貼り付ける
- 追加後にでてきた
Key ID を git config --global user.signingkey KeyID として cmd に流す
- 以下を流す(
gpg.program はなくても動くが、あったほうが問題が起きない)
```bat
git config --global commit.gpgsign true
git config --global gpg.program "C:\Program Files (x86)\GnuPG\bin\gpg.exe"
```
- 管理者権限で
cmd を起動し次のシンボリックリンクを作成
mklink /D %USERPROFILE%.gnupg %AppData%\GnuPG
- VSCodeで適当なリポジトリを作成
- なんか適当にコミットする
- GitHubに投げる
- GitHubのコミット履歴にverified signatureがついてたら成功
- Windows側のKleopatoraから公開鍵と秘密鍵をエクスポートして持ってくる
gpg --import FooBarpublic.asc で公開鍵をインポート
gpg -k でインポートされていることを確認し、下記XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX相当の部分をコピペ
pub rsa3072 2021-01-17 [SC]
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
uid [ 不明 ] Foo Bar <foobar@example.com>
sub rsa3072 2021-01-17 [E]
gpg --edit-key XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
trust
5を選ぶ
quit
gpg -kで信用度が[ 究極 ]になっていることを確認
gpg --import FooBarSECRET.ascで秘密鍵をインポート
- SSHで繋いでいる時でタイムアウトする場合、GUIプロンプトからの入力になっている可能性があるので、どうにかして入力
- XRDP経由なら
pkill gnome-sessionを叩くと入れる
- Windowsの時と同様に次のコマンドを流す
git config --global user.signingkey KeyID
git config --global commit.gpgsign true
- VSCodeで適当なリポジトリを作成
- 何か適当にコミットする
- コミットがコケたらXRDPから入力する
- GitHubに投げる
- GitHubのコミット履歴にverified signatureがついてたら成功
以下の手順が参考になる
WSL2のUbuntuでGPGキーのパスフレーズを記憶させる