JavaScript,Linux,環境構築

こんにちは、しきゆらです。
今回は、以前紹介したasdfを使ってNode.jsをインストールし、個人的によく使っているYarnも使えるように環境を作っていきます。

なお、Node.jsのインストールはすぐ終わったのですがYarnのインストールとか諸々に至るまでに紆余曲折ありました。
まずは、インストールして環境構築までの流れをまとめます。
その後に、紆余曲折部分をメモしておきます。
必要なコマンドだけよこせ!という方は、以下の「環境構築の流れ」を参考にしてみてください。

環境構築の手順

コマンド自体の使い方等はそれぞれのツールのサイト等で確認してください。
なお、インストール先はタイトルにある通りWSL2上に動いているUbuntu20.04です。

# node用のプラグインを追加
asdf plugin add nodejs

# nodeをインストール
asdf install nodejs latest

# システム全体で使うバージョンを指定
asdf global nodejs latest

# yarnを使う準備
corepack enable

# asdfの再構築
asdf reshim nodejs

これにて、環境構築は終了です。

yarnの手順が以前とだいぶ変わりましたが、npmで個別にインストールせずにパッケージマネージャを管理する仕組みが入ったようです。
そのおかげで手順がさっぱりしました。

では、前述の通り環境構築の紆余曲折や各ドキュメントを見ながらの細かい話は以下にまとめていきます。

Linux,Ruby,Rust,環境構築

こんにちは、しきゆらです。
今回は、だいぶ旬に乗り遅れた感がありますが、言語等のバージョン管理をasdfに乗り換えたので導入方法や使い方をメモしておきます。

導入の経緯

導入に経緯を一応書いておくと、私はPCの組み換えやOS不調等で、結構な頻度でクリーンインストールをします。
そのたびにRubyをインストールするためにrbenvを導入し、Nodeを使うためにnを導入し、ということを毎度行っていました。
この作業をあまり意識せずにやっていたのですが、先日ふと面倒だなと思うようになりました。
というのも、それぞれ年に数回程度の頻度でしかやらないので、毎度インストールするタイミングで調べて手順をなぞる、というのが知識にもならず無駄に時間がかかるだけなのでは、という風に思ってしまいました。
この辺を解決するツールはないのか、調べてみると、今回使った「asdf」というのがあるということを知ったので触ってみた、という感じです。

JavaScript,Windows,環境構築

こんにちは、しきゆらです。
今回は、タイトルの通りWSL2からclaspを使おうとするとofflineと怒られる問題が起こったのでこれを回避する方法をメモしておきます。

気が付くとWSL2からclasp pushをしようとすると、以下のようなエラーが出てしまってプッシュできない状態になっていました。
よくわからないですが、たまにプッシュできたりするので何が悪いのかよくわかりません。
WSLをインストールしなおしたりしても解決しませんでした。
また、調べてもそれっぽい生地が出てこないので「おま環」ぽい気がしています。

さて、これではWSL内で書いたGASをプッシュできません。
これを回避する方法をメモしておきます。

回避方法は単純で、Docker上からclasp pushをするだけ。
調べてみると、結構DockerでGASを管理したい人がいるようで、情報がそこそこありました。
ということで、プロジェクト諸々をDocker上にマウントしてコマンド実行できるようにしていきます。
なお、ここではGASをTypeScriptで書いたのちWebpackでビルドしたものをclaspコマンドでプッシュする流れです。
参考: https://qiita.com/rei-ta/items/61b3fde6a069b77d335d

Windows,環境構築

こんにちは、しきゆらです。
今回は、WSL2上で動いているUbuntu自体のアップデートをしようとして詰まったのでメモしておきます。

Ubuntuは半年に1回大きめのアップデートが入ります。
こいつをインストールするためのコマンドがdo-release-upgradeです。

このdo-release-upgradeさん、WSL環境で実行しようとすると、最初のパッケージのリストを取得した後に失敗します。
何度やっても落ちるので、もしやと思いsystemdのPIDを1にした状態で実行するとうまくいったのでその時のメモです。

Windows,環境構築

こんにちは、しきゆらです。
今回は、もう何回書くのか、という勢いで書いているWSL2上でsystemctlを使うための手順です。
またもやOS入れ直しで環境リセットしたので、再度入れようとしたところ以前の手順では不十分だったのでメモしなおしです。

とはいえ、使うものは天下のgenieです。
https://github.com/arkane-systems/genie

Windows,環境構築

こんにちは、しきゆらです。
今回はあまり需要がないであろう自作PCネタです。
そして、前回の記事が3月末ということに驚いてます。

半年ほど前、Radeon RX6800のリファレンスモデルを購入しました。
記事:【自作PC】Radeon RX6800を買ったので5700XTから差し替える

上記記事の時点では、もともと6800XTが狙いだったが購入できなかったので場つなぎ的な意図で6800を購入した状態でした。
その後、定期的にお店を回ったり通販をのぞいたりしてもほぼほぼ購入不可能な状態でした。
あるのはぼったくり価格で売っている怪しい業者か転売を生業としている方ばかり・・・。
そして仮想通貨の高騰によりマイニングする方が増えたり、半導体不足などの影響による価格高騰など様々な要因が重なり購入できず状態でした。

発売日に購入した6800が8.5万程度だったが、現在は16万以上という状況である昨今。
この値段を出すんであれば上位モデルが買えるのでは、と思いつつサイトを眺めていましたが最上位は値段もありある程度は変えそうな雰囲気でした。
そして、買おうと思っていたSapphireの6900XTに新しいモデルが出たので、これは買うしかない、となってポチってしまいました。

