0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

オレオレPC交換ログ

Last updated at Posted at 2022-09-01

この記事について

入社して4年目にして、3度PC交換をしました。
この記事では、再度交換作業が発生しないことを祈りつつ万が一またPC交換が発生したときのために、PCのデータやソフトウェア、ライセンス等の移行で行った作業を雑多にメモしていきます。

…… という書き出しで書いた社内向け記事を、せっかくなので外部公開できる範囲で公開してみます。

whoami

Macbookにてスマートフォンゲームのサーバーエンジニア的な仕事をしており、Google Cloudをよく触ります。
たまにUnity Editorを使って動作確認することもあります。

準備

PCリプレイスを社内IT室に依頼する

(Qiita版記事では割愛します)

インストール済みソフトウェアの確認

現在Macにインストールしてあるソフトウェアを書き出しておく

# 普通のアプリケーション
ls -l /Applications/
# Homebrewで入れたツール類
brew bundle dump
# pipでグローバルに入れたツール類
pip freeze
# npmでグローバルに入れたツール類
npm list -g  # 大したものが入ってなかったので何も移行しなかった

各種dotfile等のバックアップ

Mackupが便利

  • https://github.com/lra/mackup
  • 各種設定ファイル( .bash_profile とか)をクラウド(Google Drive等)にアップロードして、任意のMacにリストアしてくれる。
  • .bigqueryrc などのMackup側で対応していないdotfileや、 .ssh/ 等のセキュリティ上意図的に対応していないファイルもあるので、注意が必要(後述)
# Install Mackup
brew install mackup

vi ~/.mackup.cfg 
# ↓を見ながら設定ファイルを書く
# https://github.com/lra/mackup/blob/master/doc/README.md

# Launch it and back up your files
mackup backup

MS Officeのライセンス

https://portal.office.com/account/#installs → デバイスの部分にあるMicrosoft Officeのインストール済み端末一覧から、旧PCを削除する必要がある

31232b09-01ba-4033-bbae-9e19a6493044-1920x1327r.png

移行

Applicationのインストール

    1. Mac App Storeからインストールしたものは、App Storeが購入済みアプリを覚えてくれているので、購入済みアプリリストから再インストールする。

7bd38f0f-21d3-40ea-b6a0-ad51810cf66b-1920x1243r.png

Homebrew

#インストール済みソフトウェアの確認で出したHomebrewのBrewfileを用いて、以下を実行する
https://brew.sh/index_ja

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew bundle

mackup

Homebrewでmackupはインストール済み

vi ~/.mackup.cfg 
# ↓を見ながら設定ファイルを書く
# https://github.com/lra/mackup/blob/master/doc/README.md

mackup restore

starship

brewや.zprofileを移行後、 ターミナル上でNerdFontを指定する必要がある と思っていたのですが、移行後何もしなくてもNerdFont(Inconsolata Regular Nerd Font)が指定されていたので何もする必要がなかった。

  • mackupが旧PCから設定&フォント本体を移行してくれたっぽい?

asdf

# 公式プラグインを雑に入れる
cut -d' ' -f1 .tool-versions | xargs -I{} asdf plugin add {}
# 公式でないプラグインも入れる↓
asdf plugin-add docker-compose https://github.com/virtualstaticvoid/asdf-docker-compose.git

pip

Homebrewと同様に

pip install -r pip.txt

MacVim

