git-svnのエラー"Can't locate SVN/Core.pm in @INC"を解決する

3 min読了の目安(約3300字TECH技術記事

この記事はこちらのQiita記事から筆者本人が転載したものです。Zennを使ってるような人にSVNな環境で働いてる人いるわけないよね(T_T)

はじめに この記事の目的

Mac OSX環境でgit-svnを打った際に出るエラー“Can't locate SVN/Core.pm in @￰INC ”の解決方法を紹介します。

エラー内容

terminal上でgit svnと打つと下記のようなエラーが出た。(クッソ長い)

Can't locate SVN/Core.pm in @INC (you may need to install the SVN::Core module) (@INC contains: /usr/local/Cellar/git/2.27.0/share/perl5 /Applications/Xcode.app/Contents/Developer/Library/Perl/5.18/darwin-thread-multi-2level /Library/Developer/CommandLineTools/Library/Perl/5.18/darwin-thread-multi-2level /Library/Perl/5.18/darwin-thread-multi-2level /Library/Perl/5.18 /Network/Library/Perl/5.18/darwin-thread-multi-2level /Network/Library/Perl/5.18 /Library/Perl/Updates/5.18.4 /System/Library/Perl/5.18/darwin-thread-multi-2level /System/Library/Perl/5.18 /System/Library/Perl/Extras/5.18/darwin-thread-multi-2level /System/Library/Perl/Extras/5.18 .) at /usr/local/Cellar/git/2.27.0/share/perl5/Git/SVN/Utils.pm line 6.
BEGIN failed--compilation aborted at/usr/local/Cellar/git/2.27.0/share/perl5/Git/SVN/Utils.pm line 6.
Compilation failed in require at /usr/local/Cellar/git/2.27.0/share/perl5/Git/SVN.pm line 25.
BEGIN failed--compilation aborted at /usr/local/Cellar/git/2.27.0/share/perl5/Git/SVN.pm line 32.
Compilation failed in require at /usr/local/Cellar/git/2.27.0/libexec/git-core/git-svn line 22.
BEGIN failed--compilation aborted at /usr/local/Cellar/git/2.27.0/libexec/git-core/git-svn line 22. 

解決策(前半)

参考1:git svn fails: Can't locate SVN/Core.pm
参考2:On OSX using sourcetree / git-svn getting “Can't locate SVN/Core.pm in @INC ”

まず下記を実行。ちなみにcpanとはComprehensive Perl Archive Networkのこと。つまりPerlのライブラリ・モジュールの集積のこと。SVN::COREはCore module of the subversion perl bindingsで要はPerl から Subversion をいじるためのモジュール。

//use the "sudo" method when prompted
$ sudo cpan SVN::CORE

次にbrewでperlをインストール。

$ brew install perl
-- ダウンロード済なら念の為再インストールを
$ brew reinstall perl

最後に下記でシンボリックリンクを作成してください。
※/Applications/Xcode.app/Contents/Developer/Library/Perl というディレクトリが
そもそも存在していない人はこれを飛ばして解説後半に飛んでください。

$ sudo mkdir /Library/Perl/5.18/auto
$ sudo ln -s /Applications/Xcode.app/Contents/Developer/Library/Perl/5.18/darwin-thread-multi2level/SVN /Library/Perl/5.18/darwin-thread-multi-2level
$ sudo ln -s /Applications/Xcode.app/Contents/Developer/Library/Perl/5.18/darwin-thread-multi2level/auto/SVN /Library/Perl/5.18/auto/

これでメデタシメデタシ。。。とならない人(自分もそうだった)は下記以降も試して見てください。

##解決策(後半)
参考3:git-svn Can't locate SVN/Core.pm after fresh installation of macOS Catalina 10.15.4

上記の前半でエラーが解決しなかった場合はSVN::Coreを内包していないMacに最初から付属のperlを使っている可能性があります。
brew経由でインストールしたperlを使うために下記を実行していきましょう。

//私の場合下記の環境にgit-svnファイルがありました.(brewの設定を変に弄ってなければここになると思う)
$ cd /usr/local/opt/git/libexec/git-core
//お好きなエディタでgit-svnを開いてください
$ vim git-svn

git-svnを開いて一行目の***#!/usr/bin/perl***を #!/usr/local/bin/perlに書き換えてください。

以上でgit svnコマンドが使用出来るようになっているはずです。
何かあればコメントでご指摘お願いします!