リモートバックアップ afio
バックアップについて、gz圧縮するなら tar は危険とのこと(http://www.linux.or.jp/JF/JFdocs/Backup-mini-HOWTO/tar-gz.html)(危険は良い過ぎか、少し心許ない位いか) afio を使う。afio はアーカイブ先を必ず指定する。それで標準出力にするのちょっと探してしまった。
Special-case archive names:
o Specify - to read or write the standard input or output, respectively.
This disables multi-volume archive handling.
「-」を書けば良いのね。
バックアップを呼ぶ側は OSX Leopord、afio入ってないけどそれは大丈夫。
35 12 * * * ruby -e '`ssh -i /Users/<ユーザ名>/.ssh/<キーファイル名> <リモート機名> "find /home/<対象ディレクトリ> | afio -oZ -" > /Volumes/<ディレクトリ名>/<ファイル名>.#{Time.now.strftime "%Y-%m-%dT%H-%M-%S"}.afz`'
こんな感じで。
ちょっと無理して一行に収めた。「''」と「""」を逆にすると動かなかった、cron実行時のシェルで大丈夫かな。ssh はコマンド文字列を与えると、リモートで実行して標準出力をこっちに返してくれる。それで afioのアーカイブ出力を標準出力にしたかった。これでリモート側に一時ファイルとか作らないで済む。
OSX側には afio 入ってないけど cpio は入ってるし、出来上がったアーカーブファイルを fileコマンドで見てやると「 ASCII cpio archive (pre-SVR4 or odc)」とか言ってる。
SVN と UUID
ちょっと事情があって SVNサーバをリプレースした。特に気にせず更新した。そうしたら、linux方面に置いてる作業コピーでは(切り替え時にユーザ認証訊き直されたりはしたかな)普通に作業できたが、Windows方面の TortoiseSVN からは更新も出来なくなった。ユーザ認証はした。それでリポジトリブラウザも見えた。しかし更新しようとしてもエラーになる
コマンド: 更新 エラー: リポジトリの UUID '<云々>' が、期待される UUID エラー: '<云云>' と一致しません 終了!:
どうもリポジトリの認識コードを違えてしまったようだ。
どうしよう。
日本語のエラーメッセージだとあんまり検索出てこない、Tortoiseクライアントは日本語化してるので英語のエラーメッセージわからない、そこを頑張ってなんとか様子を探る。
I get an error saying "Repository UUID 'XXXXXX' doesn't match expected UUID 'YYYYYY'
Subversion 1.5 clients give this error if the repository uuid changed since creating the working copy. Previous versions of the subversion libraries did not check this value as much as 1.5 clients do.
The suggested workaround is to check out a clean working copy. This should resolve the issue.
1,5になってチェックするようになったということの様だ。とすれば大丈夫だった linux方面では「svn, バージョン 1.4.2 (r22196)」でした、将来バージョンがあがったら同じことが起こるでしょう、その時は何とかしてここの事を憶い出しましょう。
さて、先ほどの FAQ に挙がってる対策は「チェックアウトし直しなさい」なんだかなあ、対策と言えるのか。まあそうしましょうというのだからそうします。
標準エラー出力とパイプ「|&」(zsh)
jpmobile(Git) と Rspec(onRails)
一方で、rake spec に失敗するようになってしまった。
Your RSpec on Rails plugin is incompatible with your installed RSpec. RSpec : 20080526202855 RSpec on Rails : 20080309210001 Make sure your RSpec on Rails plugin is compatible with your RSpec gem. See http://rspec.rubyforge.org/documentation/rails/install.html for details.
うーむ、バージョンいじったつもりは無いけど。一応「script/plugin update」してみるけど変わらず。
いろいろ試行錯誤
RubyGems の方の RSpecもおかしい、spec --version も利かない。インストールしなおしてみる。一度 uninstall して(All)、再び install。
やっぱりエラー。
[2533] spec --version /usr/local/lib/site_ruby/1.8/rubygems.rb:578:in `report_activate_error': Could not find RubyGem hoe (>= 1.8.1) (Gem::LoadError) from /usr/local/lib/site_ruby/1.8/rubygems.rb:134:in `activate' from /usr/local/lib/site_ruby/1.8/rubygems.rb:158:in `activate' from /usr/local/lib/site_ruby/1.8/rubygems.rb:157:in `each' from /usr/local/lib/site_ruby/1.8/rubygems.rb:157:in `activate' from /usr/local/lib/site_ruby/1.8/rubygems.rb:49:in `gem' from /usr/bin/spec:18
「hoe」が無いからって言ってるように見えるが hoe ってなんだ。というかアンインストール前のエラーもこんな感じだったと思う、ちゃんと見てなかったけど。
[2532] gem list -r -d hoeそんな物があるのね。でもなんで依存性で解決されてないんだろう。REMOTE GEMS ***
hoe (1.8.2) Author: Ryan Davis Rubyforge: http://rubyforge.org/projects/seattlerb Homepage: http://rubyforge.org/projects/seattlerb/ Hoe is a simple rake/rubygems helper for project Rakefiles[2535] sudo gem install hoe Successfully installed rubyforge-1.0.1 Successfully installed hoe-1.8.2 2 gems installed Installing ri documentation for rubyforge-1.0.1... Installing ri documentation for hoe-1.8.2... Installing RDoc documentation for rubyforge-1.0.1... Installing RDoc documentation for hoe-1.8.2...もともと --version は効かなかったのね、-v で。[2539] spec -v rspec 1.1.11だからと言って Railsアプリケーション(photo の jpmobileブランチ)での rake spec は失敗、エラーはちょっと変わった。/usr/lib/ruby/gems/1.8/gems/activesupport-2.1.1/lib/active_support/dependencies.rb:276:in `load_missing_constant': uninitialized constant Spec::VERSION::BUILD_TIME_UTC (NameError)プラグインの rspec じゃなくて今入れた RSpec を使っててバージョン詳細(UTC)が見付らないと言ってるとか。プラグイン再インストール
一度プラグインをリムーブしてみる。で、折角だから Git でプラグイン最新版(開発版)、インストールのパターンは「Home · dchelimsky/rspec-rails Wiki · GitHub」より。[2559] script/plugin install git://github.com/dchelimsky/rspec.git removing: /home/hs9587/rails/photo_sid/vendor/plugins/rspec/.git Initialized empty Git repository in /home/hs9587/rails/photo_sid/vendor/plugins/rspec/.git/ remote: Counting objects: 918, done. remote: Compressing objects: 100% (836/836), done. remote: Total 918 (delta 381), reused 299 (delta 39) Receiving objects: 100% (918/918), 404.74 KiB | 49 KiB/s, done. Resolving deltas: 100% (381/381), done.[2561] script/plugin install git://github.com/dchelimsky/rspec-rails.git removing: /home/hs9587/rails/photo_sid/vendor/plugins/rspec-rails/.git Initialized empty Git repository in /home/hs9587/rails/photo_sid/vendor/plugins/rspec-rails/.git/ remote: Counting objects: 438, done. remote: Compressing objects: 100% (374/374), done. remote: Total 438 (delta 165), reused 156 (delta 20) Receiving objects: 100% (438/438), 106.00 KiB | 20 KiB/s, done. Resolving deltas: 100% (165/165), done.おお、ちゃんと rake spec 出来た。しかも、SVN(rspec.rubyforge.org) 方面ので出てた次のエラーも出ない。DEPRECATION WARNING: Inflector is deprecated! Use ActiveSupport::Inflector instead. See http://www.rubyonrails.org/deprecation for details. (called from method_missing at /home/hs9587/rails/photo/vendor/plugins/rspec/lib/spec/matchers/have.rb:20)と言う間に、rspec_on_rails が無くなって rspec-rails になってる。
Debian にて Rails/RMagick(ImageMagick)/PostgreSQL8.3環境
Debian GNU/Linux 4.0r4a (etch)
- CDからの起動
- 日本語、キーボード
- ソフトウェアの選択 tasksel
- ウェブサーバ
- 標準システム
のみ。ネットワーク設定は取敢えずDHCP。
再起動後
- /etc/network/interfaces
- iface eth0 inet static とし、静的IP設定
dns-servers項目も一応書いておくが resolvuconfパッケージはいれないので特に意味は無い
また再起動、この後は遠隔作業(UTF-8(CJK))
PostgreSQL8.3
- /etc/apt/sources.list
- lenny関係追記
- deb http://debian<何処か>/debian/ lenny main
- deb-src http://debian<何処か>/debian/ lenny main
- deb http://security.debian.org/ lenny/updates main
- deb-src http://security.debian.org/ lenny/updates main
- lenny関係追記
- /etc/apt/apt.conf.d/70debconf
- stableピン、あとパッケージ数が多くなるのでキャッシュ拡張
- APT::Default-Release "stable";
- APT::Cache-Limit 16777216;
- stableピン、あとパッケージ数が多くなるのでキャッシュ拡張
そして aptitudeから PostgreSQL (そういえば何故 8.2 は出て来ないのだろう)
- postgresql-8.3
- 依存性警告。
- 最初に提案されるのがポスグレは入れない(UNINSTをKEEP)とかなのは何とも。
- その postgresql-8.3 の UNINSTをKEEPする提案を拒否「r」
- postgresql-client-8.3 の UNINSTをKEEPする提案を拒否「r」
- 改めて aptitudeの提案を募るとその二つを含めて幾つかのインストールとアップグレードでなんとかなりそう
- 何故そこで mysql-common とか思わないでもないが
- その、reject後の二つ目の提案を採用「!」
- 依存性警告。
- postgresql-8.3-plruby
- 依存性警告。
- これも最初の提案は入れない(UNINSTをKEEP)、それを拒否「r」して
- 次の提案を適用「!」
- libruby1.8のバージョンが上がる 1.8.7.72-1 testing <- 1.8.5-4etch2 stable
- Ruby系の他の所との整合はどうなるのかな。
- 依存性警告。
その後 ruby -v してみると、ruby 1.8.7 (2008-08-11 patchlevel 72) [i486-linux] になってる。
- PostgreSQL8.3設定
- /etc/postgresql/8.3/main/postgresql.conf
- listen_addresses = 'localhost,192.168.アドレス'
- 引用符カンマピリオド空白注意
- /etc/postgresql/8.3/main/pg_hba.conf
- /etc/postgresql/8.3/main/postgresql.conf
再起動
- createuser
- 適宜
RubyGems と Rails等
aptitude より、RubyGems、そしてアップデート
- aptitude
- rubygems (0.9.0-5)
- lennyの rubygems(1.2.0-3)用と思しい rubygems1.8, rubygems1.9 も見えるが、lenny用自体は見えない。
- 依存性警告
- postgresql-8.3-plruby の時の libruby1.8 のバージョンアップと整合が取れないみたい。
- 諦める
- rubygems1.8 (1.2.0-3)
- 普通にインストール出来る。
- rubygems (0.9.0-5)
[77] ruby --version ruby 1.8.7 (2008-08-11 patchlevel 72) [i486-linux] [78] gem --version 1.2.0
RubyGemsアップデート、出来なかった。
[79] gem update --system ~ 10:20 0917 ERROR: While executing gem ... (RuntimeError) gem update --system is disabled on Debian. RubyGems can be updated using the official Debian repositories by aptitude or apt-get.
という訳で、RubyForgeから
- sudo wget http://rubyforge.org/frs/download.php/38646/rubygems-1.2.0.tgz
- sudo tar xvzf rubygems-1.2.0.tgz
- cd rubygems-1.2.0
- sudo ruby setup.rb
- やっぱり ri と rdoc の所で時間が掛かる
- sudo ln -s /usr/bin/gem1.8 /usr/bin/gem
[119] gem --version 1.2.0 [120] gem update --system Updating RubyGems Nothing to update
[125] rails --version Rails 2.1.1 [126] spec --version RSpec-1.1.4 (build 20080526202855) - BDD for Ruby http://rspec.rubyforge.org/
RMagick(ImageMagick)
- aptitude
- imagemagick
- libmagick9-dev
- 依存性警告
- 最初の提案でいいや、devちょっととか testingから
- gcc4.1初 め開発環境(コンパイラ関係)も入る
Version: ImageMagick 6.2.4 02/10/07 Q16 http://www.imagemagick.org Copyright: Copyright (C) 1999-2005 ImageMagick Studio LLC Usage: convert [options ...] file [ [options ...] file ...] [options ...] file
RMagick は gem から、aptitudeパッケージにもあるんだけどね
- sudo gem install rmagick
一度エラーになる、Rubyの mkmf が入ってない。
改めて
- sudo gem install rmagick
又失敗、ImageMagickのバージョンがあってない(要 6.30以上、しかし 6.2.4)
Debianのパッケージ検索によると、lenny には 6.3.7 (7:6.3.7.9.dfsg1-2+b2:) がある筈なんだけど、
aptitude画面には出て来ないのでコマンドライン。
「sudo aptitude install imagemagick -t testing」
の前に、さっき入れた etch のはアンインストールしておく
- aptitude
- - imagemagick
- - libmagick9-dev
- 開発系も沢山アンインストールされる
そしてコマンドライン
[154] sudo aptitude install imagemagick libmagick9-dev -t testing <略、gcc は 4.3系> 以下のパッケージが推奨されていますがインストールされません: xml-core 更新: 32 個、新規インストール: 114 個、削除: 0 個、保留: 270 個。 アーカイブ 41.1MB 中 40.9MB を取得する必要があります。展開後に 101MB のディスク領域が新たに消費されます。 続けますか[Y/n/q/?]Y <略>
[145] convert -help H Version: ImageMagick 6.3.7 05/02/08 Q16 http://www.imagemagick.org Copyright: Copyright (C) 1999-2008 ImageMagick Studio LLC Usage: convert [options ...] file [ [options ...] file ...] [options ...] file
入った模様。その後 aptitude画面見ると 7:6.3.7.9 なってる。
改めて
- sudo gem install rmagick
- Successfully installed rmagick-2.6.0
[166] ruby -r rubygems -e 'require "RMagick"; Magick::Magick_version.display' ImageMagick 6.3.7 05/02/08 Q16 http://www.imagemagick.org [167] ruby -r rubygems -e 'require "RMagick"; Magick::Long_version.display' This is RMagick 2.6.0 ($Date: 2008/08/31 20:00:39 $) Copyright (C) 2008 by Timothy P. Hunter Built with ImageMagick 6.3.7 05/02/08 Q16 http://www.imagemagick.org Built for ruby 1.8.7 Web page: http://rmagick.rubyforge.org Email: rmagick@rubyforge.org
漸く入った。
要点整理
- Debian のインストール
- stable と testing の混在環境
- インストール後の細々
- PostgreSQL 8.3 (testing)
- RubyGems は RubyForge からソースダウンロードで
- そして sudo ruby setup.rb
- sudo gem install rails
- sudo gem install rspec
- ImageMagic 6.3以上 (testing)
- aptitude コマンドラインか
- sudo aptitude install imagemagick libmagick9-dev -t testing
- libmagick9-dev 忘れずに
- sudo gem install rmagick
- ruby-dev 必要 (mkmfライブラリ)
含まれる文字列検索で .rb ファイルを
WIndows の検索には、テキストファイルの中身まで見てくれるものがあって重宝している(grep があればもっと良いのに)。でも、「.rb」ファイル(Rubyスクリプト)とかは、テキストファイルと見做されないので検索されない。
どうにかならないものかと
というわけで、レジストリの操作
- regedit 起動
- HKEY_CLASSES_ROOT\.rb
- HKEY_CLASSES_ROOTのしたには他にも山程拡張子が登録されてる
- 新規キー「PersistentHandler」を追加
- その (既定)(データ、(値の設定なし)) を修正
- 値のデータを {5e941d80-bf96-11cd-b579-08002b30bfeb}
- HKEY_CLASSES_ROOT\.rb
- regedit終了
- 再起動
無事検索出来るようになった
因みに WindowsXP Pro SP2 (SP3には出来てない)
aptitude コマンドライン
Debian GNU/Linux のパッケージ管理ツールは aptitude。対話環境だけでなく、コマンドラインからもいろいろ出来る模様。
http://dolphin.c.u-tokyo.ac.jp/~nori1/aptitude-ja/ch01s02.htmlとか、http://dolphin.c.u-tokyo.ac.jp/~nori1/aptitude-ja/rn01re01.html。
例えばこんな感じ
インストール済みパッケージを検索
aptitude search ~i<パッケージ名(の一部)>
その詳しい表示(パッケージ名、インストールしてあるもののバージョン、状態、簡単な説明)
aptitude search ~i<パッケージ名(の一部)> -F %?p%v#%C#-%d
もっと詳しく
aptitude show ~i<パッケージ名(の一部)>