自宅サーバのLennyなDebianをアップデート…したいの(希望)

VMをぶん回したくて久々に こぁ i7 な機体に火を入れたけど、Debianっていつの間にかメジャーバージョンしておったのか。

取り敢えず/etc/soueces.listをsqueezeに書き換えてapt-get updateしているのだけど、volatileが終わっていたり、なんぞ「 子プロセス bzip2 がエラーコード (2) を返しました」とか言い出してみたり、何度やっても試しにサーバをftp.jp.debian.orgからftp.debian.orgに変えてみてもエラーが回復しなかったりよくわからん状態に。

なんかちょっと面倒になってきたというかそもそもあたしが今やりたいのはDebianを最新にすることではなくVMを動かすことだったのでいったん止めよう。

てか、面倒だから最初から入れなおしてやろうかコイツ…。

とりあえず後で何かしら手を打とう。

不用品のデジタルフォトフレームを小型モニターとして使いたい→挫折 orz

仕事の関係であまり欲しくもない安物デジタルフォトフレームが手元にあり、こやつの使い道をなんか探してみようとして早々に挫折するなど。

モノはDreamMaker DMF070W43。というだけでどういう経路で来たかわかる方がきっと相当するいるであろうこのギョーカイ。

サイズは7インチとそれなりに手ごろであるものの、解像度がSVGAなので一眼レフ画像とかの表示は期待できない感じの困った代物。

ふと思い出して電源を調べたところ、5V2A。コネクタ企画がViliv S5と同じ。ということはもしかしてUSB給電可能?

結論としては十分可能と判明。待機電力状態のデスクトップPCからでも充分だったので、500mAくらいで動いていそうな感じ。しかしViliv S5に使っているこのUSBケーブル、秋葉原の「どこか」で買ったやつなんだよな…どこで売っているんだっけ(汗)

仕様を確認したところ、USBケーブルでつなげばPCからデータ転送できる。例えば画像1枚だけにして、PCから定期的に画像の形で表示したいモノを送り出してやれば、あとはスライドショーで勝手にリロードしてくれたりはしないかなー、とか期待。

PCの繋ぎ先…は、CentOS release 5.5(単にアップデートをさぼっているだけで深い意味は無い)。接続してみたところ内臓メモリが/dev/sdb/になったので、mountしてみるとちゃんと見えてる。ほかのUSB Hostやメモリーカードスロットも見えているようなので、ここらに心配はなさそう。

