[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[dennou-ruby:001266] setup.rb
神代様:
別件(気象庁データ公開関係)で、必要なソフトがなければダウンロー
ドしてインストールするスクリプトを作りましたので、参考までにお送
りします。一括セットアップスクリプト作成に役だてばということで。
堀之内
> jmadata-usersの皆様:
>
> MSM及びRSMのデータ(in「国内2進形式」)を読むためのソフトを作り
> ました。気象庁の豊田さんにアドバイスを頂きましたので、記して感謝
> 致します。
>
> Rubyという言語で書かれたライブラリーとなっており、そのアプリケー
> ションとして、ファイルの内容表示や NetCDF 形式への変換を行うコマ
> ンドがあります。まだまだ改善すべき点は多くありますが、現状でも一
> 応使用に耐えると思いますので、公開します。(改善のためのパッチを
> 歓迎します。)
>
> 必要なソフトは、
>
> (1) Ruby 1.6.5 以降 (http://www.ruby-lang.org/ja/)
> (2) NetCDF 3 (http://www.unidata.ucar.edu/packages/netcdf/)
> (3) 本ソフトを含む幾つかのライブラリー
>
> です。(1), (2) をまずインストールすれば、(3)は添付した seteup.rb
> を適当な作業ディレクトリーで実行すればダウンロード&インストール
> できます。(2)のNetCDFは大元の C 版だけがインストールできていれば
> 充分です。なお、(3) の中身は以下の通りです。最後の2つが今回作っ
> たものです。
>
> NArray http://www.ir.isas.ac.jp/~masa/ruby/dist/narray-0.5.6p2.tar.gz,
> RubyNetCDF http://ruby.gfd-dennou.org/products/ruby-netcdf/ruby-netcdf-0.3.5.tar.gz,
> MultiBitNums http://ruby.gfd-dennou.org/products/multibitnums/multibitnums-0.1.1.tar.gz,
> gpv http://ruby.gfd-dennou.org/products/gpv/gpv-0.1.1.tar.gz
>
> setup.rb (テキストファイル, Rubyプログラム) は UNIX を前提にして
> います。実行は、
>
> % ruby setup.rb
>
> とするか、
>
> % chmod +x setup.rb
> % setup.rb
>
> です。
>
> ---
> 堀之内 武 horinout@xxxxxx
> 京都大学宙空電波科学研究センター 611-0011 宇治市五ヶ庄
#!/usr/bin/env ruby
URL = {
'NArray'=> 'http://www.ir.isas.ac.jp/~masa/ruby/dist/narray-0.5.6p2.tar.gz',
'RubyNetCDF' => 'http://ruby.gfd-dennou.org/products/ruby-netcdf/ruby-netcdf-0.3.5.tar.gz',
'MultiBitNums' => 'http://ruby.gfd-dennou.org/products/multibitnums/multibitnums-0.1.1.tar.gz',
'gpv' => 'http://ruby.gfd-dennou.org/products/gpv/gpv-0.1.1.tar.gz'
}
TOP = {
'NArray' => 'narray-0.5.6p2',
'RubyNetCDF' => 'ruby-netcdf-0.3.5',
'MultiBitNums' => 'multibitnums-0.1.1',
'gpv' => 'gpv-0.1.1'
}
REQUIRE = {
'NArray' => 'narray',
'RubyNetCDF' => 'numru/netcdf',
'MultiBitNums' => 'numru/multibitnums',
'gpv' => 'numru/gpv'
}
INSTALL = {
'NArray' => "tar xvzf #{TOP['NArray']}.tar.gz && cd #{TOP['NArray']} && ruby extconf.rb && make && make site-install",
'RubyNetCDF' => "tar xvzf #{TOP['RubyNetCDF']}.tar.gz && cd #{TOP['RubyNetCDF']} && ruby extconf.rb && make && make site-install",
'MultiBitNums' => "tar xvzf #{TOP['MultiBitNums']}.tar.gz && cd #{TOP['MultiBitNums']} && ruby extconf.rb && make && make site-install",
'gpv' => "tar xvzf #{TOP['gpv']}.tar.gz && cd #{TOP['gpv']} && ruby install.rb"
}
URL.each_key do |soft|
begin
print "checking for #{soft}...\n"
require REQUIRE[soft]
print " --> found\n"
rescue LoadError
print " --> not found. ",
"Would you like to Download and install it? (y, n); \n"
ans = gets()
if ( ans =~ /^y/ )
print "downloading #{URL[soft]} with wget ...\n"
stat = system("wget #{URL[soft]}")
raise 'Could not download ' + URL[soft] if (!stat)
print "installing #{soft}...\n",INSTALL[soft],"\n"
stat = system(INSTALL[soft])
raise 'Installation failed: ' + soft if (!stat)
else
raise "You need to install it\n"
end
end
end