Upgrade to Pro — share decks privately, control downloads, hide ads and more …

社用PCのdotfiles管理 / dotfiles-in-company

社用PCのdotfiles管理 / dotfiles-in-company

みなさん社用PCのdotfiles管理どうしてますか?
私は社用PCのdotfilesも管理したいと考えていて、公開範囲を制御できるようにファイル分割をしたうえで、複数リポジトリにまたがってdotfilesを管理しています。
(社内のLTとして話したスライドを公開しています。

8c653f1257636312a8e88612ccb27718?s=128

yammerjp

June 17, 2022
Tweet

More Decks by yammerjp

Other Decks in Programming

Transcript

  1. 社用PCのdotfiles管理 中山 慶祐 (やんまー) / GMO PEPABO inc. 2022.06.10 Pepabo

    Tech Friday 1
  2. 2 自己紹介 EC事業部 ECグループ CCXチーム 2021年 新卒入社 中山 慶祐 Nakayama

    Keisuke Software Design 6月号にdotfilesの記事を寄稿しまし た 寄稿したときの話は社内ポッドキャストでお話しています • Twitter : @yammerjp
  3. 3 アジェンダ 1. dotfilesの管理 2. 会社のdotfiles 3. 複数環境をまたぐdotfiles管理 4. おわりに

  4. 1. dotfilesの管理 4

  5. 1. dotfilesの管理 5 UnixやLinuxなどにある、アプリケーションごとの設定ファイル群のこと ホームディレクトリに.(ドット)ではじまるものや、~/.config/ 以下などにあるものが多い 例: .bashrc、.zshrc、.vimrc、.gitconfig … dotfilesとは

  6. 1. dotfilesの管理 6 GitHubへ「dotfiles」というリポジトリを作る - dotfilesがGit管理できる - 履歴管理や共有に役立つ ローカルリポジトリとホームディレクトリ下を シンボリックリンクでつなぐ

    インストール用のシェルスクリプトを配置する と便利 dotfilesの管理手法の例
  7. 1. dotfilesの管理 7 インストール用のスクリプトといっても、ひとまず簡単なもので要件を満たせる dotfilesの管理

  8. 1. dotfilesの管理 8 gitとシンボリックリンク、インストール用のシェルスクリプトを用いた構成には 以下の利点がある - Easy instllation (インストールが容易) -

    Portability (移植性が高い) - Synchronization (複数コンピュータ間で同期できる ) - Change tracking (変更の追跡ができる) ref: https://missing.csail.mit.edu/2019/dotfiles/ dotfiles管理の利点
  9. 2. dotfiles管理の促進 9

  10. 2. dotfiles管理の促進 10 我々はGitに慣れている git add, git commitなどは一日じゅう実行しているのでたいした手間ではないのでは いちいち管理するのは面倒では?

  11. 2. dotfiles管理の促進 11 とはいえ工夫もしている - 設定ファイルを即座に変更できるように - 設定変更のcommit / pushを忘れないように

    いちいち管理するのは面倒では?
  12. 2. dotfiles管理の促進 12 設定ファイルをエディタで開くエイリアスを貼っておく 例えば Pro Gitを読んでいて git diff サブコマンドの

    --ignore-all-space オプションを 知ったとき、覚えられないので gitの設定にエイリアスを貼っておく - エイリアスを使ってもいいし - メモ代わりにもなるし - 設定を書いているときにオプションが記憶に残る 設定ファイルを即座に変更できるように: git-config-edit https://github.com/yammerjp/dotfiles/blob/322dec5d06b77839a9467301ae3a93d1bc7a193c/.config/zsh/git.zsh#L5 https://github.com/yammerjp/dotfiles/blob/211e71edd5ceb9a3602d3af217c094574ac2d8f8/.config/git/config#L22
  13. 2. dotfiles管理の促進 13 origin/master との差分があればメッセージを表示する 設定変更のcommit / pushを忘れないように https://github.com/yammerjp/dotfiles/blob/6afb43760368ee9de732a392338da641a6218390/.config/zsh/init.zsh#L32-:L51

  14. 3. 社用PCのdotfiles管理 14

  15. 15 みなさん 社用PCのdotfiles管理 どうしてますか?

  16. 16 yammerは 社用PCのdotfilesも 管理したい

  17. 3. 社用PCのdotfiles 17 gitとシンボリックリンク、インストール用のシェルスクリプトを用いた構成には 以下の利点がある - Easy instllation (インストールが容易) -

    Portability (移植性が高い) - Synchronization (複数コンピュータ間で同期できる ) - Change tracking (変更の追跡ができる) ref: https://missing.csail.mit.edu/2019/dotfiles/ (再掲) dotfiles管理の利点
  18. 3. 社用PCのdotfiles 18 おうちのPCと同じ設定が使える 設定を過去に戻せる (GHESと同期されており) よさげな設定はシュッと共有できる PCの乗り換えが容易 (一定サイクルでやってくるはず) 社用PCの

    dotfiles管理の利点
  19. 4. 公開範囲を制御 19

  20. 4. 公開範囲の制御 20 社用PCのdotfilesには公開できないものも含まれることがある GitHub.comの公開リポジトリにすべてを置くのは難しい - 公開できないものはファイルを分割する - 設定ファイル内で他ファイルを読み込む 公開範囲を変える

  21. 4. 公開範囲の制御 21 - .zshrc - .gitconfig - .npmrc -

    お気に入り設定を追記する Shell Scriptを用意している - 公開できない設定が含まれているので直接管理していない 公開範囲を変える https://github.com/yammerjp/dotfiles/blob/322dec5d06b77839a9467301ae3a93d1bc7a193c/.config/git/config#L5-L6 https://github.com/yammerjp/dotfiles/blob/322dec5d06b77839a9467301ae3a93d1bc7a193c/.zshrc#L7-L9
  22. 4. 公開範囲の制御 22 - GitHub.com上のPublicリポジトリ - https://github.com/yammerjp/dotfiles - なるべくここに寄せる -

    下記のリポジトリで管理しているファイルが存在したら読み込む - GHES上のPublicリポジトリ - 会社の設定を記載 - ~/.zshrc.company や ~/.config/git/config-company 等 - GitHub.com上のPrivateリポジトリ - 公開したくないもの - 個人のPCの .ssh/config 等 複数の公開範囲 → 複数のdotfilesリポジトリ
  23. 4. 公開範囲の制御 23 - 環境ごとに特有の設定を切り出した dotfilesのモジュール (ディレクトリ) を用意 - 複数のモジュールを任意の順番で重ね合わせ、好みの設定を適用できるしくみ

    過去の運用例: layeredなdotfiles https://memo.yammer.jp/posts/layered-dotfiles
  24. 4. 公開範囲の制御 24 - 環境ごとに特有の設定を切り出した dotfilesのモジュール (ディレクトリ) を用意 - 複数のモジュールを任意の順番で重ね合わせ、好みの設定を適用できるしくみ

    - やりたいことに対して複雑過ぎた - ファイルが分割されすぎていて一覧性が悪い - 設定を書き換えるときにどこに書くかに脳みそを使う - 実際に適用された設定を確認するには、 (頭で重ね合わせを想像するか ) 適用されたPCの設定 を見に行く必要がある - GitHubのWebページを眺めてUbuntuだったらどんな設定してたっけ?というのをぱっと見れない) - 外出先でふとスマホから見たくなるときありませんか? 過去の運用例: layeredなdotfiles
  25. 4. おわりに 25

  26. 26 1. セクションタイトル dotfilesを管理するのは楽しい

  27. まだまだ話題は尽きない • 複数環境での適用 ← 今日話したこと • Shell起動の高速化 • 便利設定, 便利エイリアス

    • dotfiles管理ツールの話 (OSS、自作、etc…) • 秘匿情報の扱い • macOSのProperty list、IMEの設定、GUIアプリケーションの設定、etc… • ターミナル何使ってる? • エディタ何使ってる?プラグインは? • ターミナルマルチプレクサの話 4. おわりに 27 27
  28. 28 みなさん 社用PCのdotfiles管理 どうしてますか?

  29. 29 みなさん 開発環境 どうしてますか?