2012/10/15

ssh:// で指定したリモートリポジトリに MercurialEclipse で push できない時にチェックする点

Eclipse に MercurialEclipse を入れて Mercurial を使っている状態で、リモートのリポジトリに push ができない状況になっていた時のチェック点。

・とりあえずチェックするポイント
「 ssh で warnings 出てない? 」


以下詳細。

・ 環境
  • Mac OS X Mountain Lion
  • Eclipse JUNO
  • Mercurial 2.2
  • MercurialEclipse  2.0.0.201208160020

・問題
MercurialEclipse で commit はできるけど、 ssh:// で指定したリモートリポジトリに push しようとすると

no suitable response from remote hg!
com.aragost.javahg.commands.ExecutionException

と出てきてリモートリポジトリに push できない。

"no suitable response from remote hg!" で調べると
  • ssh://で指定したリモートリポジトリのパスが間違ってる
  • sshした際にhgが使用できない(PATHとかの問題)
などが考えられる問題らしいけれど、ターミナル上では

$ hg clone ssh://server.com/path/to/repository
$ hg push ssh://server.com/path/to/repository

がきちんと行なえるので、どうやらリポジトリのパスやPATHの問題では無いみたい。


・原因
リモートリポジトリが置いてあるサーバへの ssh で warnings が出てた。
ssh で warnings が出てると、MercurialEclipse 側ではエラー扱いになるらしい。

今回の問題だと、証明書関係の warnings が出てたので known_hosts を修正するときちんと push できるようになった。





P.S. 某オペレーティングな方々へ
とりあえずよく分かんないけど、どーにかして、ってなったら
$ rm ~/.ssh/known_hosts
を試してみたください

2012/10/14

Vimperator を Mac で make する

Vimperator を Mac で make してみた。

Vimperator のリポジトリ を hg clone して素直に make すると SUCCES とか出るのだけど、良く見るとエラーが出てる。

ここ とか見ると、Mac の sed ではちょっと問題があるみたいなので、 gnu の sed やら cp やらを使わないといけないみたい。

ってなわけで必要なものを入れる

環境 : Mac OSX Mountain Lion , homebrew 構築済み

$ brew install gnu-sed
$ brew install coreutils

で必要なコマンドが他のコマンド群といろいろ入る。
おそらく gnu なコマンド群かと思われる。
ちなみにデフォルトの sed とかの区別のために、gnu-sed は gsed という名前で入る。
インストール時にオプション指定すれば gsed でなく sed って名前にもなるらしい。
coreutils のコマンド群も同じで、基本的に頭に 'g' がつく。これも インストール時でオプションで g を消せるみたい。
ちなみに上のコマンドだと sed も coreutils のコマンド群も g が付いたままインストールされる。

で、肝心のVimperator の make は、 gsed と gcp を 指定して make すれば良いっぽい。

$ make -e SED=gsed CP=gcp -C vimperator xpi

で downloads の下に vimperator-3.6pre.xpi とかができる。
それを
$ open -a "firefox" vimperator-3.6pre.xpi
とかすればfirefoxで開くので、インストール。


ちなみに Mac な sed は BSD な sed らしい。 Mac 自体のコマンドがそんな感じなんだろーか。

2012/10/11

ssh-copy-idを使ってみる

サーバとかに ssh するたびにパスワード認証をしないといけないけれど、鍵を作っておくとパスワード認証は必要なくなるみたい。

本来、鍵を使ってsshするためにはサーバへの鍵登録が必要だけど、 ssh-copy-id コマンドを使うと楽に登録できるらしいのでやってみた。

環境 : Mac OS X Mountain Lion , homebrew インストール済み

デフォルトで ssh-copy-id は入ってないので


$ brew install ssh-copy-id

して入れる。現在のstableは6.0p1らしい。


sshしたいサーバと、そのサーバに入るためのユーザ名で

$ ssh-copy-id username@servername.com

とかすると、一度パスワードを聞かれる。
パスワードを入れると何も出ないけど、次回からパスワード無しでそのサーバにsshできるようになってる。


これでパスワード認証無しでsshできるようになった。


一応、Github用にssh-keygenとかしてたので、鍵生成はしなかった様子。
うまく共存もできてるみたいだし今のところ問題無し。
鍵生成してなかったらパスフレーズとかも聞かれるのかもしれない。

hello blog

hello blog