About Digital

i wanna be a bot...

複数PCでsshキーを共有する

Posted in  Tech | Comments

色んなPCでsshの鍵を共有している場合、単に鍵をコピーするだけでなくssh-addが必要。

PC Aでssh-keygenしたキーをPC Bにコピーして使ってたんだけど、毎回

enter passphrase for key

って聞いてきて鍵登録してる意味ないやん、って思いながらパスをポチポチ打ってた。

けどどう考えても鍵コピーした手間に見合った効果得られてないしなんだか損してるって気付いたので重い腰を上げて設定してみた。
調べたところ、PC Aではssh-keygenしたからssh-agentに登録されてるけど、PC Bでは鍵がssh-agentに登録されてないのが原因ぽいことがわかった。
そこで

$ eval `ssh-agent`
$ ssh-add [keyのパス(デフォルトは~/.ssh/id_rsaだと思う)]

することで鍵を登録した。
これでいろいろ捗るようになった。

多段sshの方法

Posted in  Tech | Comments

多段sshをするのは知ってれば結構簡単で

[digitalbot@local]$ ssh -t FOO ssh BAR

-tオプションを使うことでssh先で後続のコマンドを実行してくれるのでlocal --> FOO --> BARと多段sshしてくれる。

percolが便利だけど、入れるにはpython2系のほうが良さそう

Posted in  Tech | Comments

percolというコマンドラインを大変便利にしてくれるソフトウェアがあるのだけれど、これをインストールするときに少しハマった。percolはpython製のツールで、インストール方法は素直にgit cloneしてきてsetup.pyを手で叩くか、pip install percolするなどあるんだけど、なんだか毎回どうしようか迷う。というのも、あんまりpython製のアプリとして意識したくないから/usr/local/binとかに入って欲しいんだけど、管理の簡単さなどからpipも捨てがたいよなぁってなるから。

んで、先日もMBAを新調したのでpercolを入れてたんだけど、どうにもインストールが出来ない。pythonに明るくないのでなんて言えばいいかわからないし先日のことなので詳しくは忘れたけど、ヘッダというかモジュールのパスが解決出来てないっぽくてmakeが出来ない状況になってた。

どうしようかなぁと思ってたんだけど、これ、結論からいうとpythonのバージョンが間違ってた

python使いの人にとっては常識なのかもしれないけど、python3系の環境ではダメで、python2系の環境にする必要があっただけみたい。自分はpython3.3.2anyenvで管理して入れてたので

$ pyenv install 2.7.5
$ pyenv rehash
$ pyenv global 2.7.5
$ pyenv versions
#=>   system
#=> * 2.7.5 (set by /Users/kosuke/.anyenv/envs/pyenv/version)
#=>   3.3.2

してもともと2.7.5を入れなおしてglobalに設定すれば良かった。そんで結局pipを使うことにしたので

$ pip install percol

した。これでターミナル上でanythingライクな操作が可能になり、平和にまた一歩近づいた。めでたし。ついでに設定ファイルも載せておこう。

参考

homebrew-caskが良さそうなので導入してみた

Posted in  Tech | Comments

どうやらMacのGUIアプリケーションまでもhomebrewで管理をしようとしている人がいるらしい。確かに考えなくもなかったけど、本当に作った人がいるとは思わなかったし、うまいことhomebrewを拡張した感じで作ってると感じた。マックのアプリのパッケージ管理がこれで楽になればよいなぁと思う。バージョンの管理も。

AnythingからHelmに移行できない

Posted in  Emacs, Etc, Tech | Comments

AnythingからHelmに移行できない。わざわざ移行する必要も確かに無いんだけど、移行できるもんなら移行したいってもん。だけど、Anythingだと快適に使えるEmacsも、Helmに切り替えるとどうにも使い勝手が悪くなる。

