去年の12月にLet’s Encryptがパブリックベータ版に移行したというのがニュースになったとき、管理しているサイトの1つ(stingrays.tokyo)を使って試してみようかなぁと思ったものの、いろいろ忙しかったのもあり早2ヶ月が経ってしまったが、FacebookのTLでちょうど環境が一致するチュートリアルのブログポストを見つけたので、本家のドキュメントを読みつつ手を動かしてみた。
結論を先に言うと、ちょっとつまづいたけど簡単にできた。
去年の12月にLet’s Encryptがパブリックベータ版に移行したというのがニュースになったとき、管理しているサイトの1つ(stingrays.tokyo)を使って試してみようかなぁと思ったものの、いろいろ忙しかったのもあり早2ヶ月が経ってしまったが、FacebookのTLでちょうど環境が一致するチュートリアルのブログポストを見つけたので、本家のドキュメントを読みつつ手を動かしてみた。
結論を先に言うと、ちょっとつまづいたけど簡単にできた。
自分の知らないところで、あるコマンドが実行されているということはLinuxでは珍しいことではない。代表的なのはcron
だ。ただ、cron
ならcrontab -l
をしたり、直接/var/spool/cron/crontabs/*
を調べれば、どんなコマンドが実行されるかすぐに調べがつく。しかし、あるイベントが発生したことをトリガーにしてコマンドが実行された場合、なぜそのコマンドが突然呼ばれたのかということに困惑することがある。
例えば、ifup
コマンドが実行された場合、/etc/network/if-pre-up.d
と/etc/network/if-up.d
配下にあるコマンドが、ifup
の実行中に呼び出されるようになっている。あるコマンドが実行されていることはログなどからわかっているが、どのような経緯で実行されるに至ったかがわからない、という場合には、そのコマンドの親プロセスを辿っていけば調べることができる。
公開鍵/秘密鍵を使ってリモートのSSHサーバーにアクセスする場合、秘密鍵にアクセスするためのパスフレーズを聞かれるようになる。Xが立ち上がっている端末であれば、初回の秘密鍵アクセス時にのみパスフレーズを聞かれるのだが、例えばリモートのSSHサーバーから更に別のSSHサーバーにアクセスしたい場合は、SSHで接続する都度パスフレーズを聞かれて面倒になることがある。
今使っている環境では、メインのLinuxマシンの上で仮想マシン(Linux)を動かしていて、仮想マシンにSSHで入って開発をしている。gitリポジトリはまた別のサーバーにあって、そこにもSSHでつなぐ必要がある。リモートのgitリポジトリにアクセスする度に、パスフレーズを聞かれるのがウザかったので、仮想マシンにSSHでログインした後、手動でssh-agent
を立ち上げてssh-add
で秘密鍵を登録(このときパスフレーズを聞かれる)していたのだが、この手作業自体がまた面倒になった。
Fedora14の日本語入力にはデフォルトのAnthyを使っていたのだが、MacでGoogle日本語入力を使って慣れてきたので、Fedora14でもGoogle日本語入力を使えるようにインストールしてみる。Google日本語入力は、mozcプロジェクトによって開発されており、Fedora14のyumリポジトリを探したらibus-mozc
というパッケージが見つかったので、yum
を使ってインストールすることにした。
$ sudo yum -y install ibus-mozc
1月13日(金)にPalo Altoで行われたJTPAのギークサロンに参加してきた。今回は参加者がラップトップ持ち込みでコーディングしていくハッカソン形式で、会場入りする前までにHadoopが使える環境を自前で用意しておく必要があった。
前編では、Hadoopを使って計算処理をするための準備として、EC2上にHadoopクラスタを構築する方法を紹介した。後編では実際にギークサロンで手を動かしてやったことを中心に紹介していこう。
64ビット版Fedora14にboost-1.48.0の32ビット版バイナリをインストールしようとしたら、結構手こずってしまったので忘れないようにメモ。RPMがあればyum
でインストールしてしまいたいが、あいにくFedora14のRPMリポジトリはboost-1.44.0以降、更新される気配がなくなってしまったので(本エントリ執筆時点でFedora16はboost-1.47.0まで公開されていた)、自前でビルドせざるを得なくなった。開発マシンが32ビット環境から64ビット環境に変わっても、32ビット版のモジュールをコンパイルすることはまだあるので、64ビット環境でも32ビット版を一緒にコンパイルできた方がずっと楽だ。
まず64ビット版のboostをビルドするには、Boost Getting Started on Unix Variantsの手順に従えばなんなくビルドできるのだが、バージョンアップを考慮してインストール先のディレクトリをデフォルトから変更してビルドする。
1月13日(金)にPalo Altoで行われたJTPAのギークサロンに参加してきた。今回は参加者がラップトップ持ち込みでコーディングしていくハッカソン形式で、会場入りする前までにHadoopが使える環境を自前で用意しておく必要があった。もうそれだけで、いつものギークサロンよりハードルが高いのだが、当日は15人ほどのギークたち(中には3日前にベイエリアに来たばかりという学生もいた)が集まって、おのおのラップトップとにらめっこしながらHadoopと戯れていた。
今回のギークサロンをホストしてくださった山中仁氏が、EC2上にHadoopクラスタを構築する方法を、参加者向けの資料としてWeb上に準備してくださり、「Hadoop=未知の領域」だった自分でもすんなりHadoopクラスタを組むことができた。だが残念なことに、この資料自体がEC2上に一時的に立てたサーバーに置かれており情報が恒久的には残らないとのこと(山中氏談)なので、山中氏に一部転載の許可をいただき、自分なりの咀嚼も含めてEC2上にHadoopクラスタを構築する手順を書き留めておくことにした。
仕事で開発している組み込み機器のLinuxカーネルを、2.6.27系から2.6.32系にアップデートするために、久々にカーネルの再構築なんかやってて、ネットワークデバイスのリンク状態を監視するために自作したLKMがあったので、2.6.27.xで使っていたものをそのまま2.6.32.xにコピーしてコンパイルしたら通らなかったorz
error: ‘struct net_device’ has no member named ‘get_stats’ error: ‘struct net_device’ has no member named ‘do_ioctl’
net_device
構造体からget_stats()
とdo_ioctl()
がなくなったようだ。