Minnu's filer2を入れてみる
Linuxで作業する時、コマンドを一々叩き込むのは面倒なので、FDCloneを使っている訳。
で、他に何か面白いものないかな?と思っていたら、あった。
という訳で、Minnu's filer2 をインスコしてみるテスト。
the Minnu's Filer2
http://www.geocities.jp/daisuke530221jp/
どうも Ruby が必要らしい。(いらんのかな?)
まず、Cygwinでコンパイルできるかテスト。
…ダメっぽいですな。2chのスレでも作者さん?がダメとか言っているのでダメですわ。
次、Linux。RH9でテスト。
まぁ、その前に、RH9に Ruby最新版(1.8.2)を入れる事にした。
オブジェクト指向言語Ruby
http://www.ruby-lang.org/ja/
から、
ftp://ftp.ruby-lang.org/pub/ruby/ruby-1.8.2.tar.gz
をDLし、
Ruby インストールガイド - UNIX全般
http://www.ruby-lang.org/ja/install.cgi?cmd=view;name=UNIX%C1%B4%C8%CC
を参考にインストール。
何かうまくいったっぽい。
[root@wacky ruby-1.8.2]# ruby -v ruby 1.8.2 (2004-12-25) [i686-linux]
次、オフィシャルサイトから http://www.geocities.jp/daisuke530221jp/mfiler2.tgz をDL。
index.html を見る限り、1.27 っぽいな。
$ make ... g++ -c main.cpp -I./ruby-1.8.2 main.cpp: function 内の `bool match()': main.cpp:472: `tolower' undeclared (first use this function) main.cpp:472: (未宣言変数については、それが関数内で最初に現われた時だけ報告されます。) make: *** [bin/main.o] エラー 1
えっと、main.cppに、"#include
とりあえず、ビルドできた。
…う〜む、FDとコマンド操作体系が かなり違うんですなぁ。
DamageControl を入れてみよう
ぼ〜っとネットを回っていたら、DamegeControl ってソフトを知る。
DamageControl_ja Wiki - FrontPage
http://hiki.prebyte.jp/DamageControl/
DamageControl? - Home
http://damagecontrol.codehaus.org/
コードをコミットしたら、リアルタイムでビルドして結果を開発者に通知するツールって事か?
まぁ、よくわからんのでインスコしてみよう。
CI / vimrc diary
http://vimrc.hp.infoseek.co.jp/diary/cat_ci.html
を参考に、Cygwinに突っ込んでみよう。
現在のCygwinには、Rubyの最新版があるので、RubyGem(http://docs.rubygems.org/)から、rubygems-0.8.11.tgz をDLする。
$ ruby -v ruby 1.8.2 (2004-12-25) [i386-cygwin] $ tar xzvf rubygems-0.8.11.tgz ... $ cd rubygems-0.8.11 $ ls ChangeLog Releases doc/ lib/ redist/ test/ README TODO examples/ pkgs/ scripts/ Rakefile bin/ gemspecs/ post-install.rb setup.rb $ ruby setup.rb ---> bin <--- bin ---> lib ---> lib/rubygems <--- lib/rubygems <--- lib ---> bin adjusting shebang: gem_mirror <--- bin ---> lib ---> lib/rubygems <--- lib/rubygems <--- lib rm -f InstalledFiles ---> bin mkdir -p /usr/bin/ install gem /usr/bin/ install gemwhich /usr/bin/ install gem_mirror /usr/bin/ install gem_server /usr/bin/ install generate_yaml_index.rb /usr/bin/ install update_rubygems /usr/bin/ <--- bin ---> lib mkdir -p /usr/lib/ruby/site_ruby/1.8/ install gemconfigure.rb /usr/lib/ruby/site_ruby/1.8/ install rubygems.rb /usr/lib/ruby/site_ruby/1.8/ install ubygems.rb /usr/lib/ruby/site_ruby/1.8/ ---> lib/rubygems mkdir -p /usr/lib/ruby/site_ruby/1.8/rubygems install builder.rb /usr/lib/ruby/site_ruby/1.8/rubygems install cmd_manager.rb /usr/lib/ruby/site_ruby/1.8/rubygems install command.rb /usr/lib/ruby/site_ruby/1.8/rubygems install config_file.rb /usr/lib/ruby/site_ruby/1.8/rubygems install custom_require.rb /usr/lib/ruby/site_ruby/1.8/rubygems install dependency_list.rb /usr/lib/ruby/site_ruby/1.8/rubygems install deployment.rb /usr/lib/ruby/site_ruby/1.8/rubygems install doc_manager.rb /usr/lib/ruby/site_ruby/1.8/rubygems install format.rb /usr/lib/ruby/site_ruby/1.8/rubygems install gem_commands.rb /usr/lib/ruby/site_ruby/1.8/rubygems install gem_openssl.rb /usr/lib/ruby/site_ruby/1.8/rubygems install gem_runner.rb /usr/lib/ruby/site_ruby/1.8/rubygems install installer.rb /usr/lib/ruby/site_ruby/1.8/rubygems install loadpath_manager.rb /usr/lib/ruby/site_ruby/1.8/rubygems install old_format.rb /usr/lib/ruby/site_ruby/1.8/rubygems install open-uri.rb /usr/lib/ruby/site_ruby/1.8/rubygems install package.rb /usr/lib/ruby/site_ruby/1.8/rubygems install remote_installer.rb /usr/lib/ruby/site_ruby/1.8/rubygems install rubygems_version.rb /usr/lib/ruby/site_ruby/1.8/rubygems install security.rb /usr/lib/ruby/site_ruby/1.8/rubygems install source_index.rb /usr/lib/ruby/site_ruby/1.8/rubygems install specification.rb /usr/lib/ruby/site_ruby/1.8/rubygems install timer.rb /usr/lib/ruby/site_ruby/1.8/rubygems install user_interaction.rb /usr/lib/ruby/site_ruby/1.8/rubygems install validator.rb /usr/lib/ruby/site_ruby/1.8/rubygems install version.rb /usr/lib/ruby/site_ruby/1.8/rubygems <--- lib/rubygems <--- lib As of RubyGems 0.8.0, library stubs are no longer needed. Searching $LOAD_PATH for stubs to optionally delete (may take a while)... ...done. No library stubs found. Successfully built RubyGem Name: sources Version: 0.0.1 File: sources-0.0.1.gem
何か、あっけなく入りましたな。
…まぁ、いいや。ってんで、DamageControl を入れてみる。
$ gem install damagecontrol Attempting local installation of 'damagecontrol' Local gem file not found: damagecontrol*.gem Attempting remote installation of 'damagecontrol' Updating Gem source index for: http://gems.rubyforge.org Install required dependency rscm? [Yn] y Install required dependency rails? [Yn] y Install required dependency rake? [Yn] y Install required dependency activesupport? [Yn] y Install required dependency activerecord? [Yn] y Install required dependency actionpack? [Yn] y Install required dependency actionmailer? [Yn] y Install required dependency actionwebservice? [Yn] y Install required dependency log4r? [Yn] y Install required dependency needle? [Yn] y Install required dependency jabber4r? [Yn] y Install required dependency ruby-growl? [Yn] y Successfully installed damagecontrol-0.5.0.1404 Successfully installed rscm-0.3.0 Successfully installed rails-0.13.1 Successfully installed rake-0.5.4 Successfully installed activesupport-1.1.1 Successfully installed activerecord-1.11.1 Successfully installed actionpack-1.9.1 Successfully installed actionmailer-1.0.1 Successfully installed actionwebservice-0.8.1 Successfully installed log4r-1.0.5 Successfully installed needle-1.2.0 Successfully installed jabber4r-0.7.0 Successfully installed ruby-growl-1.0.0 Installing RDoc documentation for damagecontrol-0.5.0.1404... Installing RDoc documentation for rscm-0.3.0... Installing RDoc documentation for rake-0.5.4... Installing RDoc documentation for activesupport-1.1.1... Installing RDoc documentation for activerecord-1.11.1... Installing RDoc documentation for actionpack-1.9.1... Installing RDoc documentation for actionmailer-1.0.1... Installing RDoc documentation for actionwebservice-0.8.1... Installing RDoc documentation for log4r-1.0.5... src/log4r/base.rb:2:7: Unrecognized directive 'nodoc' src/log4r/config.rb:4:0: Unrecognized directive 'nodoc' src/log4r/lib/drbloader.rb:2:6: Unrecognized directive 'nodoc' src/log4r/lib/xmlloader.rb:2:6: Unrecognized directive 'nodoc' src/log4r/logevent.rb:2:6: Unrecognized directive 'nodoc' src/log4r/loggerfactory.rb:4:0: Unrecognized directive 'nodoc' src/log4r/outputter/consoleoutputters.rb:2:7: Unrecognized directive 'nodoc' src/log4r/outputter/fileoutputter.rb:4:0: Unrecognized directive 'nodoc' src/log4r/outputter/iooutputter.rb:2:7: Unrecognized directive 'nodoc' src/log4r/outputter/outputterfactory.rb:4:0: Unrecognized directive 'nodoc' src/log4r/outputter/remoteoutputter.rb:2:7: Unrecognized directive 'nodoc' src/log4r/outputter/rollingfileoutputter.rb:5:0: Unrecognized directive 'nodoc' src/log4r/outputter/staticoutputter.rb:2:6: Unrecognized directive 'nodoc' src/log4r/repository.rb:4:0: Unrecognized directive 'nodoc' src/log4r/staticlogger.rb:2:6: Unrecognized directive 'nodoc' Installing RDoc documentation for needle-1.2.0... Installing RDoc documentation for jabber4r-0.7.0... Installing RDoc documentation for ruby-growl-1.0.0...
PerlのCPAN並みの簡単さですな。
という訳で、動かしてみる。
$ nohup damagecontrol & [1] 204 $ nohup: appending output to `nohup.out' [1]+ Exit 1 nohup damagecontrol $ damagecontrol-webrick -d /usr/lib/ruby/gems/1.8/gems/rscm-0.3.0/lib/rscm/path_converter.rb:5: uninitializ ed constant RSCM (NameError) from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:21:in `requi re__' from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:21:in `requi re' from /usr/lib/ruby/gems/1.8/gems/rscm-0.3.0/lib/rscm.rb:2 from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:21:in `requi re__' from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:21:in `requi re' from /usr/lib/ruby/site_ruby/1.8/rubygems.rb:182:in `activate' from /usr/lib/ruby/site_ruby/1.8/rubygems.rb:181:in `each' from /usr/lib/ruby/site_ruby/1.8/rubygems.rb:181:in `activate' from /usr/lib/ruby/site_ruby/1.8/rubygems.rb:167:in `activate' from /usr/lib/ruby/site_ruby/1.8/rubygems.rb:166:in `each' from /usr/lib/ruby/site_ruby/1.8/rubygems.rb:166:in `activate' from /usr/lib/ruby/site_ruby/1.8/rubygems.rb:37:in `require_gem_with_opt ions' from /usr/lib/ruby/site_ruby/1.8/rubygems.rb:31:in `require_gem' from /usr/bin/damagecontrol-webrick:17
…あれぇ?
まぁ、多分、何も設定してないせいだろうなぁ。
DamageControl Developer Guide |
4.1 uninitialized constant Project (NameError)
http://hieraki.lavalamp.ca/read/chapter/23#page37
あった、あった。
やっぱ、何か設定せんとNGっぽいですな。
暫くぐぐるってたら、どうもRSCM って奴の設定をしなければNGだって事が、何となくわかってきた。
RSCM - Ruby Source Control Management API
http://rscm.rubyforge.org/
何が悪いのかなぁ?と思って、 http://rscm.rubyforge.org/files/README.html のサンプルコードを実施してみる。
require 'rscm' scm = RSCM::Subversion.new("svn://some.server/some/path/trunk", "trunk") scm.checkout("mycheckout") changesets = scm.changesets("mycheckout", Time.utc(2004, 11, 10, 12, 34, 22)) changesets.each do |changeset| puts changeset end
実行。
$ ruby test.rb test.rb:3:in `require': No such file to load -- rscm (LoadError) from test.rb:3
ダメじゃん。
…何か、rscm へのrequireがうまくいってない気がしてきた。
$ ruby -e 'puts $:' /usr/lib/ruby/site_ruby/1.8 /usr/lib/ruby/site_ruby/1.8/i386-cygwin /usr/lib/ruby/site_ruby /usr/lib/ruby/1.8 /usr/lib/ruby/1.8/i386-cygwin .
暫くぐぐるってたら、"require 'rubygems'が要る気がしてきた。
#!/bin/env ruby require 'rubygems' require 'rscm'
再実行。
$ ruby test.rb /usr/lib/ruby/gems/1.8/gems/rscm-0.3.0/lib/rscm/path_converter.rb:5: uninitializ ed constant RSCM (NameError) from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:21:in `requi re__' from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:21:in `requi re' from /usr/lib/ruby/gems/1.8/gems/rscm-0.3.0/lib/rscm.rb:2 from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:21:in `requi re__' from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:21:in `requi re' from /usr/lib/ruby/site_ruby/1.8/rubygems.rb:182:in `activate' from /usr/lib/ruby/site_ruby/1.8/rubygems.rb:181:in `each' from /usr/lib/ruby/site_ruby/1.8/rubygems.rb:181:in `activate' from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:26:in `requi re' from test.rb:4
ふむ、requireは うまく行くようになった。
ただ、RSCMがNGって状況は変化なし。
も〜、書き換えちゃう。
/usr/lib/ruby/gems/1.8/gems/rscm-0.3.0/lib/rscm/path_convert.rb: #WINDOWS = WIN32 || CYGWIN ↓ WINDOWS = WIN32
とすると、
$ ruby test.rb /usr/lib/ruby/1.8/fileutils.rb:841:in `fu_list': undefined method `to_str' for n il:NilClass (NoMethodError) from /usr/lib/ruby/1.8/fileutils.rb:841:in `map' from /usr/lib/ruby/1.8/fileutils.rb:841:in `fu_list' from /usr/lib/ruby/1.8/fileutils.rb:173:in `mkdir_p' from /usr/lib/ruby/gems/1.8/gems/rscm-0.3.0/lib/rscm/scm/subversion.rb:5 3:in `checkout' from test.rb:8
と変換した。ふむ。
後、少しかな?
IPythonを使う
ネットを、ぼ〜っと眺めていると、以下のネタがあり、
Rubyist Magazine - Rubyist のための他言語探訪 【第 1 回】 Python
http://jp.rubyist.net/magazine/?0008-Legwork
で、Python関係の方のトラックバックで、IPython がいいよってネタ振りがあった。
Python for Cygwinに添付されているIDLEが X Window 上でないと動かないのと、コード補完してくれないので むぅと思っていたので、インストールしてみる事にした。
オフィシャルは、↓ここ。
IPython - An enhanced Interactive Python
http://ipython.scipy.org/
何ぞ、readline も必要っぽいので、それもDLしてくる。
(後、PyWin32とCTypesもね。両方共、前回入れておいたので、今回は readlineだけ入れた)
Windows instructions
http://ipython.scipy.org/doc/manual/node2.html#sub:Under-Windows
SourceForge.net: Project Info - UNC Python Tools
http://sourceforge.net/projects/uncpythontools
IPython for Windows
$ python -V Python 2.3.4
以下のファイルを次々実行。
- readline-1.12.win32.exe
- ipython-0.6.15.win32.exe
インストールすると、WindowsのStartメニューにIPythonが追加された。
実行すると、↓こんな感じ。おぉ!
Python 2.3.4 (#53, Sep 20 2004, 11:44:16) [MSC v.1200 32 bit (Intel)] Type "copyright", "credits" or "license" for more information. IPython 0.6.15 -- An enhanced Interactive Python. ? -> Introduction to IPython's features. %magic -> Information about IPython's 'magic' % functions. help -> Python's own help system. object? -> Details about 'object'. ?object also works, ?? prints more. In [1]:
適当にモジュール名とか突っ込んで、"."を入れて TAB キーを押すと、補完してくれるよ!
In [3]: sys. sys.__displayhook__ sys.exc_info sys.modules sys.__doc__ sys.exc_type sys.path sys.__excepthook__ sys.excepthook sys.path_hooks sys.__name__ sys.exec_prefix sys.path_importer_cache sys.__stderr__ sys.executable sys.platform sys.__stdin__ sys.exit sys.prefix sys.__stdout__ sys.exitfunc sys.setcheckinterval sys._getframe sys.getcheckinterval sys.setprofile sys.api_version sys.getdefaultencoding sys.setrecursionlimit sys.argv sys.getfilesystemencoding sys.settrace sys.builtin_module_names sys.getrecursionlimit sys.stderr sys.byteorder sys.getrefcount sys.stdin sys.call_tracing sys.getwindowsversion sys.stdout sys.callstats sys.hexversion sys.version sys.copyright sys.ipcompleter sys.version_info sys.displayhook sys.maxint sys.warnoptions sys.dllhandle sys.maxunicode sys.winver sys.exc_clear sys.meta_path sys.__class__
IPython for Cygwin
次は、IPython for Cygwin版を入れよう。
以下のファイルをDLしておく。
- ipython-0.6.15.tar.gz
- readline-1.12.zip
$ python -V Python 2.4.1 $ unzip readline-1.12.zip Archive: readline-1.12.zip inflating: readline-1.12/PKG-INFO inflating: readline-1.12/setup.py inflating: readline-1.12/readline/Console.py inflating: readline-1.12/readline/keysyms.py inflating: readline-1.12/readline/PyReadline.py inflating: readline-1.12/readline/__init__.py $ cd readline-1.12 $ python setup.py install running install running build running build_py creating build creating build/lib creating build/lib/readline copying readline/Console.py -> build/lib/readline copying readline/keysyms.py -> build/lib/readline copying readline/PyReadline.py -> build/lib/readline copying readline/__init__.py -> build/lib/readline running install_lib creating /usr/lib/python2.4/site-packages/readline copying build/lib/readline/Console.py -> /usr/lib/python2.4/site-packages/readli ne copying build/lib/readline/keysyms.py -> /usr/lib/python2.4/site-packages/readli ne copying build/lib/readline/PyReadline.py -> /usr/lib/python2.4/site-packages/rea dline copying build/lib/readline/__init__.py -> /usr/lib/python2.4/site-packages/readl ine byte-compiling /usr/lib/python2.4/site-packages/readline/Console.py to Console.p yc byte-compiling /usr/lib/python2.4/site-packages/readline/keysyms.py to keysyms.p yc byte-compiling /usr/lib/python2.4/site-packages/readline/PyReadline.py to PyRead line.pyc byte-compiling /usr/lib/python2.4/site-packages/readline/__init__.py to __init__ .pyc $ cd .. $ tar xzvf ipython-0.6.15.tar.gz ipython-0.6.15/ ipython-0.6.15/IPython/ ipython-0.6.15/IPython/Extensions/ ... $ cd ipython-0.6.15 $ python setup.py install running install running build running build_py creating build creating build/lib creating build/lib/IPython ...
これでインスコ終わり。
$ ipython ********************************************************************** Welcome to IPython. I will try to create a personal configuration directory where you can customize many aspects of IPython's functionality in: /home/wacky/.ipython Successful installation! Please read the sections 'Initial Configuration' and 'Quick Tips' in the IPython manual (there are both HTML and PDF versions supplied with the distribution) to make sure that your system environment is properly configured to take advantage of IPython's features. Please press <RETURN> to start IPython. ********************************************************************** Python 2.4.1 (#1, May 27 2005, 18:02:40) Type "copyright", "credits" or "license" for more information. IPython 0.6.15 -- An enhanced Interactive Python. ? -> Introduction to IPython's features. %magic -> Information about IPython's 'magic' % functions. help -> Python's own help system. object? -> Details about 'object'. ?object also works, ?? prints more. In [1]:
うひょ、動いた。
…ところで、コード補完させると、↓こんな感じに、楽しい表示になっちゃう。
In [2]: sys.s.ve sys.version sys.version_info In [2]: sys.versionon Out[2]: '2.4.1 (#1, May 27 2005, 18:02:40) \n[GCC 3.3.3 (cygwin special)]'
まぁ、とりあえず動作に支障が無いので、放っておいてるが。