問題は、PCに繋いでいる間は本体が動かないらしいこと。PCから定期的にデータアップロードしようとしてもこれではNG(-_-;

「PCに繋いでいる状態」はminiBポートに通電している状態の模様。PC側からmount/umountしても反応無いので。

で、ケーブルを抜いてみると勝手に電源が落ちるステキ仕様(えぇ仕様のようです)。

はい、しゅーりょー。

んー、USBメモリを繋ぐ機能はあるのだから、逆にPC側をUSBゲストにできれば、そちらのデータを定期差し替えして再読み込みさせる…なんてことはできそうな気もする。Googleると、 USB Server for Linux とか参考になるかもしれない。これはLinuxをUSBデバイスサーバ化するものなので少し毛色が違うけど、要はUSBポートに繋がれたものをリダイレクトするか、本体HDDのパーティションをリダイレクトするか、の違いだろうし。

後は、Mass Strage class周りのコードでも読んでみれ、ということかなぁ。要はUSBポートに対してファイルシステムのデータを送り出してやればいいんでしょ、的な。

多くの「USBでPC同士を通信します」的なケーブルは、実態としてはUSB LAN+LANケーブル+USB LANケーブルのような構成みたいなので、使えないと思う。てか、試しにUSB LANを繋いでみたが、ただの屍のごとく何のリアクションもなかった。

以前購入した「USB経由でPCの内臓光学ドライブをマウントします」ケーブルはもしかしたら有効かも…しれないけど、なんぞスマートでないというかエレガントさに欠けてトレーズ閣下がお怒りになりそうだ。

てか、そこまでしなくても素直に小型モニタを買ってくるとか、7インチクラスのAndroidを安く買ってきてフォトフレームにしたほうが色々高機能なんだよね。

つーことで、取り敢えずPCをUSBゲストにする方法を探したいなー、というメモを残してオチなく終わる。

Software Design 11月号 (2010年バックナンバーPDF付)。

今月号は2010年版バックナンバーのPDFが付いてきているので購入。さて、捨てられる本をまとめておくか…。

Software Designは毎年確実にバックナンバーPDFを付けてくれるので安心感があるのだけど、他の雑誌も例えば「年末にはバックナンバーPDFを出しますよ」と予告・宣言しておいてくれれば、雑誌をせっせと自炊整理する人の助けにもなるだろうし、年末の売り上げも期待できるんじゃないかなー、とか思うのだけど。

ついでに年初の時点で年末のPDF版をAmazonとかで予約できるような体制になっていると、購入忘れが無いというか見込み客確保にもなるんでないかとか。

11月号自体のメインはさくらインターネット大特集!誌面の1/3くらい占めている印象が。さくらちゃんを隅々まで紹介していてとてもエロい(なんぞ)

これ、次は他のデータセンター系インターネットプロバイダとかやらないと不公平ぢゃないですかね?(笑)

あとは、Hack For Japanの活動報告第1回が掲載。プログラマの一人としても、何かできることが無いか活動内容を見直したいところ。

あとは印刷環境特集。Software Designで「プリント環境」って書かれると一瞬印刷のことか基板のことかで悩むのはあたしだけか、あたしだけなのか。

#2011.10.24 追記

購入した11月号を読んでいて、デジタル版があることに初めて気づく。「雑誌オンライン.COM」で購入できるらしい。バックナンバーも買えるし、価格も紙版より100円安いし、Androidでも読める。

取り敢えず今月号を購入して読み比べるか、買っていないバックナンバーを試すか、微妙なところではある…。

あと、先日の記事でぼやいていた週刊ダイヤモンドもこちらでは単品電子版が購入できる模様。

うーん、ぬかった…。

Radiant CMS 0.9.1のExtension開発でFactoryGirlを使う。

RADIANT_ROOT(radiantコマンドで生成するディレクトリ)にspec/factories/を置くべし! ←結論

問題:

  • FactoryGirlは通常spec/factories/以下にテストデータの定義を置く
  • Extensionの場合、vendor/extensions/<エクステ名>/spec/が該当(するはず)
  • だがしかし、ここに定義を置いても読み込んでいる気配が無いんだなこれが
  • あ、FactoryGirlのバージョンは1.2.4 (Rails2なので)

原因:

  • FactoryGirlの検索パスは、初期状態でRAILS_ROOT/test/factories/とRAILS_ROOT/spec/factories/ (factory_girl-1.2.4/lib/factory_girl.rb)
  • Radiant CMSの場合、みょんな小細工がいろいろ入っていてRAILS_ROOT = RADIANT_ROOTになる
  • エクステのディレクトリ内でrake specしても、同様。一度RADIANT_ROOTまで上がって、そこからspecとかを呼び出している
  • なので、FactoryGirlも一生懸命RADIANT_ROOT/spec/factories/を探していたようで。

対策:

取り敢えずの逃げとしては、RADIANT_ROOTにvendor/extensions/<エクステ名>/spec/のシンボリックリンクを作ればOK。

しかしこの方法では複数のextension開発に対応できず、あとRADIANT_ROOTからvendor/extensions/<エクステ名>/spec/へのパスが2種類になってしまうので、何かの拍子に予期せぬ誤動作がでそうで怖い。

しかしextension開発中にいちいち上のほうの階層にテストデータを置きに行くのもたるい。

やり方をまだ確認していないけど、たぶんspec_helperあたりでextensionごとにfactories/の位置をFactoryGirlに教えることができると思うので、それを確立するのが一番良い気がする。

共通で使うテストデータ(たとえばRadiantCMS本体に元からあるテーブル類とか)はRADIANT_ROOT/spec/factories/に置き、extension固有データは各spec/に置く、とかが一番スマートか?

妹の…もといリモートのリポジトリを用意したいので。

一番手っ取り早いのは契約しているVPSとかレンタルサーバにSubversionリポジトリ作っちゃえばいいのだけど、そのVPSを初期化リセットしたくなったらどーするんだとか、いやいや世の中にはgithubってーものもあるんですぜ旦那、とかそんな宇宙毒電波が聞こえる毎日。

リポジトリに突っ込みたいのは、Macbook Airでいじっているソースとか、VPSで構築しつつあるRadiant CMSの自作エクステとか。

最終的に公開することもやぶさかではないけど、今はとても見せられませぬ、というかそこまで本気でやっていないというか。

となると公開共有が前提のgithubはちょっと用途が違うかなー、というかアレは完全プライベートのリポジトリにも使えるのか?<本を読め、買ってあるんだから

さて、どこに置いたものやら…。

宇宙からの毒電波により。

えっちな女子高生ラブなひとが女子小学生に手を出すまでの軌跡(hjklな人がJSに手を出すまでの軌跡)という寝言が聞こえた気がします。

えぇ、もちろんvi使いがJavaScriptに手を出すまでの軌跡、ってことですが何か。

具体的には女子高生男爵とかその辺りれすかね。かすみ遊戯的に。

まどか☆マギカ汚染が広がっているようデス。

本屋で何気に新刊をチェックして、思わず噴きそうに(当然即購入)。こんなところにまで契約が…(笑)

僕と契約してFreeBSD使いになってよ!

…最近FreeBSDとか見ていなかったなぁ…。Macbook Air買ったから、BSDと契約と言えばそうなんだが(Max OS XはBSD系)。たまにはインストールしてみようか?

Mini-ITXを4枚収納可能なATX筐体。

実はMini-ITXのAtom 330マザーが登場したころから実現を目論みつつも資金面の問題とかから実現できなかったネタなのですが、これ。

準備段階として、100円ショップの部材でPCケースを作ってみる。なんてネタもやっていました。ちなみにこの時作った筐体はある日両面テープで済ませた個所が外れて崩壊したり、その後梅雨時にMDFボードにカビが発生したりと散々なことになって廃棄していますが。

で。

マザーが4枚入るMini-ITXケースが発売に 見た目は普通のATXケース (AKIBA PC Hotline!)

相変わらず資金面は辛そうですが。

そもそもなんでコレに興味があるかというと、次のような理由で1つの筐体に複数マザーを放り込めると便利だなー、と思った次第。

  • Mini-ITXのAtom 330(今だとD550のほうが良いか)だと、HTまで使えば論理4コアマザーになる
  • しかも1枚1万円以下、低電力、低発熱
  • お手軽並列コンピューティングを考えた場合、高価なマルチコア+複数HDD+大量メモリのPC上で複数プロセスを実行するより、安価PCを複数用意してネットワークでつなぐほうが、メモリとかHDDの管理面で単純(だと思う)
  • しかしMini-ITXといえど、複数配置は場所を取る
  • だがサーバラックなど一般家屋には言語道断

まー、興味持ち始めた時代はまだVPSとか今ほど普及していないし、実際自分の趣味範囲で並列処理するようなデータをもっているかというと持っていなかったりするわけで、結局実行に移さずじまいだったのですが。

この筐体だと電源系は独立しているようなので、少しずつマザーを増やしたり、壊れたところだけ交換とかも容易にできそうですねぇ。

しかし49,800円か。うちにある小型のMini-ITX筐体(ACアダプタ電源+スリム光学ドライブ+2.5インチHDD)が13,000円だったので×4で52,000円。…んー。お値段としてはあまりお得感は無いなぁ。ケーブル類がすっきりするとか、場所移動が楽、という利点はありそうだけど。

D550マザー1枚1万、メモリ3,000円、HDD1台5,000円×2として、49,800円+(2,3000×4)=141,800円…実際にはもう少し安いかな?

gitのソースコード配布が復活しておる。

よく考えたらGit無いとRadiant CMSのエクステ入れられないぢゃんダメぢゃん仕方ないからEPEL使おう…と思いつつもふと魔がさしてGit本家を見に行ったところ、ソースコードのtar.gzがcode.google.comからの配布に切り替わって復活してる!!

どうやら過去のリリースも一式code.google.comに移住した模様??

ということで早速。

configureは特に指定なし。/usr/local/に入るけどまぁ良いか。パス通せば済むことだし。

粛々とmakeしてmake test。

結果。

fixed   0
success 7146
failed  0
broken  32
total   7278

…なんだbrokenって(汗)

まぁいいか(おぃ)

checkinstallでRPM化をば。

1 -  Summary: [ GIT - Fast Version Control System. ]
2 -  Name:    [ git ]
3 -  Version: [ 1.7.6.4 ]
4 -  Release: [ 1 ]
5 -  License: [ GPL ]
6 -  Group:   [ Applications/System ]
7 -  Architecture: [ x86_64 ]
8 -  Source location: [ git-1.7.6.4 ]
9 -  Alternate source location: [  ]
10 - Requires: [  ]
11 - Provides: [ git ]

こんな感じでいいかな。

出来上がったRPMをインストール。

$ sudo rpm -ivh /usr/src/redhat/RPMS/x86_64/git-1.7.6.4-1.x86_64.rpm
error: Failed dependencies:
        perl(SVN::Core) is needed by git-1.7.6.4-1.x86_64

ぬぐぐぐぐ。

# yum install subversion-devel
Installed:
  subversion-devel.i386 0:1.6.11-7.el5_6.4
  subversion-devel.x86_64 0:1.6.11-7.el5_6.4

Complete!

…が、しかしcpanでうまく入らん…。

こっちか!

# yum install subversion-perl

Installed:
  subversion-perl.x86_64 0:1.6.11-7.el5_6.4

Complete!

なんぞいつか来た道だなぁ、って。

りとらい。

$ sudo rpm -ivh /usr/src/redhat/RPMS/x86_64/git-1.7.6.4-1.x86_64.rpm
[sudo] password for kmamiya:
Preparing...                ########################################### [100%]
   1:git                    ########################################### [100%]

よし入ったらしい。

試しに適当なテストアプリを用意してエクステを拾ってきてみる。

$ script/extension install language_redirect
$ ls vendor/extensions/
language_redirect

大丈夫そう。

さくらのVPSにRadiant CMSをセットアップ

さくらのVPS を導入してRadiant CMSの運用環境を構築するまでのメモ。なお、バージョンが指定された物は、依存関係を解決する過程で特定した物です。2011年9月現在の結果なので、OSや各モジュールの依存状況によって変動が出る可能性があります。最新状況の確認は各自にて。

また、バージョン指定物については「可能な限り最新版、ダメだったら少しずつバージョンダウンしてみる」という手法で解決を図っていますので、例えばrspecとrspec-railsはバージョンがずれており、合わせたほうがキモチ良いなーと思いつつそのままになっていたりします。

ちなみに、あたしはクリーンインストールに成功したこの記録に到達するまで、2回のOSリセットと概ね2回のごり押しをやっていまする。だいたい、1回目で破綻しつつ勘をつかんで、2回目+ごり押しでなんとか押し込むことに成功して、3回目できれいに納める、といった感じ。

記事全体としては、大まかな作業手順導入するRPM導入するgem具体的な手順、となっています。RPMやgemは、実際には導入手順の中で数回に分けて導入作業を行っています。大抵は最初に一括インストールして問題ないはずですが、確認はしていません(4回目をやるのが面倒)。RPMとgemの関係性とかもあるので、一括作業する人は注意。

大まかな作業手順

  1. rubyのインストール(1.8系)
  2. gemsのインストール
  3. railsのインストール(2系)
  4. DB関係のインストール
  5. radiant CMSのインストール
  6. 開発環境構築
  7. Passengerのインストール
  8. 運用環境構築

導入するRPMパッケージ

rubyのコンパイルで使うものたち。ext/の内容物をコンパイルするためのライブラリ類です。あとでアレが無いコレが足りないとやるのが面倒なので、後々必要になりそうなものをあらかじめ選び、導入要件を調べた結果こうなりました。
ncurses ncurses-devel gdbm gdbm-devel openssl openssl-devel zlib zlib-devel readline readline-devel
Rails運用に使うものたち。DB2種。ほかに使いたい人はそれを。sqliteは概ね最初から入っているはず。
mysql mysql-server mysql-devel sqlite-devel
Radiant CMS運用/開発に使うものたち。基本的には開発方面で必要になった気がします。ざっくりXML系ですな。
libxml2 libxml2-devel libxslt libxslt-devel
Passenger運用に使うものたち。
httpd-devel apr apr-devel httpd-devel curl-devel

導入するgem

Ruby on Rails本体。Rails3はあたしが慣れていないせいかそもそも一般流通しているgemが追従しきれていないのか、色々要らぬトラブルが発生するので当面Rails2でいきます。
rails -v 2.3.14
SQLite。これも、最新版(1.3.3)ではエラーになるので。まぁ基本テストで使うものなので多少いい加減でも良いかと。
sqlite3-ruby -v 1.2.5
MySQLについては特にひねりはありません。
mysql
Radiant CMSの開発環境まわり。運用だけならば不要だったように思います。
cucumber cucumber-rails database_cleaner webrat
おなじく、Radiant CMSのうちバージョン指定が必要な物。ちなみに、specぢゃなくてutest使うんだい!という人には不要です。
        
  • rspec -v 1.3.0
  •     
  • rspec-rails -v 1.3.2
Radiant CMS本体。Rails2系です。Rails3系は、radiant3だったかと。
radiant
Passenger。
passenger

手順

多少端折っていますが、実際に打ち込んだコマンドのログ。

まずはRubyとRubyGemsのインストール。前提条件として、RPM化するためにcheckinstallが導入済みとなっています。

rubyについてはインストール先のみ、/usr/に変更しています。単なる趣味というか職場環境がそうなっているからというか、まぁそのあたりが理由。

$ sudo yum install ncurses ncurses-devel gdbm gdbm-devel openssl openssl-devel zlib zlib-devel readline readline-devel

Installed:
  gdbm.i386 0:1.8.0-26.2.1.el5_6.1
  gdbm-devel.i386 0:1.8.0-26.2.1.el5_6.1
  gdbm-devel.x86_64 0:1.8.0-26.2.1.el5_6.1
  ncurses-devel.i386 0:5.5-24.20060715
  ncurses-devel.x86_64 0:5.5-24.20060715
  openssl-devel.i386 0:0.9.8e-20.el5
  openssl-devel.x86_64 0:0.9.8e-20.el5
  readline-devel.i386 0:5.1-3.el5
  readline-devel.x86_64 0:5.1-3.el5
  zlib-devel.i386 0:1.2.3-4.el5
  zlib-devel.x86_64 0:1.2.3-4.el5

Dependency Installed:
  e2fsprogs-devel.x86_64 0:1.39-33.el5 keyutils-libs-devel.x86_64 0:1.2-1.el5
  krb5-devel.x86_64 0:1.6.1-62.el5     libselinux-devel.x86_64 0:1.33.4-5.7.el5
  libsepol-devel.x86_64 0:1.15.2-3.el5 libtermcap-devel.x86_64 0:2.0.8-46.1

Complete!

$ cd ruby-1.8.7-p352
$ ./configure --prefix=/usr/
$ make ; make test

test succeeded

checkinstallでRPM化するにあたり、説明文はyum infoで得られるものをそのまま使います。どうせ個人使用なんで何でも良いといえばそれまでなんですが。

また、checkinstallでは1~4までの項だけを再設定します。Summaryについては同じくyum infoの内容をコピペ。2~3もyumで取ってこれるRPMに合わせることで、あとで入れ替えるときなどに要らぬトラブルが出ないようにします(したつもり)。

$ yum info ruby >description-pak
$ vi description-pak
★Description: の項だけ残して後は削除しておく。

$ sudo /usr/local/sbin/checkinstall
★1~4まで再設定。
1 -  Summary: [ An interpreter of object-oriented scripting language ]
2 -  Name:    [ ruby ]
3 -  Version: [ 1.8.7 ]
4 -  Release: [ p352 ]

**********************************************************************

Done. The new package has been saved to

/usr/src/redhat/RPMS/x86_64/ruby-1.8.7-p352.x86_64.rpm
You can install it in your system anytime using:

      rpm -i ruby-1.8.7-p352.x86_64.rpm

**********************************************************************

$ sudo rpm -ivh /usr/src/redhat/RPMS/x86_64/ruby-1.8.7-p352.x86_64.rpm
Preparing...                ########################################### [100%]
   1:ruby                   ########################################### [100%]

gemについては何のひねりもありません。

$ cd rubygems-1.7.2/
$ sudo ruby setup.rb
RubyGems 1.7.2 installed

Ruby on Railsについては、バージョン指定しているところだけが特殊です。何も指定しないと、Rails3が入ってきます。

$ sudo gem install rails -v 2.3.14

ここで、うっかり忘れていたDB関係を入れることに。sqlite3-rubyのみバージョン指定が入ります。

$ sudo yum install sqlite-devel
$ sudo gem install sqlite3-ruby -v 1.2.5

$ sudo yum install mysql mysql-server mysql-devel

Installed:
  mysql.i386 0:5.0.77-4.el5_6.6           mysql.x86_64 0:5.0.77-4.el5_6.6
  mysql-devel.i386 0:5.0.77-4.el5_6.6     mysql-devel.x86_64 0:5.0.77-4.el5_6.6
  mysql-server.x86_64 0:5.0.77-4.el5_6.6

Dependency Installed:
  perl-DBD-MySQL.x86_64 0:3.0007-2.el5       perl-DBI.x86_64 0:1.52-2.el5

Complete!


$ sudo gem install mysql
Successfully installed mysql-2.8.1

ここで、Ruby on Railsのテストアプリを作ってみて、welcomeページ程度まで表示できることを確認しておきます。

$ rails testapp
$ cd testapp
$ script/server
★http://<IPアドレス>:3000/にアクセス

Radiant CMS関係。試行錯誤の結果、特に開発環境についてはあらかじめ相性問題を解決したgemを導入しておかないと、勝手気ままに依存関係を解消しようとした結果訳の分からない状態に突入する、という結論になりました。

$ sudo yum install libxml2 libxml2-devel libxslt libxslt-devel

Installed:
  libxml2.i386 0:2.6.26-2.1.12          libxml2-devel.i386 0:2.6.26-2.1.12
  libxml2-devel.x86_64 0:2.6.26-2.1.12  libxslt.i386 0:1.1.17-2.el5_2.2
  libxslt-devel.i386 0:1.1.17-2.el5_2.2 libxslt-devel.x86_64 0:1.1.17-2.el5_2.2

Dependency Installed:
  libgcrypt-devel.x86_64 0:1.4.4-5.el5     libgpg-error-devel.x86_64 0:1.4-2

Complete!

$ sudo gem install cucumber cucumber-rails database_cleaner webrat

Successfully installed json-1.6.1
Successfully installed gherkin-2.5.1
Successfully installed term-ansicolor-1.0.6
Successfully installed builder-3.0.0
Successfully installed diff-lcs-1.1.3
Successfully installed cucumber-1.1.0
Successfully installed gherkin-2.4.21
Successfully installed cucumber-1.0.6
Successfully installed nokogiri-1.5.0
Successfully installed mime-types-1.16
Successfully installed json_pure-1.6.1
Successfully installed rubyzip-0.9.4
Successfully installed ffi-1.0.9
Successfully installed childprocess-0.2.2
Successfully installed selenium-webdriver-2.7.0
Successfully installed rack-test-0.6.1
Successfully installed xpath-0.1.4
Successfully installed capybara-1.1.1
Successfully installed cucumber-rails-1.0.5
Successfully installed database_cleaner-0.6.7
Successfully installed webrat-0.7.3
21 gems installed

ここで以下のエラー発生。ただしどうやらドキュメント類が破損したような気配だったので放置。だがしかし、その後のgemも軒並みドキュメント類で「Could not find main page README.rdoc」というエラーが出たようなので、対処したほうがよかったのかも…。

ERROR:  While generating documentation for builder-3.0.0
... MESSAGE:   Unhandled special: Special: type=17, text=""
... RDOC args: --ri --op /usr/lib/ruby/gems/1.8/doc/builder-3.0.0/ri --title Builder -- Easy XML Building --main README.rdoc --line-numbers lib CHANGES Rakefile README README.rdoc TAGS doc/releases/builder-1.2.4.rdoc doc/releases/builder-2.0.0.rdoc doc/releases/builder-2.1.1.rdoc --title builder-3.0.0 Documentation --quiet

この時点で、「Invalid gemspec in [...]: invalid date format in specification: "2011-09-18 00:00:00.000000000Z"」というエラーが大量に出始めて非常にウザくなります。調べたところどうもgemspecの日付フォーマットが実動作にあっていないものがいくつかあるようです。仕様がDateTimeからDateに変わったか、その逆なのでしょうたぶん。

取り敢えず、一通り入れます。

$ sudo gem install rspec -v 1.3.0
Successfully installed rspec-1.3.0
1 gem installed

$ sudo gem install rspec-rails -v 1.3.2
Successfully installed rspec-rails-1.3.2
Successfully installed rspec-core-2.6.4
Successfully installed rspec-expectations-2.6.0
Successfully installed rspec-mocks-2.6.0
4 gems installed

$ sudo gem install radiant
Successfully installed will_paginate-2.3.16
Successfully installed RedCloth-4.2.8
Successfully installed radiant-0.9.1
3 gems installed

先のInvalid gemspec in …を回復させます。 gem list 等を実行するとエラーがどどっと出るので、それらのgemspecファイルを開き、s.dateに代入されている日付の文字列表現を修正します。具体的には後半の時刻部分を削除。

前:"2011-09-18 00:00:00.000000000Z" →後:"2011-09-18"

もう一度 gem list 等を実行してみて、エラーが無くなればOK…だと思います。今のところ障害は無し。

今回構築した環境では、Radiant CMS関連を実行する際にMutex (NameError)というエラーが出ます。これもたぶん標準ライブラリか何かの構成が変わった…用なのですが、対処療法としては require "thread" を追記してやることでエラーが解消します。

今回は、書き換えるファイルが最も少なくて済む方法を検討した結果として次の2ファイルに追記しました。どちらも先頭(RAILS_ROOT =の直後行)に追記しています。

  • /usr/lib/ruby/gems/1.8/gems/radiant-0.9.1/config/boot.rb
  • /usr/lib/ruby/gems/1.8/gems/radiant-0.9.1/lib/generators/instance/templates/instance_boot.rb

テストアプリを作ってみて、Radiant CMSとその開発環境(取り敢えずあたしはextensionを自作したい)が正常動作することを確認します。

$ radiant -d sqlite3 testapp
$ cd testapp
$ env RAILS_ENV=production rake db:bootstrap
$ script/server -e production

★http://<IPアドレス>:3000/にアクセス。
adminログインし、ページ作ったりレイアウト作ったりしてみてDB書き込み含めて稼働することを確認。
$ script/generate extension test_ex
$ script/generate extension_model test_ex xxx
$ pushd vendor/extensions/test_ex/
$ rake spec
★app/models/xxx.rbをちょこっといじってみる
$ rake spec
★xxx.rbをいじった結果が反映されればOK。

$ pushd

より以前の記事一覧

無料ブログはココログ
2021年10月
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31