git-svnインストールからgit svn dcommit完了までの手順

あらすじ

CentOSのインストール時に入れたGitにはgit-svnが入っていない(?)ので、一から入れようとしたが、ネットに繋がっていない環境だと結構依存とかがめんどくさかったのでメモ。

環境

  • CentOS 6.2
  • Git 1.7.1
    • git は入っているが、git svnは実行できない console $ git svn git: 'svn' is not a git command. See 'git --help'.
  • svn 1.6.11 (r934486)
  • ネットにつながっていないぼっち環境

yumとかで入れられると一発っぽいんだけどなー。

手順

まずは、git-svnのrpmをDLしてくる。

インストールしたいPCに持ってきて、rpmコマンド。 perl(SVN::Core) と、 perl(Term:ReadKey) がないと言われる。

# rpm -ivh git-svn-1.7.1-2.el6_0.1.noarch.rpm
警告: git-svn-1.7.1-2.el6_0.1.noarch.rpm: ヘッダ V3 RSA/SHA256 Signature, key ID c105b9de: NOKEY
エラー: 依存性の欠如:
        perl(SVN::Core) は git-svn-1.7.1-2.el6_0.1.noarch に必要とされています
        perl(Term::ReadKey) は git-svn-1.7.1-2.el6_0.1.noarch に必要とされています

perl(SVN::Core)

SVN::Coreは subversion-perl というパッケージから入れられるよう。

subversion-perlをDLしてインストール。

# rpm -ivh subversion-perl-1.6.11-7.el6.i686.rpm
警告: subversion-perl-1.6.11-7.el6.i686.rpm: ヘッダ V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
エラー: 依存性の欠如:
        subversion = 1.6.11-7.el6 は subversion-perl-1.6.11-7.el6.i686 に必要と されています

あれ?Subversion入ってるのに見つけられてない?Subversionを入れ直してみる?

# rpm -ivh subversion-1.6.11-7.el6.i686.rpm
警告: subversion-1.6.11-7.el6.i686.rpm: ヘッダ V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
準備中...                ########################################### [100%]
        ファイル /usr/bin/svnserve (パッケージ subversion-1.6.11-7.el6.i686 から) は、パッケージ subversion-1.6.11-2.el6_1.4.i686 からのファイルと競合しています。
略

やっぱインストール済み…1.6.11-2.el6_1_4…だと…。このrelease番号?ってsvn –versionじゃ確認できないの?

