tech_note

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

considerations_regarding_the_development_environment.md (5964B)


      1 ---
      2 title: 開発環境に関する考察
      3 tags:
      4 - ssh
      5 - devcontainer
      6 - proxmox
      7 - zed
      8 private: false
      9 updated_at: 2026-02-17 21:30
     10 id: null
     11 organization_url_name: null
     12 slide: false
     13 ---
     14 # 想定読者
     15 - 他の人の開発環境とその背後にある構想を覗いてみたい人
     16 
     17 # たどり着いた先
     18 
     19 | 項目名 | 利用ソフト | 主な用途 |
     20 | - | - | - |
     21 | メイン機OS | Windows | 開発,制作,ゲーム,動画視聴等 |
     22 | サーバーOS | Proxmox | VMの払い出し |
     23 | 開発VMのOS | Debian |  |
     24 | エディター | Zed |  |
     25 | サブエディター | Helix | 試用中 |
     26 
     27 # Windowsへの不満(TL;DR)
     28 
     29 Windowsは私の技術スタックにおける開発に不利なものでした.
     30 C#との相性は素晴らしいのですが,RustやNode.js,Wranglerなどとの相性が悪かったのです.
     31 具体的に言うと,Rustはリンカーの非存在やCのコンパイルが絡むようなクレートを使用するとllvmの非存在をなじられたり,Wranglerに関しては,Windowsのファイル・システムだと上手く動作しないというログを出して,停止し,WSLに切り替えても,Linuxネイティブでないとかでデプロイが通らないことがありました.Element-webのコンパイルが通らなかったりもしました.
     32 また,Windowsのパッケージマネージャーは非常にゴミです.そもそもWindowsの中枢の更新は設定からでないとできず,大抵月に1度配布される月例アップデートは何等か不具合があることがしばしば.
     33 Wingetを使おうにも,一つのDLがこけるとそこで停止して他のアプリの更新確認等すらできない.[アプリをインストールしている途中に別のアプリをダウンロードしよう!みたいなissue](https://github.com/microsoft/winget-cli/issues/225)も2020年5月20日に立てられて以来,一向に更新される予感がしません.
     34 かと言ってチョコやスコープは専用フォルダにインストールをしてしまうので,探す手間が増えて面倒.
     35 とにかくWindows環境に対する不信感と不満は,私の中で日に日に大きくなってきました.
     36 
     37 しかし,ここでとんでもない出来事が起こりました.
     38 Windowsでしか動作しないゲームがあったので,Linuxとのデュアルブートにしようと思い,SSDを買おうかなと探していたところ,買おうと目をつけていたクルーシャルby micronのブランドが終了してしまったのです.
     39 そして,OpenAI社のサム・アルトマンによる韓国半導体チップの買い占めと,その市場リアクションによる,半導体製品全体の価格高騰.もっと早めに動いていたら,1TBのNVMeのSSDが1万円台前半で変えていたのに.そう思う頃には遅かったです.
     40 
     41 ほんと,OpenAIって余計なことしかしないですよね.ChatGPTで,未だ実用でないAIをさも万能なツールのように発表して市場を過剰に刺激したり,robot.txtを読まずにサイトをクロールしまくって学習に使ったり,半導体チップを買い占めたり,APIの仕様をコロコロ変えまくったり.
     42 
     43 そんなこんなで,私はデュアルブート前までの暫定的な,Windowsよりもマシな開発環境を構築することになりました.
     44 
     45 # DevContainerについて
     46 
     47 (私の周りで)数多くの開発者が用いているのが,このDevContainerです.
     48 今回の開発環境構築で実際に試しました.
     49 結果,私は敗北しました.
     50 (Rustを書いていることからも察されるかもしれませんが)私はできるだけフットプリントを下げたいと思っています.なので,Docker Desktopを避けようとしました.
     51 しかし,npmモジュールであるdevcontainarはそれを許してはくれませんでした.dockerをpodmanのエイリアスにしたりしたんですけどね.
     52 また,Zedが提案してくれるdevcontainerのテンプレートのイメージが起動しませんでした.
     53 /workingが存在しないって言われます.docker-composeなら書き方が分かるのですが,devcontainer.jsonの初心者である私はこの時点で躓いてしまいました.
     54 
     55 # ssh for Zed
     56 
     57 Zedにはリモート接続でプログラミングをする機能が備わっています.
     58 非常に便利ですね.私はdebianのLXCをProxmox上に立て,そこに必要なものをインストールしていって,環境をつくりました.
     59 多分LXCのテンプレはProxmoxなりのミニマルインストールなので,ここに書いたものだけをインストールすれば完全に動くという保証はできかねますので,ご了承ください.
     60 ```
     61 doas vim curl git netcat-openbsd 
     62 ```
     63 [doas](https://man.openbsd.org/doas.1)はOpenBSD版のsudoみたいなものだと思ってください.sudoよりも軽量でコンフィグの書き方も簡単です.
     64 ```
     65 # /etc/doas.conf
     66 permit user as root
     67 ```
     68 visudoみたいなチェックを失敗すると設定が完了できないという機能はないです.`su - user`してから`doas`するだけなのですが,忘れてrootユーザーを無効化してしまうと詰んでしまうことがあるので注意ですね.まあ,rootでrootのログインを無効化するなんてしませんよね?
     69 
     70 # 評価
     71 
     72 今のところ,コンパイルが遅いことを除いて非常に快適です.
     73 ZedのレンダリングがWindows側で動作しているので,エディター部分は快適ですし,element-webのコンパイルはむしろ今の方が早かったりします.~~あれはwindowsが遅いと言うより不具合で止まっていたが正解かもしれない~~