前回に引き続き、超ニッチな不具合やトラブルを解消した記録です。
今年(2024年)の春に仕事で使っているMacBookを買い替えました。制作環境を整備するにあたって、各種ライブラリをインストールしたりパスを通したり・・・などの作業は数年に1回しかやらないので毎回ググっています。毎回ズバリの情報がヒットせず苦労する、という作業って意外とあるので、今回こそはブログ記事にしておきます。
Git-ftp をMacにそのままインストールするだけだとSFTPが使えない
私、もう数年来Git-ftpというツールを愛用しています。最近はアップデートされていない枯れたツールではあるのですが、権限の少ない共用レンタルサーバーを利用するスモールビジネスのサイト制作が大部分を占める私にとっては、いまのところ代替のツールがあまりなく大切な相棒になっています。
Git-ftpのインストールは、Macの場合だとHomebrewからできます。
brew install git-ftp
これだけでいけました。
一般的なレンタルサーバーだとプロトコルがFTP, FTP over SSL(FTPS) のいずれかになるので、ただインストールするだけで問題なく使えるはずです。しかし、クラウドサーバーなどでFTPは許可せず、SSHのみ接続可能にしている環境がいくつかあり、その際はプロトコルにSFTPを使うことになります。
ところが、Mac OSではそのままだとSFTPが使えません。SFTP接続でgit-ftpコマンドを打つと、以下のようなエラーメッセージが出ます。
fatal: Protocol 'sftp' not supported by curl, exiting...
これはMacに入っているcurlの仕様によるものだと、GitHubリポジトリのReadmeに記載があります。
The default version of curl coming with macOS does not support SFTP (
Protocol sftp not supported or disabled in libcurl
). So if you require SFTP support you can compile curl with SFTP support on your own. First download a curl source package from the website and unpack the archive.
引用元:git-ftp/INSTALL.md at master · git-ftp/git-ftp
対処法もReadmeを読めば書いてあるのですが、イマイチわかりにくい。しかも日本語の情報が欲しくてもヒットしないといういつものやつです。
SFTPを使えるようにした手順
まず、ターミナルで
which curl
を打ちます。すると、
/usr/bin/curl
と出てきました。これは、Mac初期のcurlを参照しているということです。
実はHomebrewにもcurlがあるので、そっちを使うようにすればよいみたいです。
そこで次に
brew info curl
と打ちます。すると、ずらずらっと何行もの情報が出てきますが、この中に
If you need to have curl first in your PATH, run:
echo 'export PATH="/opt/homebrew/opt/curl/bin:$PATH"' >> ~/.zshrc
という情報があったので、そのままコピペして
echo 'export PATH="/opt/homebrew/opt/curl/bin:$PATH"' >> ~/.zshrc
を実行。再度
which curl
を打つと、今度は
/opt/homebrew/opt/curl/bin/curl
と出てきました。これでHomebrewの方のcurlを使うようになり、SFTPでのgit-ftpも無事できるようになりました。
以上、次回Macを買い替えた際の数年後の自分に向けて書きました。
2024年の自分からは以上です。