# svn --version
svn, バージョン 1.6.11 (r934486)
   コンパイル日時: Sep 27 2011, 14:59:40

   Copyright (C) 2000-2009 CollabNet.
   Subversion is open source software, see http://subversion.tigris.org/
   This product includes software developed by CollabNet (http://www.Collab.Net/).

   以下のリポジトリアクセス (RA) モジュールが利用できます:

   * ra_neon : Neon を利用して WebDAV (DeltaV) プロトコルでリポジトリにアクセスするモジュール。
     - 'http' スキームを操作します
       - 'https' スキームを操作します
       * ra_svn : svn ネットワークプロトコルを使ってリポジトリにアクセスするモジュール 。
         - Cyrus SASL 認証を併用
   - 'svn' スキームを操作します
   * ra_local : ローカルディスク上のリポジトリにアクセスするモジュール。
     - 'file' スキームを操作します

色々探して、とりあえず1.6.11-2.el6_1_4のsubversion-perlを見つけた。

再チャレンジ。

# rpm -ivh subversion-perl-1.6.11-2.el6_1.4.i686.rpm
警告: subversion-perl-1.6.11-2.el6_1.4.i686.rpm: ヘッダ V4 DSA/SHA1 Signature, key ID 192a7d7d: NOKEY
準備中...                ########################################### [100%]
   1:subversion-perl        ########################################### [100%]

入ったー。で、依存は一個消えた。

# rpm -ivh git-svn-1.7.1-2.el6_0.1.noarch.rpm
警告: git-svn-1.7.1-2.el6_0.1.noarch.rpm: ヘッダ V3 RSA/SHA256 Signature, key ID c105b9de: NOKEY
エラー: 依存性の欠如:
        perl(Term::ReadKey) は git-svn-1.7.1-2.el6_0.1.noarch に必要とされています

perl(Term::ReadKey)

特にバージョンの指定がないんだけど、とりあえず後ろ(el6)は合わせてみた。elってRHELのELなのかな…?

[root@tpc6102 share]# rpm -ivh perl-TermReadKey-2.30-13.el6.i686.rpm
警告: perl-TermReadKey-2.30-13.el6.i686.rpm: ヘッダ V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
準備中...                ########################################### [100%]
   1:perl-TermReadKey       ########################################### [100%]

いった!

で、git-svnも入った!

動作確認

コミットしようとしたらエラーが。

$ git svn dcommit
Committing to svn://xxxxxxx/repo/trunk ...
Authentication realm: <svn://xxxxxxx:3690> xxxxxxxx-...

(gnome-ssh-askpass:20438): Gtk-WARNING **: cannot open display:
Use of uninitialized value $password in substitution (s///) at /usr/libexec/git-core/git-svn line 3979.
error: git-svn died of signal 11

GUIでLinuxをインストールしている場合、 gnome-ssh-askpass を使ってパスワード認証をかますようにパスが通っており、今はtelnetなどでつないでいる(=認証画面出したいのに画面ない)のが問題みたい。

確かにいる。

$ echo $SSH_ASKPASS
/usr/libexec/openssh/gnome-ssh-askpass

これを空にしてやればよい。

$ unset SSH_ASKPASS
$ echo $SSH_ASKPASS

で、dcommit!

$ git svn dcommit
Committing to svn://xxxxxxxx/repo/trunk ...
Authentication realm: <svn://xxxxxxxx:3690> xxxxxxxxxxx.....
Password for 'kk_Ataka':

パスワード認証もOK。

M       memo/test.txt
略

コミットされた!

関連記事(この記事の初版より古い記事はリンクがグレーで表示されます)

  1. 2013/09/05 [Git] [Subversion] Subversionのproxy設定でいつもハマるやつ
  2. 2012/08/29 [Git] Git add, commitをした時、中でどんな事が起こっているのか
  3. 2012/04/24 [Git] [Windows] Pro Gitと入門Gitと入門gitと実用GitでGitの復習 無名ブランチ(detached HEAD)からの復活編
  4. 2012/04/23 [Git] [Windows] Pro Gitと入門Gitと入門gitと実用GitとGit道場#1でGitの復習 rebase編
  5. 2012/04/22 [Git] [イベント] Git道場#1に参加しました と、pullとpull --rebase備忘録 #gitdojo
  6. 2012/04/17 [Solaris] [Subversion] Subversionで2ヶ所のリポジトリの同期を取るメモ
  7. 2012/04/10 [Git] [Windows] Pro Gitと入門Gitと入門gitでGitの復習 HEADのキャレットとかチルダとか補講編
  8. 2012/04/02 [Subversion] Subversionでファイルを分けてコミットする
  9. 2012/03/15 [Git] [Windows] Pro Gitと入門gitでGitの復習 マージ編
  10. 2012/03/11 [Git] [Windows] Pro Gitと入門gitでGitの復習 ブランチ編
  11. 2012/03/05 [Git] [Windows] Pro Gitと入門gitでGitの復習 基本操作編
  12. 2012/02/23 [Jenkins] [Git] GitプロジェクトをコミットしたタイミングでJenkinsにビルドをしてもらいたい!
  13. 2012/01/15 [Solaris] [Subversion] Subversionのリポジトリをサーバ間でまるごと移動する
  14. 2013/12/14 [Git] Gitの.git/objectsの中身を追ってみる
  15. 2013/09/07 [Ruby] [Git] [Jekyll] Jekyllバージョンアップの際に思いのほか手こずった話 てっく煮さん製プラグインの更新に追従したい編