Git for windowsのgit bashにrsyncを入れる
はじめに
Pelican から Hugo への移行検討 で、記事が書けそうなことが分かりました。
次はサーバーにファイルを置くためにrsyncを使おうと思ったところ、Windowsでは少し手間だったので書き残したものです。
前準備: zstdの解凍用パッケージの導入
rsyncのパッケージを解凍するためにztsdを導入する必要があります。
探したところzstd対応版の7-Zipがwingetで簡単に入りそうだったのでこれを使います。(右クリック拡張が増えます)
|
|
rsyncと周辺パッケージの導入
rsyncと必要ライブラリの以下3点を https://repo.msys2.org/msys/x86_64/ からダウンロードします。
rsync-3.2.6-1-x86_64.pkg.tar.zst
libzstd-1.5.2-2-x86_64.pkg.tar.zst
libxxhash-0.8.1-1-x86_64.pkg.tar.zst
それぞれ解凍して、出てきた bin
の以下のファイルを C:\Program Files\Git\usr\bin
にコピーします。
rsync.exe
msys-zstd-1.dll
msys-xxhash-0.dll
ここまででrsyncコマンドが使えるようになります。
|
|
git bashのssh周りの調整
git bashを使うと C:\Users\${USER}\.ssh\config
を読んでくれるのですが ~
の展開に失敗してsshがコケる場合があります。
|
|
そこで、git bash用の ssh_config
を作成しておきます。
|
|
ssh単体で使用する場合は ssh -F ssh_config
、rsyncで読み込む場合は -e 'ssh -F ssh_config'
のように書くことが出来ます。
rsyncコマンドオプションの調整
Pelicanを使っていた時は適当に -avc
オプションを使っていたのですが、今回のケースだと以下のように親ディレクトリのパーミッションも変更しようとしてエラーが出ていたので外しておきます。
(特に直さなくてもアップロード自体は可能なので無視しても良い)
|
|
最終的にはこんな感じになりました。
|
|
終わり
これでWindowsでMarkdownを書いて見た目の確認をして、ファイルをワンタッチアップロードするコマンドの準備が出来ました。
hugo + rsync を順番に実行するだけのスクリプトを書いて完了です。