2009-04-27(月) [長年日記]
■ sudo先でproxy経由のgemを使う
(例によって)社内からgemを使う時にはproxyを経由しないといけないのだけど、sudoから実行すると環境変数のproxy関連情報が渡っていないみたいで、そのまま実行できない:
% echo $http_proxy http://MY_PROXY_HOST:MY_PROXY_PORT % sudo gem update Updating installed gems ERROR: While executing gem ... (Gem::RemoteFetcher::FetchError) getaddrinfo: Name or service not known (SocketError) fetching size (http://gems.rubyforge.org/latest_specs.4.8)
しょうがないので、--http-proxyオプションを付けて実行していたんだけど:
% sudo gem update --http-proxy=$http_proxy Updating installed gems Updating rack Successfully installed rack-1.0.0
gemのオプションってお尻につくのがキモチワルイ。というか、毎回付けるのメンドクサイ。
これが、sudoが環境変数をわざと落としているのが原因というのを最近のsudoと環境変数で知った。なんだ、そういうことか。Lennyのsudoは1.6.9p17なので条件は満たしている。ということで、こんなaliasにして解決:
% alias gem='sudo http_proxy=$http_proxy gem' % gem install rspec cucumber (略)
■ ニコ動アプリがおれをiPhoneに呼んでいる
ニコニコ動画のiPhone用アプリが公開されたとたんに、方々から「iPhone買え買え」攻撃を食らう。そりゃぁ、auからdocomoに乗り換えたその日にニコ動モバイルが始まったくらいに呪われて(?)いるのだから、そういう流れはアリだけどさ。
……というか、着々とiPhone移行の準備は始めていたんだよ! ニコ動にちょっと先を越されただけ!
なにしろ、オサイフケータイを使ってると、いろいろ面倒なのだ。まずはモバイルSuicaの残高をゼロにして、それから定期を解約、PASMOに乗り換え。同時進行でオートチャージ用に小田急のOPカードの申し込み。とりあえず今日時点でここまで済んだ。
あとは今週中に時間を見つけてMNPする予定。docomoは少し違約金が発生するけど、端末の調子が水没以降かなり悪いので、もう限界だ。
肝心のニコ動アプリだけど、案の定、画質が残念な感じだなー。まぁ、出先でちょっと確認するくらいならいっかー。
~/.gemrc に
gem: --http-proxy=proxyのアドレス
って書いておけばどうでしょうか?
proxyの環境がないのでちょっと試せないのですが、gemのオプションをこの方法で付けることが出来ると思います
sudoした場合はどこの.gemrcが読み込まれるんでしょううね……? rootの?
sudo -Hのときは~root/.gemrcでsudoのときはそのユーザの~/.gemrcな気がします。
たぶん。。。
明日やってみます。
通りすがりさんの方法でいけました。ありがとうございます!
こっちのが正当なやり方か……でも、環境変数を使う方がDRYなので(PROXYサーバが変わるたびにあちこち書き換えるのはイヤ)、.gemrcは使わないかも。