MacVim-KaoriYa ( https://github.com/splhack/macvim-kaoriya )は更新が止まっててアレなので、MacVim + vim-kaoriyaをインストールする。

https://qiita.com/watagashi/items/8f3c01cb37ecf9eb5ce0 を参考にする。

Vundle

( .vimrc はmackupでリストア済み)

git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
vim +PluginInstall +qall

gcloud

(~/.config/gcloud/ はmackupでリストア済み) リストアされてなかった。
移行が必要なのは ~/.config/gcloud/configurations フォルダ以下のファイルだけのはず(多分)なので、これだけ手で持ってくる。

asdf install gcloud latest

cd ~/.config/gcloud/configurations/ sftp 12345678n.local
> cd .config/gcloud/configurations/
> get *

# configgurationsが見えるか確認
gcloud config configurations list

# ログイン
gcloud auth login

# terraform 等で使う認証鍵の取得
gcloud auth application-default login

# gsutil syncで必要
pip install -U crcmod

# なんだかんだ必要
gcloud components install beta

# k8s(cloud composerで必要になった)
gcloud components install kubectl

SSH鍵

SSH鍵はそっくりそのまま新PCに持ってくることにする

Macのリモートログイン設定をON(自分のみ)にして、新旧PCを同一ネットワーク上に置いて、旧PCで以下を実行する

sftp 12345678.local # 新PCのhost
> cd ~/.ssh/ 
> lcd ~/.ssh/
> put *

slack-ruby-client

業務上 https://github.com/slack-ruby/slack-ruby-client を使っているので認証を通す

$ slack init
Enter Slack API token: [ここにAPIトークンを書く]

Unity

Unity Hubのインストール
https://unity3d.com/jp/get-unity/download/archive

その後、↓から必要なUnityのバージョンをUnity Hubのリンクからインストールすれば良い。
https://unity3d.com/jp/get-unity/download/archive

なお、ライセンスは1ライセンス1マシンのため、↓の下の方にある"Activation"の項目で、旧PCのアクティベーションを外し、新PCでアクティベーションコードを入力する必要がある。
https://id.unity.com/en/subscriptions

0e1ff8d0-9632-4731-999e-10d843707634-1920x877r.png

Slack

https://slack.com/intl/ja-jp/help/articles/212681477 の、「メールでサインインする」の手順でログインすると、メールアドレスに紐づくアカウントにログインできて便利。

その他のファイル

例として、 git フォルダを移す場合

  • git フォルダをzipアーカイブ化
    • ファイル数に依存して転送時間が増えるので、フォルダをそのまま転送するのではなく、アーカイブ化して転送ファイル数を減らすのをオススメします
  • 新PCのファイル共有を有効にする
  • Finderを使ってファイルを転送
    • 社内ネットワークだと3GBを5分くらいで転送できる
  • アーカイブを解凍

Jetbrainsのライセンス

  • Intellij IDEAを起動時にJetbrains Accountを聞かれるのでログインすればライセンスが通る
  • 旧PCのライセンス返却とかは要らないらしい
    • 同時に1PCでしか起動できない制約があるので同一ユーザー複数マシンでのライセンス返却の概念がないっぽい…?

移行し忘れたdotfileがないか確認

Mackupでほとんどのdotfileは移行できているはずだが、漏れているものを探す。

  • 実際 .bigqueryrcや.pg_service.conf、.gitignore_global, .sqliterc, .bazelrcが移行できていなかった

Macのリモートログイン設定をON(自分のみ)にして、新旧PCを同一ネットワーク上に置いて、以下を実行する

# 移行先でホームディレクトリのpathが全く同じであることを仮定している
diff <(ssh 12345678.local ls -a ~) <(ls -a ~)  

# ~/Library/Application\ Support/ 下のファイルなど、手で書いた記憶がない(アプリが勝手に書いた)設定ファイル等は最悪新PCで再度設定すればいいかの気持ち

ファイル拡張子のアプリケーション紐付け

前回のPC移行では、ファイル拡張子のアプリケーション紐付けが新Macに移行できておらず、全部吹き飛んでしまった。
ファイル拡張子の対応関係は ~/Library/Preferences/com.apple.LaunchServices/com.apple.launchservices.secure.plist というファイルに保存してあるので、これを忘れずに移行する。
com.apple.launchservices.secure.plist を旧PCのもので上書きしたあと、 PC再起動することで 、ファイル拡張子とアプリの対応が移行できた。

  • 新PCのもとの com.apple.launchservices.secure.plist は、バックアップを取っておいたほうが良さそう。

Macの辞書アプリの辞書ソース

手軽に英語の意味を調べるとき等に、3本指で辞書を起動するのが便利です。

ec79668c-458d-4714-8050-9cfecb946b45-1920x2242r.png

日本語設定のMacでは標準で以下の4つの辞書が入っていますが、この設定はApple ID等では保存されず、端末を変えるごとに毎回設定変更しないといけないようです。

  • 英英辞典とか英中時点とか使う人は毎回設定しないといけない。

1ada42a3-04d6-4f34-9852-96bedd27fbc0-1920x1901r.png

移行方法を調べようかと思ったが、手で移行したほうが楽そうなため、PC交換のたびに手動で設定している。

余談: PC交換の原因

  • 1回目: バッテリー膨張&バタフライキーの爪折れ&リモートワーク直前だったため早めに交換
  • 2回目: 特定のキーでチャタリング(2重入力)と無反応が10回に1回くらい発生した&導入から時間の経過した備品だったため交換
  • 3回目: バッテリー不良(2時間ほどで放電する)、高負荷時に電源ケーブルをつけていても再起動することがある、同一スペックのMacbook Intel PCと比べてビルド速度が2〜3倍くらい遅い(ため、しょっちゅうタイムアウトしてテストが通らない)
0
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?