自分はMac OS 10.8 mountain lionMac OS 10.6 snow leopardの環境で同じCocoaEmacs・同じ.emacsを使ってるんだけど、Anythingだと両方のマシンで問題なく動くのに、Helmだとsnow leopardで動かないってことがあって割と困ってる。しかも、そもそもどちらの環境でもうまく動かないHelmの機能もいくつかあってさらに困ってる。

だからHelmのほうはブランチを切って(当然.emacsはgit管理してる。ちなみにCentOS上のgitolite)ちょくちょく修正を加えては試して、ダメだからmasterにもどってAnythingを使ってって感じになってる。具体的には

  • helm-gtagsが意図通りの挙動をしない

  • helm-show-kill-ringの画面分割がおかしい

    • しかもpopwin.elに登録できない
  • helm-show-kill-ringがsnow leopardで複数行を一行ずつと解釈する

  • helm-for-filestramp使ってファイル開こうとすると落ちる

  • tramp使ってリモートに入ってるときにfile系helmの機能使うと、カレントディレクトリのソースを取ってくるのに手間取って固まる

あたりが現状問題視しているもの。詳しい話(具体的な設定など)はまた次の機会に書くとして、あくまでメモとしてここにとりあえず書いとく。自分でも忘れちゃうから。

そもそも、Helmが色々置き換え過ぎだし、デフォルトの挙動が色々ちょっときもいのもどうなのかなぁと思ってる。

しかし、Anythingにも問題があって、いつからかregionがactiveなときにanything-*するとそのanythingバッファの中でdelete-backward-charが出来なくなってしまってる。つまり、例えば仮にある範囲内の文字を置換したくて、範囲を選択した状態でreplace-stringすべくM-xしてからrepraceとかtypoしたのをC-h(にdelete-backward-charをバインドしてる)で修正出来ない。まぁここらへんも別にまたまとめよう。

おわりに

こういう「**できない」って書いてあるだけのエントリは後にそれがどうなったかわからないし、解決策や問題が起きた具体例がないと何も進展しないってことで悪いとされてるみたいだけど、まぁ何書こうが良いだろう。それぞれの問題が何に起因しているかは大体当たりはついてるけどその話はまた今度。まぁともかく今回は自分への忘備録として、色々ハマったときに参考にしたサイトでも上げておこうかと思う。

参考

Emacs trampを使った多段リモートファイル操作

Posted in  Emacs, Tech | Comments

Emacsではtrampという、リモートのファイルやディレクトリをあたかもローカルにあるように扱うことができる拡張が標準で備えられてる。

これは少し過去の情報だが、基本的にはこの通りだし、多段ssh、なかでもsudoを途中で挟む多段sshについて言及されているのでとても良い記事だと思う。そこで、自分への忘備録も兼ねて、使い方や補足をしたいと思う。ちなみに、環境としてはCocoaEmacs v24.3を想定しているが、Emacs v23以降だったら大体変わらないと思う。

Octopressのカスタマイズ

Posted in  Tech | Comments

Octopress、ただ単に入れただけじゃ物足りないので、当然いろいろ設定をいじったり、プラグインを入れたりした。

3rd Party Settings

デフォルトで拡張できる3rd Party Settingsでは

  • Github repositories

  • Twitter

  • Google Analytics

  • DISQUS

を設定した。特にGoogle AnalyticsとDISQUSは新しくアカウントを取らなきゃいけないから面倒だと最初は思ったんだけど、アカウントとったら一瞬で設定できたからすごい!と思った。

Emacsユーザが実践Vimを読んでを読んで

Posted in  Tech | Comments

Emacsユーザが「実践Vim」を読んだ感想 (http://d.hatena.ne.jp/syohex/20130901/1378018638)

自分もまさににわかEmacsユーザであり(id:syohexさんは全然にわかじゃなくすごい人と思う)、最近Vimの設定も始めたから共感するところあった。すこし感化されたので実践Vimも買おうと思うし、EmacsもVimももうちょっと頑張って使おうと思う。

ただVimスクリプトはなんとなく書いててあんまり気持ち良くない気がする。