git cloneした時に、Gtk-WARNING **: cannot open display:

git cloneしたときに

(gnome-ssh-askpass:***): Gtk-WARNING **: cannot open display:

という表示が出てエラーになる。

どうも、SSHの処理がパスワード入力ダイアログを出したいらしい。

これに関連する環境変数が

SSH_ASKPASS

という事で、これをunsetして見ます。

これで、無事git clone出来るかと思います。

TortoiseSVN・TortoiseGitでマージツールにお悩みの場合にはP4Mergeを

TortoiseSVNや、TortoiseGitで、競合が発生した場合に使用するTortoiseMergeですが、あまり使い勝手が良いとはいえないです。

そんなときは、P4Mergeを入れてみましょう。

インストールは

http://www.perforce.com/product/components/perforce-visual-merge-and-diff-tools

から。

キャプチャ

このように、Visual Merge Toolのみを有効にして、後は無効にします。

これでインストール。

インストールが完了したら、TortoiseGitの設定をします。

設定画面を開き、キャプチャ

 

マージツールの項目を選択。

外部を選択してから、P4Mergeのパスを設定します。

これで、設定は完了です。

古いUbuntuを使っていて、apt-get updateなどが失敗する(404)

Ubuntuはサポートが切れたバージョンの場合

archive.ubuntu.com

から

old-releases.ubuntu.com

というドメインにパッケージが移動するようです。

ということで、

/etc/apt/sources.list

の中のドメイン名を変更してみます。

となっているので、これを

という感じに変更してみます。

これで正常にapt-get updateが通るようになりました。

今更ながら、screenコマンドを知った

ssh切れたら痛いなーと思っていたら

screenというコマンドがあるというのを教えてもらった。

仮想ターミナルという感じのコマンドらしく

teratermなどでサーバ機に接続した上でscreenを使うと

screenがバックグラウンドで起動し、

さらにその中にターミナル接続したようなイメージで使用できるらしい。

ということで、クライアントPCとサーバとの接続が切れてもサーバ上ではターミナルが開かれたままという事になるみたい。

使い方は

screenの起動

screenから抜ける(detach)

Ctl+a-d
Ctl+aを押してからdを押す

再度screenに接続する(attach)

※自分のアカウントででscreenが起動している場合

仮想ターミナルなので、複数ウィンドウも開ける

ウィンドウを増やすには

Ctl+a-c

今開いているウィンドウの一覧を見る

Ctl+a-w
※ターミナルの下部に表示される

「*」がついたものが現在アクティブなウィンドウ

「-」がついたものが直前に開いていたウィンドウ

次のウィンドウに移動する

Ctl+a-n

前のウィンドウに移動する

Ctl+a-p

任意のウィンドウに移動する

Ctl+a-[ウィンドウの数字]

ウィンドウの順番を入れ替える

0*$ master  1-$ branch1  2$ branch2

たとえば、このような感じにウィンドウを開いているとする。

Clt+a-cをすると、3$ ができあがる。

これを、masterの次に持ってきたい。

Ctl+a :number 1

と入力。

git diffで違うブランチのファイル、または違う名前のファイルを比較する

同一リビジョンで違うファイルを比較する

違うブランチのファイルを比較する

同一名称でブランチ間比較

Windowsに複数バージョンのRubyをインストールする

今回の要件

  • Windowsに複数のバージョンのRubyをインストールする。
  • バージョンの切り替えを出来るようにする。
  • ネイティブなgemもインストールしたい。
    たとえばnokogiri とか jsonとか

ダウンロード

ということで、まずは必要なRubyのダウンロード。
以下のページからインストーラをダウンロードします。

http://rubyinstaller.org/downloads/
http://ruby-lang.org/からもリンクがあります。

今回はシステム側に2.0.0、切り替え用として1.8.7をインストールします。

なので、ダウンロードページから

2.0.0のインストーラと1.8.7のインストーラをダウンロード。
現時点でダウンロードページにアップされているインストーラは
Ruby 2.0.0-p353 (x64)
Ruby 1.8.7-p374

続いて、それぞれのバージョンでネイティブのgemをインストール出来るようにするために
DEVELOPMENT KITをダウンロードします。
DevKit-tdm-32-4.5.2-20111229-1559-sfx.exe
DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe

Ruby本体をインストール

まずは、2.0.0のインストーラで普通にインストールします。

[インストーラ画面割愛]

インストールパスは
C:\Ruby200-x64
とします。

システム環境変数へは、C:\Ruby200-x64\binをPathに追加設定します。

つづいて、1.8.7のインストーラを起動してインストールします。

インストーラ画面割愛

インストールパスは
C:\Ruby187
とします。

この1.8.7の場合はシステム環境変数へはパスを追加しないようにしてインストールします。

これで二つのバージョンをインストールしました。

これを切り替えるためのツールをインストールします。

切り替えるにはpikというツールを使います。

Linuxな環境とかだと、rvmのようなイメージです。

pikは以下のページよりダウンロードします。

https://github.com/vertiginous/pik/downloads

今回はインストーラ形式のものをダウンロードします。

インストールパスは
C:\pik
と指定します。

Append c:\pik\ to system path.

にチェックを入れておきます。

インストールが完了すると、プロンプト画面でpikコマンドが使えるようになります。

pikコマンドでは、rvmと同様、インストール出来るRubyのバージョンが一覧表示できます。

今回はすでに2.0.0と1.8.7をインストールしてあるので、これをpikのconfig.ymlに登録します。

pik add C:\Ruby200-x64\bin
pik add C:\Ruby187\bin

pikの設定は
c:\Users/hoge/.pik
というディレクトリに出来上がるconfig.ymlを編集します。
※出来てない場合、pik listとかをたたくと、出来上がると思います。
それでも出来上がらない場合、手で作りましょう。

設定がファイルに入ったことを確認します。c:\Users/hoge/.pik
というディレクトリに出来上がるconfig.ymlを確認します。

設定をしたら、設定内容をpikからも確認してみます。

を実行。

Rubyのバージョンを切り替えるには

切り替わると、pik listのコマンド結果で矢印の位置が1.8.7の前に来ていると思います。
Rubyのバージョンを確認してみましょう。

を実行。

続いて、

を実行。

これで、devkitがインストール完了です。

ネイティブなgemがインストール出来るか確認します。

ネイティブなgemをインストールする時にエラーが出る場合、オプションに–platform=rubyという指定をつけます。

試しにjsonを入れてみます。

これで問題なくインストール出来ていれば、完了です。

同様の作業をc:\Ruby200に対しても行います。

2.0.0用のdevkitは、また別のインストーラなので、それを使ってインストールします。

rubyのプロセスで、メモリ使用量が500Mを超えたらkillする

古いRailsとかで長生きなプロセスとかだと

メモリ使用量が多くなってくる。

あまりやりたくは無いけど、killする。

でも定期的に監視してkillしたい。

いなくなってもpassengerが起動するからkillだけで大丈夫かな。

じゃ、crontabにこれを書こう