Gitをソースコードからインストールしていてもgit-svnをインストール
Git,Vim,GNU Screenだけはソースコードからインストールしてcheckinstallでパッケージとしてインストールしているのですが、
指定したバージョン文字列がダメなのか、関連パッケージをインストールしようとすると「gitパッケージをアップグレードしますか?」とか聞いてきます。いやいやそれダウングレードだから。
まぁともかくそんな状況でもなんとか動くようにしたのでメモ。
まぁcheckinstallで生成されるパッケージのバージョン指定をちゃんとすればいい話のように思えますが。
環境
Quick Installation
$ sudo apt-get install liberror-perl libsvn-perl
でいけます。
もちろん前提としてGitはソースコードからインストールしている、という前提です。
過程
以下はなぜ上の通りにすればうまくいくのか分からない人のために過程をメモしています。*1
なので手っ取り早く動くようにしたいなら上の「Quick Installation」の項の通りにやればいけます。
まず初めの状態では、「git-svn」と打ってもPATHには存在しないので「command not found」と言われる状態です。
ただ、gitはいくつかのサブコマンドは/usr/bin/git(パスは適当ですが、実行可能ファイルを表していると考えてください)のバイナリに同梱されるようになっています。
なのでgit-svnがPATH上になくても、gitのバイナリがgit-svnの機能を静的に持っているような気がしたので、「git svn」とか打ってみます。
$ git svn Can't locate Error.pm in @INC (@INC contains: ...) at ... BEGIN failed--compilation aborted at ... ...
どうやらgit-svnは同梱されてるようですが、Perlのモジュールが足りない時のエラーが出ました。
なのでモジュールをインストールします。
Debian系では、HogeというPerlモジュールの場合「libhoge-perl」というパッケージ名になっています。
$ sudo apt-get install liberror-perl
もう一回「git svn」と打ってみます。
$ git svn Can't locate SVN/Core.pm in @INC (@INC contains: ...) at ... BEGIN failed--compilation aborted at ... ...
エラー内容が変わりました。
どうやらまだモジュールが足りないようなのでインストールします。
「SVN::Core」というモジュールですが、名前からしてlibsvn-perlが該当パッケージっぽいのでインストールします。
$ sudo apt-get install libsvn-perl
再度「git svn」と入力。
$ git svn git-svn - bidirectional operations between a single Subversion tree and git Usage: git svn <command> [options] [arguments] Available commands:
無事インストールできました。
*1:とかいまさら言わんでも自分はなるべく初心者の方が見ても分かるよう冗長に説明したりしてる訳ですが。でも一貫しない...orz