社用PCのdotfiles管理 / dotfiles-in-company
by
yammerjp
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
社用PCのdotfiles管理 中山 慶祐 (やんまー) / GMO PEPABO inc. 2022.06.10 Pepabo Tech Friday 1
Slide 2
Slide 2 text
2 自己紹介 EC事業部 ECグループ CCXチーム 2021年 新卒入社 中山 慶祐 Nakayama Keisuke Software Design 6月号にdotfilesの記事を寄稿しまし た 寄稿したときの話は社内ポッドキャストでお話しています ● Twitter : @yammerjp
Slide 3
Slide 3 text
3 アジェンダ 1. dotfilesの管理 2. 会社のdotfiles 3. 複数環境をまたぐdotfiles管理 4. おわりに
Slide 4
Slide 4 text
1. dotfilesの管理 4
Slide 5
Slide 5 text
1. dotfilesの管理 5 UnixやLinuxなどにある、アプリケーションごとの設定ファイル群のこと ホームディレクトリに.(ドット)ではじまるものや、~/.config/ 以下などにあるものが多い 例: .bashrc、.zshrc、.vimrc、.gitconfig … dotfilesとは
Slide 6
Slide 6 text
1. dotfilesの管理 6 GitHubへ「dotfiles」というリポジトリを作る - dotfilesがGit管理できる - 履歴管理や共有に役立つ ローカルリポジトリとホームディレクトリ下を シンボリックリンクでつなぐ インストール用のシェルスクリプトを配置する と便利 dotfilesの管理手法の例
Slide 7
Slide 7 text
1. dotfilesの管理 7 インストール用のスクリプトといっても、ひとまず簡単なもので要件を満たせる dotfilesの管理
Slide 8
Slide 8 text
1. dotfilesの管理 8 gitとシンボリックリンク、インストール用のシェルスクリプトを用いた構成には 以下の利点がある - Easy instllation (インストールが容易) - Portability (移植性が高い) - Synchronization (複数コンピュータ間で同期できる ) - Change tracking (変更の追跡ができる) ref: https://missing.csail.mit.edu/2019/dotfiles/ dotfiles管理の利点
Slide 9
Slide 9 text
2. dotfiles管理の促進 9
Slide 10
Slide 10 text
2. dotfiles管理の促進 10 我々はGitに慣れている git add, git commitなどは一日じゅう実行しているのでたいした手間ではないのでは いちいち管理するのは面倒では?
Slide 11
Slide 11 text
2. dotfiles管理の促進 11 とはいえ工夫もしている - 設定ファイルを即座に変更できるように - 設定変更のcommit / pushを忘れないように いちいち管理するのは面倒では?
Slide 12
Slide 12 text
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
Slide 13
Slide 13 text
2. dotfiles管理の促進 13 origin/master との差分があればメッセージを表示する 設定変更のcommit / pushを忘れないように https://github.com/yammerjp/dotfiles/blob/6afb43760368ee9de732a392338da641a6218390/.config/zsh/init.zsh#L32-:L51
Slide 14
Slide 14 text
3. 社用PCのdotfiles管理 14
Slide 15
Slide 15 text
15 みなさん 社用PCのdotfiles管理 どうしてますか?
Slide 16
Slide 16 text
16 yammerは 社用PCのdotfilesも 管理したい
Slide 17
Slide 17 text
3. 社用PCのdotfiles 17 gitとシンボリックリンク、インストール用のシェルスクリプトを用いた構成には 以下の利点がある - Easy instllation (インストールが容易) - Portability (移植性が高い) - Synchronization (複数コンピュータ間で同期できる ) - Change tracking (変更の追跡ができる) ref: https://missing.csail.mit.edu/2019/dotfiles/ (再掲) dotfiles管理の利点
Slide 18
Slide 18 text
3. 社用PCのdotfiles 18 おうちのPCと同じ設定が使える 設定を過去に戻せる (GHESと同期されており) よさげな設定はシュッと共有できる PCの乗り換えが容易 (一定サイクルでやってくるはず) 社用PCの dotfiles管理の利点
Slide 19
Slide 19 text
4. 公開範囲を制御 19
Slide 20
Slide 20 text
4. 公開範囲の制御 20 社用PCのdotfilesには公開できないものも含まれることがある GitHub.comの公開リポジトリにすべてを置くのは難しい - 公開できないものはファイルを分割する - 設定ファイル内で他ファイルを読み込む 公開範囲を変える
Slide 21
Slide 21 text
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
Slide 22
Slide 22 text
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リポジトリ
Slide 23
Slide 23 text
4. 公開範囲の制御 23 - 環境ごとに特有の設定を切り出した dotfilesのモジュール (ディレクトリ) を用意 - 複数のモジュールを任意の順番で重ね合わせ、好みの設定を適用できるしくみ 過去の運用例: layeredなdotfiles https://memo.yammer.jp/posts/layered-dotfiles
Slide 24
Slide 24 text
4. 公開範囲の制御 24 - 環境ごとに特有の設定を切り出した dotfilesのモジュール (ディレクトリ) を用意 - 複数のモジュールを任意の順番で重ね合わせ、好みの設定を適用できるしくみ - やりたいことに対して複雑過ぎた - ファイルが分割されすぎていて一覧性が悪い - 設定を書き換えるときにどこに書くかに脳みそを使う - 実際に適用された設定を確認するには、 (頭で重ね合わせを想像するか ) 適用されたPCの設定 を見に行く必要がある - GitHubのWebページを眺めてUbuntuだったらどんな設定してたっけ?というのをぱっと見れない) - 外出先でふとスマホから見たくなるときありませんか? 過去の運用例: layeredなdotfiles
Slide 25
Slide 25 text
4. おわりに 25
Slide 26
Slide 26 text
26 1. セクションタイトル dotfilesを管理するのは楽しい
Slide 27
Slide 27 text
まだまだ話題は尽きない • 複数環境での適用 ← 今日話したこと • Shell起動の高速化 • 便利設定, 便利エイリアス • dotfiles管理ツールの話 (OSS、自作、etc…) • 秘匿情報の扱い • macOSのProperty list、IMEの設定、GUIアプリケーションの設定、etc… • ターミナル何使ってる? • エディタ何使ってる?プラグインは? • ターミナルマルチプレクサの話 4. おわりに 27 27
Slide 28
Slide 28 text
28 みなさん 社用PCのdotfiles管理 どうしてますか?
Slide 29
Slide 29 text
29 みなさん 開発環境 どうしてますか?