UQ、上り高速化サービスを28日よりスタート

で、Mobile Cubeは対応せんのかい?

UQ、上り高速化サービスを28日よりスタート (ケータイWatch)

上りが遅いとリモートデスクトップとかSSH作業とかがきついんだよね。bmobile Fair、イー・モバイルは割と論外、WiMAXでもたまにきつい。

以外なことに画像を使うリモートデスクトップよりも文字列しか扱わないSSH接続のほうが、通信速度の影響を受ける。なによりもキーボード入力のエコーバックが遅くてイラつく。たぶんキータイプ速度以上で通信してくれないとダメなんだろうな。

 

Radiant CMSで構築しているサイトをgit管理しようとしてハマる。

ダウンロードしてきたextensionを自分のgitリポジトリに追加して別の場所でcloneしようとしたらディレクトリしか届いてこなかった顛末。

元の場所に戻って状況確認していったところ、extensionの開発元gitのログが出てきてはふーんな感じに。えぇと、他のリポジトリ管理下のソースを自分のところに関連づけるにはどうするんだ…?

…それとも「導入するextension一覧」的なものを作れたっけ?そっちのほうが前向きか?

あとで調べよう。

あと、同パターンでさくらのVPSで構築していたRadiant CMSサイトをMacbook Airにgit cloneしてきてよぉしこれでローカルでも作業できるZEと思ったら、Macbook AirにMySQLが入っていなかったというオチが。はぅぅ。

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でも読める。

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

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

うーん、ぬかった…。

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

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

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

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

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

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

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

Radiant CMS 0.9.1でextensionをgenerateしようとするとgitを要求された顛末。

コトはさくらのVPSにRadiant CMS環境を、開発環境込みで構築しようとして起こりましたさ。

まずRadiant CMSが動くところまでで四苦八苦し(ハックなだけに)。

なんとか動いたぜー次はexntesion開発環境だぜーと思い、おもむろに script/generate extension xxx としたとき、こんなエラーなぞ。

$ script/generate extension page_category
NOTE: SourceIndex.new(hash) is deprecated; From /usr/lib/ruby/gems/1.8/gems/radiant-0.9.1/vendor/rails/railties/lib/rails/vendor_gem_source_index.rb:100:in `new'.
git version   2>&1:sh: git: command not found

まー、この"NOTE: SourceIndex.new(hash) is deprecated"もなんとかしたいのですけどね…。

で、問題はgit様。まぁこの機会に使い方を覚えるぜ?とインストを試みたところ、

  • CentOSの標準yumではRPMが無い。
  • Git本家に行ってソースコードを落とそうとしたところ、ソースのtar.bz2に何度やっても日を改めてもアクセスできない。
  • しかし「gitがダウンロードできない」的なキーワードでGoogleっても何も出てこない。

今日ようやく適切なキーワードを見つけ、真実に行き当たることができましたさ。

曰く、kernel.orgがクラックされた→gitのソースコードはkernel.org配下にある→ミラーは…無いの?(汗)

で、git無しでRadiant CMSのextensionを開発するための回避方法。つまりgit入れない。

radiant-0.9.1/lib/generators/extension/extension_generator.rb を読んだところ、どうもgit.gemが無かったり、Gitの呼び出しに失敗したときはスルーするように実装してある様子。また、件のgit: command not foundエラーは、require "git"した時点で発生します。

なんでgit.gem入れちゃったんだろう…と思っていたのですが、どうもRadiantをインストールしているどこかの段階で要求されたjewelerが依存していたことが判明。で、jewelerとは何ぞや?と調べなおすと、ソウルジェムもといrubygemの作成支援ツールのご様子。まぁ当面は要らないでしょう。

ということでgem uninstall jeweler gitなう。

結果として、

  1. script/generate extension xxxは成功。
  2. rake spec:extensionも成功。
  3. vendor/extensions/xxx/に移動し、rake specももちろん成功。
  4. spec/models/にtest_spec.rbを作成、中に適当な出力命令を仕込んでrake specしたところ、ちゃんと仕込んだ出力命令が実行されて終了。

ここまで動いたので、たぶん一安心かと。

この後もう一度さくらのVPSを初期化、Rubyのインストールから始めてみて、トラブルなく環境構築までできれば運用フェイズに移行しても良いかな、的な。

だがしかし、よく考えると運用環境に開発環境まで持ち込むのは色々危険だぜ?という真実のコトバは割と早い段階から聞こえてはいたのだけど、そこは取り敢えずスルーいたしたく。

無料ブログはココログ
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