Linux,環境構築

追記:2021/07/19

どんな勢いで更新されるんだ、という印象ですが
こちらの内容からインストール方法が変更されていたので再度まとめなおしました。
【WSL2】Ubuntu 20.04でPID1をsystemdにする 2021年7月版


こんにちは、しきゆらです。
今回は、またまたWSL2環境でsystemdをPID1で動かす手順をメモしておきます。

というのも、またまたPCパーツを買ったので組みなおしつつOSをクリーンインストールしました。
1年程度でOSをクリーンインストールするので、妙な不具合なんかは出ないのでとても良いのですが、
WSL2のインストールももう一度やることになります。
以前の記事「【WSL2】Ubuntu20.04でPID1をSystemdにする」を参考にしてみるとうまくいかない。
なんでや、と思ってもろもろ調べてみると結構手順が変わっていたので、調べながらインストールしました。
その手順をメモしておきます。

公式はこちらに移ったようです。
arkane-systems/genie: A quick way into a systemd “bottle" for WSL | https://github.com/arkane-systems/genie

READMEにはトップページを全部読んでね、と書いてあるので読んでおきましょう。
ではインストール。
なお、環境はUbuntu20.04です。

インストール手順

まずは、依存しているライブラリから。
Ubuntuなので、公式のDebianの手順を参考にしていきます。

dotnet-runtime-5.0を以下を参考にインストール。
https://docs.microsoft.com/ja-jp/dotnet/core/install/linux-ubuntu

wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
sudo apt-get install -y dotnet-runtime-5.0

続いて本命。
こちらも公式が別で手順を置いてくれていたのでそちらを参考に。
https://arkane-systems.github.io/wsl-transdebian/

sudo apt install apt-transport-https
sudo wget -O /etc/apt/trusted.gpg.d/wsl-transdebian.gpg https://arkane-systems.github.io/wsl-transdebian/apt/wsl-transdebian.gpg
sudo chmod a+r /etc/apt/trusted.gpg.d/wsl-transdebian.gpg

sudo emacs /etc/apt/sources.list.d/wsl-transdebian.list
// Ubuntu 20.04環境なので<distro>をfocalに置換
deb https://arkane-systems.github.io/wsl-transdebian/apt/ focal main
deb-src https://arkane-systems.github.io/wsl-transdebian/apt/ focal main

これにて準備終わり。
本命をインストール。

sudo apt update 
sudo apt install systemd-genie

これにてインストール完了です。
あとはいつも通りgenie -sとかで動かせば終わり。

一応公式使い方を張っておきます。

# 以下からの引用です
# arkane-systems/genie: A quick way into a systemd "bottle" for WSL | https://github.com/arkane-systems/genie

genie:
  Handles transitions to the "bottle" namespace for systemd under WSL.

Usage:
  genie [options] [command]

Options:
  -v, --verbose <VERBOSE>    Display verbose progress messages
  --version                  Display version information

Commands:
  -i, --initialize           Initialize the bottle (if necessary) only.
  -s, --shell                Initialize the bottle (if necessary), and run a shell in it.
  -l, --login                Initialize the bottle (if necessary), and open a logon prompt in it.
  -c, --command <COMMAND>    Initialize the bottle (if necessary), and run the specified command in it.
  -u, --shutdown             Shut down systemd and exit the bottle.
  -r, --is-running           Check whether systemd is running in genie, or not.
  -b, --is-in-bottle         Check whether currently executing within the genie bottle, or not.

まとめ

だいぶ長いことこの辺を詰まったタイミングで追っていますが、今回はどうもちょっと面倒でした。
というのも、元のリポジトリが移動したことでどこにあるのかを見つけるのに時間がかかりましたね。
見つかってよかった。

そして、元のリポジトリのころは「429 Too Many Requests」のエラーで更新できない状況が続いていましたが、Githubに移行したようで問題なくインストールできました。
何度かアップデートをたたいても問題なさそう。
良き良き。
これで心置きなくLinuxっぽい世界で遊べますね。

今回は、ここまで。
おわり

Windows,環境構築

こんにちは、しきゆらです。
今回は、需要がないと思いますが新しくPCパーツを買ったのでこれまでのパーツと差し替えたのでメモしておきます。
ついでに、いくつかベンチマークを回したのでどのくらいスペックが上がったのかもメモしておきます。

Windows,環境構築

こんにちは、しきゆらです。
今回は、タイトル通りWSL上でGUIアプリを動かせるように環境を作っていきます。

作業としては、WSL側はもちろんですがWin側にも準備が必要になっています。
なお、イメージとしてはWin側がサーバとなり、WSL上のアプリとやり取りしてGUIを表示する感じになります。

Mac,Windows,環境構築

こんにちは、しきゆらです。
今回は、MacからWinへSSH接続してWinにあるスクリプトを編集したい場面があったので、タイトル通りVSCodeを使って環境をつくってみたのでメモしておきます。

これまでWinで開発というとPowerShellとかWinでしか動かないもの以外はあまりやってきていませんでした。
最近はWSLやWindows Terminalの登場により便利にはなりつつありますが、メインはどうしてもMacでやってしまいます。
今回も、PowerShellを書く必要があったのでしょうがなくWinでポチポチしていましたが、キーボードやマウスの操作にイライラしたので、Mac側でWinにアクセスできないかと思って調べたら、意外と簡単にできたのでやってみました。

なお、接続先のWinPCにはWSL2が動いていることが前提となります。
環境がない場合は「【Win/WSL】Windowsで開発環境を整える」あたりを参考に作っておいてください。