1 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 00:26:33 ] プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。 【Ruby1.9 は不安定な開発版であり初心者には全く向きません】 【最新安定版の Ruby1.8.6 の使用を強くお勧めします】 関連スレやURLは>>2-8 あたりを見てください。Ruby on Railsの質問はRailsスレへ。 ■質問する人へ 質問する前に次の3つをすること。ここで回答を待つよりそのほうが早い。 ・モジュール名やエラーメッセージでググる ・マニュアルで引っかかったクラスの記述を探す www.ruby-lang.org/ja/man/ ・FAQを一応読む www.ruby-lang.org/ja/man/?cmd=view;name=Ruby+FAQ 質問には以下を書くこと。へたくそな質問は再提出を要求される。 ・詳しい内容(「動きません」「うまくできません」では回答しようがない) ・エラーメッセージ(自力で訳さずなるべくそのままで) ・実行環境(OS名、Rubyのバージョン(ruby -v でわかる)) ・最終的にやりたいこと(もっとよい方法がある場合が多いので) 回答してくれた人には「ありがとう」のひとことをいってあげて。 ■回答する人へ 相手は初心者、根気よく育てるつもりで。質問がへたくそなのも大目にみてあげる。 それができないならこないこと(だって初心者スレだもん)。 ・既出な質問やFAQは「XXXを読め」でいいので、叩かない&怖がらせない。 ・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。 ・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。
710 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 06:05:04 ] 大丈夫
711 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 06:11:40 ] >>686 普通に喜ばれたけどw
712 名前:700 [2008/05/31(土) 06:33:23 ] >>710 ありがとうございます。 では、ちょっとずれてくるのですが、>>705 の > ruby -Ku と $KCODE='u' はカレーとウンコくらい違う というのはどういう違いなのでしょうか? どこかに簡単な解説などないでしょうか?
713 名前:700 [2008/05/31(土) 06:34:05 ] いえ、気になったというより、変なところでハマりたくないので知っておきたい、 といった理由からです。
714 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 09:00:31 ] >>709 大丈夫じゃない場合がある リファレンスマニュアルにも記述があるけど $KCODEの指定が効いてくるのは、$KCODEへの代入が実行された後なので 最初に読むファイルに日本語が含まれていると、パースエラーになることがある 詳しくはFAQの10.2 ttp://www.ruby-lang.org/ja/man/html/FAQ_C6FCCBDCB8ECA4CEBCE8A4EAB0B7A4A4.html
715 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 13:57:32 ] 問題になることがあるのはShift_JISの場合。 EUC-JPはUTF-8にはそういう性質はない。 -Kを指定してあれば日本語を識別子に使うこともできるが$KCODEでは無理 という違いもあるが、それは正直お薦めしない。 ちなみに-Kは1.9でもきくが、マジックコメントのほうが推奨。 #!/usr/local/bin/ruby # -*- encoding: ut-f8 -*-
716 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 20:25:40 ] #!/usr/local/bin/ruby # -*- coding: utf-8 -*-
717 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 23:56:12 ] HOME['ENV'] って何だよ・・・
718 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 00:12:49 ] >>717 誰か間違えてそうでありそうで無いな
719 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 00:17:31 ] 図書館にこの本があったので借りてみて一通り目を通してみました www.amazon.co.jp/dp/4894714531 で、次に何かRuby買ってみようと探してみて www.amazon.co.jp/dp/4274066428/ これが本屋さんあったけど・・・ 上のと同じ本?
720 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 01:07:13 ] 今なら下がお勧め
721 名前:デフォルトの名無しさん [2008/06/01(日) 01:28:02 ] mod_rubyを動かしたいんですが以下のようなエラーが出て動きません。 どうすれば動くようになりますか? apache -t apache: Syntax error on line ??? of C:/〜〜/httpd.conf: Cannot load C:/〜〜/modules/mod_ruby.so into server: \x8ew\x92\xe8\x82\xb3\x82\xea\ x82\xbd\x83v\x83\x8d\x83V\x81[\x83W\x83\x83\x82\xaa\x8c\xa9\x82\xc2\x82\xa9\x82\ xe8\x82\xdc\x82\xb9\x82\xf1\x81B 環境 Windows Vista Apache2.2.8
722 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 09:52:04 ] >>721 あなたの頭とOSが腐ってるのが原因ですね。 頭のほうはもう手遅れなので、OSの方をdebianなどに変えてmod_rubyを apt-get一発でインストールすればどんな馬鹿でも使えるようになります。
723 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 10:07:23 ] >>722 〃∩ ∧_∧ ⊂⌒( ・ω・) はいはいわろすわろす `ヽ_っ⌒/⌒c ⌒ ⌒
724 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 12:35:47 ] 文字化けしてるが、Shift_JISで 「指定されたプロシージャが見つかりません。」 と書いてあるようだな。 mod_ruby 指定されたプロシージャが見つかりません。 でぐぐるとわかるかもよ。
725 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 14:24:14 ] >>724 www.google.com/search?num=50&hl=ja&q=mod_ruby+%E6%8C%87%E5%AE%9A%E3%81%95%E3%82%8C%E3%81%9F%E3%83%97%E3%83%AD%E3%82%B7%E3%83%BC%E3%82%B8%E3%83%A3%E3%81%8C%E8%A6%8B%E3%81%A4%E3%81%8B%E3%82%8A%E3%81%BE%E3%81%9B%E3%82%93&lr=lang_ja ググったけどわかりません
726 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 16:52:27 ] 現在実行しているRubyファイル自身のpathを取得できる特殊変数(?)というのはありますか? 宜しくお願いします!
727 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 19:45:03 ] 事故解決しました __FILE__
728 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 21:02:52 ] Rubyを使いたいのだけれど使う機会が無い。どう転べばRubyを日常使用する変人になれるのか。最初にそれを説かなければ信者は増えないだろうと思う。
729 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 21:08:17 ] >>728 君には必要ないよ 必要のないものに固執する必要はない 楽になるといい
730 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 21:34:52 ] >>728 Project Euler とかお勧め。
731 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 22:17:55 ] >>730 Ruby関係ないというかRubyでやるくらいならSchemeかPythonかC++でやる。
732 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 23:30:06 ] 目的を達成するのに一番便利な言語を選べばいいじゃん。 別にこだわりはないな。
733 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 00:15:09 ] rails使えば
734 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 01:05:15 ] まあ、みんながみんなプログラマーになる必要はないわな。 Rubyに早くなれたかったらUnixかLinux使いえばいい。シェル操作が日常に なれば、ごちゃごちゃしたものをスクリプトで一気になにかするのが快感になるはず。
735 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 02:29:00 ] 俺は cmd.exe を使うようになってRubyの使用頻度が格段に増えた しょぼいコマンドプロンプトの補助としては優秀
736 名前:デフォルトの名無しさん [2008/06/07(土) 13:07:20 ] 俺は、バッチファイルで書くのが嫌になったころからだな。 unixではシェル書くのがいやになったころから
737 名前:デフォルトの名無しさん [2008/06/07(土) 13:08:08 ] シェルじゃねえ、シェルスクリプトだ。すまそ。
738 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 13:12:37 ] rubyの正規表現でhtmlファイルの中から<html>の様に<>で囲まれた 文字列を取り出すにはどのようにすれば良いですか ^<.*>$まではわかったのですが <br>のように直前に文字列が存在するタグはとりだせないのです f = open(ARGV[0].to_s) while line = f.gets if /^<.*>$/ =~ line puts line end end f.close よろしくお願いします。
739 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 13:15:03 ] ^や$(行頭と行末の位置にマッチ)を付けない。 さらに、.*だと欲張りマッチ(可能な限り長い対象にマッチ)になるので、 <h1>....</h1>に遭遇したときに全体にマッチしてしまう。 これを避けるためには、?を後ろに付けた .*?(欲張りでないマッチ)を使う。
740 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 13:18:05 ] >>739 ありがとうございます。 しかもアドバイスまで ありがとうございます
741 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 13:20:11 ] >>739 ああ〜テストしてみた所 a<html> とかが表示されてしまいました こうではなくて a<html>とかの行からも <htm>だけきりだしたいのですが・・・・
742 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 13:28:58 ] 正規表現の中に()を書くと、括弧の内容を後で利用できる。 /(<.*?>)/ でマッチした後、$1というグローバル変数に<html>とか入ってるはず。
743 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 13:32:35 ] 実用の上で正しい回答は「自分でコード書かずにhtmlsplit使え」 もちろん学習用としてなら意味はあるけど >>741 行全体(line)をそのまま表示しようとしているのが原因 マッチした部分($&)だけを表示させるようにするか もしくは742の言うとおり、括弧と$1を使う必要がある さらに言うと、そのスクリプトだと一行で一つのhtmlタグしか切り出せない 全てのhtmlタグを切り出すには、もう少し変更が必要
744 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 13:34:16 ] マッチするかどうかを試験する、ということと マッチした部分を取り出す、ということは違う 方法はいくつかあるが、概念的にめんどくさくないのは文字列に対してscanを使うこと "a<html>b".scan(/<.+?>/){|match| p match } 結果: "<html>"
745 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 13:41:27 ] >>743-744 まとめるとどのようになるのでしょうか 最終的には htmlファイルを指定すると そのページ内に存在するファイルを 音楽、動画、画像などに仕分けして そのURLをファイルに書き込んでくれてwgetなどで簡単にダウンロードできるようにしたいんです。
746 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 13:46:14 ] … rubygem の mechanize 使え <a href> で表記されたリンクをすべて抽出してアクセスして適当に保存までしてくれる ネット上にあるページではないローカルにあるHTMLファイルを読み込まなければならない場合若干面倒だが
747 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 13:47:58 ] とりあえず地道にやってみるならリンクされてるAタグでのhref="〜"部分を切り出して リンク咲の拡張子なりで分類するとか
748 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 13:52:15 ] だから目的のものが出るまでscan繰り返せばいいじゃんよ scanのマニュアルとか読んでくれたか? 文字列.scan(/タグ抽出/){|タグ変数1| タグ変数1.scan(/httpで始まる半角文字列/){|URLっぽいもの| 動画URL一覧配列.push(URLっぽいもの) if URLっぽいもの =~ /動画拡張子/ 画像URL一覧配列.push(URLっぽいもの) if URLっぽいもの =~ /画像拡張子/ 音楽URL一覧配列.push(URLっぽいもの) if URLっぽいもの =~ /音楽拡張子/ } } File.open('動画.txt','w'){|f| f.puts 動画URL一覧配列} File.open('画像.txt','w'){|f| f.puts 画像URL一覧配列} File.open('音楽.txt','w'){|f| f.puts 音楽URL一覧配列}
749 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 13:55:11 ] >>746 そういうのが有ったんですね・・・・ なんだか自分が最初のアイデアって今では出せないんじゃないかって 最近思ってるんですよね。 何かアドバイスになる言葉を教えてください。 小学生の頃からプログラミングしていた根っからのプログラミング好きに 慰めの言葉を
750 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 13:55:19 ] hpricotだとこうか。 require 'hpricot' require 'open-uri' doc = Hpricot(open(URL) {|o| o.read}) puts (doc / 'a').map {|a| a['href']}
751 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 14:01:18 ] とりあえずは、初心者スレなので正規表現でscanするのが妥当かねえ なんとなくだが、外部ライブラリを利用するための基礎的知識もまだ危ういように見える 便利ライブラリはもうちょい納得してから使え
752 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 14:02:22 ] 初心者スレであんまり「gemのlibhogeを使え」なんていわないほうが いいんじゃにゃいかな。そりゃ業務的には正解だけど、たぶん牛刀割鶏になってるよ。
753 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 14:09:36 ] rubygems に代表される公開ライブラリを流用するのは何故かというと 「自力でゼロからまたアレやるのめっちゃ面倒だ」 という認識があるからなんだよな 「面倒なアレ」という経験が無いうちから使うと後々悲惨な結果に 苦労は初心者のうちにしておくとよいと思う
754 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 14:24:14 ] あほらし
755 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 16:33:14 ] 別に両方教えればいいだけじゃん html = File.read('page.html') html.scan(/<(.*?)>/) { p $1 } と >>750 の両方。 もちろん違う人が教えてもいい。
756 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 16:33:30 ] URI.extractでもつかっとけ
757 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 17:38:20 ] 文字出力、正規表現の際に'可能'という文字を使用したいのですがうまくいきません。 試しに以下のスクリプトでテストしてみました。 ファイルをSJIS保存 puts '能' => unterminated string meets end of file ファイルをUTF8保存 puts '能' => '閭ス' となってしまいます。 どうすれば扱えるのでしょうか? どなたか本気でお願いします。
758 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 17:51:51 ] Shift_JISの場合は ruby -Ks hoge.rb で起動 UTF-8 の場合は ruby -Ku hoge.rb で起動
759 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 20:40:06 ] >>757 rubyは基本的に、何も指定しないと日本語を正しく扱えない 詳しくはリファレンスマニュアル(もしくは書籍)を読め
760 名前:757 mailto:sage [2008/06/07(土) 21:39:01 ] ありがとうございます! 無事に出力&正規表現が実行できました。 ファイル毎に記述する癖をつけます!
761 名前:デフォルトの名無しさん [2008/06/07(土) 22:46:14 ] String#split* という関数はどういう挙動なのでしょうか? 文字列がかえるので split().join と同じだと考えていたのですが どうにも違うようですし調べてもでてこないし リファレンス(コードでもいいので)ご存知のかたいたらおねがいします
762 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 22:48:02 ] 1while などアンドキュメントな部分などの部分もご存知のかた いたら同様に示唆していただけたらありがたいです ruby 二日目であほなこといっていたらごめんなさい
763 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 23:06:41 ] String#split* なんて関数は見たことない split().join, 1while ともども簡単なコードも付けてくれると答えやすいかも あるいはどこに書いてあったとか
764 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 23:11:34 ] >>761 正直、Ruby の引数展開の * はあまり好きではない あれは Ruby として明示的なメソッドであるべきだと思う んで、引数の配列の直後に * をつけると展開して引数に渡される arr = [1, 2, 3] hoge(arr*) は hoge(1, 2, 3) と同じ動作だ 文字列を split した結果の配列が展開されて渡されてるということだな split は引数を省略すると空白で分割して配列を返すから hoge('1 2 3'.split*) は hoge(1, 2, 3) と同じ 正直、あまり明快な記述とは思えないので、自分から使うのは避けたほうがよい
765 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 23:23:51 ] >>763 , 764 ありがとうです。 >>763 ゴルフコードでよくみたのでこれなんだろーなっていう shinh さんのとこから tree = '(Root (Spine (Neck (Head)) (RClavicle (RUpperArm (RLowerArm (RHand)))) (LClavicle (LUpperArm (LLowerArm (LHand))))) (RHip (RUpperLeg (RLowerLeg (RFoot)))) (LHip (LUpperLeg (LLowerLeg (LFoot)))))' tree.scan(/ \((\w+)/){puts"#$+ . #{a=$`.split*'';1while a.sub!(/\(\w+\)/,'');a[/\w+$/]}"} ってなかんじで 1while はブロックをともなわない構文なのかなと perl と同じ と思っていました while gets; end -> 1while gets でできるかんじ? で split* があるのかなと考えたのは >> "abcd".split*'' => "abcd" >> "abcd".split* '' => "abcd" >> "abcd".split*('') => "abcd" >> "a bcd".split*('') => "abcd" >> "a bc d".split*('') => "abcd" >> "a bc d".split*(',') => "a,bc,d" >> "a bc d".split('') => ["a", " ", " ", " ", "b", "c", " ", "d"] >> "a bc d".split('') で返り値が array ではなく string なので引数展開ではないのかなーと 考えています
766 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 23:25:26 ] 展開の * は前につくんだったと思うんだが hoge(*arr) あと、配列 * s が 配列.join(s) と同じ動作になるのは s が文字列だったときだけだぞ s が整数だったときには単に繰り返される だから、to_s や to_i が乱れ飛ぶ初心者のスクリプトでは紛らわしいから使ったら駄目 というか、そもそも紛らわしいから素直に join 使え
767 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 23:36:09 ] >>765 1whileはrubyの標準にはない。たぶんコードゴルフ用の拡張 ついでに言うと、初心者がコードゴルフを参考にするのは薦められない あれは一般的に美しくない(分かりにくい)書き方が多いから
768 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 23:47:03 ] >>762 違ってたらごめんね >> "abcd".split() * '' => "abcd" >> print 1while true 1111111111111 >> while true; print 1; end 1111111111111
769 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 23:57:22 ] >>768 ruby のコードながめていたらおっしゃる通りだと思いました 1while でも 1 while でも同じことで kWHILE のみしかなかったでした orz 1 while() { ...} なども添付コードにあったので変態的な構文解析だなぁと split() もそうだとおもいます >> a="a b cd".split() => ["a", "b", "cd"] >> a *'' => "abcd" >> a *'abc' => "aabcbabccd" >> a.*'abc' => "aabcbabccd" >> a.*'' => "abcd" コメントみなさんありがとうございました
770 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 00:00:25 ] 追記 www.ruby-lang.org/ja/man/html/Array.html#self.20.2a.20times ですね ありがとうです
771 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 00:03:39 ] Ruby1.6で書かれたクラスを利用しないとアクセスできないシステムがあります そのシステムはEUC_JPしか受け取れないため、他のエンコードを使用しようとした場合は変換したいと考えています ですがRuby1.6時代のKconvではUTF-8→EUC_JP変換ができません そこで質問なのですが ・Kconvに限ってRuby1.8のクラスファイルを利用する、などといったことは可能ですか? ・指定ファイルはRuby1.6、それ以外はRuby1.8というようにクラス/ファイル別にインタプリタを指定して実行することはできますか? 現在は一時ファイルに実行結果を書きとめておくことで疑似的に実現していますが、よりスマートな方法がありましたらご教示願います
772 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 00:12:05 ] nkf.cだけ差し替えてコンパイルしてみるとか。 よしだむ氏のuconvを使ってみるとか。
773 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 00:15:53 ] 1.6のUTF8関連はuconv使ったような記憶がある というか、1.8で動かない上に書き換えも面倒な1.6のスクリプトって重症だなあ マニアさんが書いたようなスクリプトですかね
774 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 00:28:32 ] でっかーいスクリプトだと1.8対応にするのはゼロから作り直すに等しい作業になりそうだな 1.6で完全に動いてるならそのまま使いたいとこだろう Uconv試すのが一番だと思うぜ
775 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 00:30:55 ] UTF対応の外部NKFのラッパーを自前で書くというのはどう Kconvの中の人がやってることは同じだし 一時ファイル使ってる現状とほとんど変わらないような気もするけどな
776 名前:771 mailto:sage [2008/06/10(火) 08:29:09 ] 皆さんありがとうございました Uconvの使用が一般的な方法のようですので、まずはこの方法でやってみたいと思います
777 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 17:34:19 ] index.rhtmlからtest.rbをrequireすると エラーは出ないのですが、test.rb内に記述された関数群が利用できずにエラーとなります。 この拡張子でのrequireは無理なのでしょうか? もしそうであれば、どのようにファイル分けをすればよいのでしょうか? よろしくお願いします。
778 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 17:52:54 ] エスパー麻美の出番だな
779 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 18:02:07 ] エスパー…あさみ…?
780 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 19:00:07 ] ビーズで撃たれて死んでしまえ
781 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 19:12:57 ] 魔女ステかよ
782 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 21:37:07 ] ダック・タイピングとよく言いますが、 オブジェクトが目的のメソッドを持っているかどうかの責任は、 プログラマにあるということでしょうか?
783 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 21:39:05 ] スクリプト言語でなおかつ動的にクラスもメソッドも追加可能な言語では 「ユーザー」と「プログラマー」の間が曖昧なんだよね
784 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 10:33:42 ] よくわからんが、処理系が実行時まで何もしてくれないことだけは確か。
785 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 10:59:33 ] >>778 洗剤か
786 名前:デフォルトの名無しさん mailto:age [2008/06/11(水) 12:05:00 ] Rubyのバージョンアップ方法に関してどなたかお力を貸して頂けないでしょうか。 現在CentOS4.5上で下記のパッケージでRubyを動作させております。 ruby-1.8.5-1.el4.centos ruby-docs-1.8.5-1.el4.centos ruby-libs-1.8.5-1.el4.centos ruby-irb-1.8.5-1.el4.centos ruby-devel-1.8.5-1.el4.centos ruby-ri-1.8.5-1.el4.centos ruby-rdoc-1.8.5-1.el4.centos ruby-tcltk-1.8.5-1.el4.centos 今回Rubyのバージョンを1.8.6へあげたいと考えておりますが下記の エラーに遭遇してしまい検索してみた物の./configureが出来ない状 態です。。 【エラー】 checking for C compiler default output file name... configure: error: C compiler cannot create executables See `config.log' for more details. 〜続く〜
787 名前:786 mailto:sage [2008/06/11(水) 12:06:09 ] 【config.logを見て該当すると思われる箇所】 gcc version 3.4.6 20060404 (Red Hat 3.4.6-9) configure:2530: $? = 0 configure:2537: gcc -V >&5 gcc: `-V' option must have argument configure:2540: $? = 1 configure:2563: checking for C compiler default output file name configure:2590: gcc conftest.c >&5 /lib/libc.so.6: undefined reference to `_dl_out_of_memory@GLIBC_PRIVATE' collect2: ld returned 1 exit status configure:2593: $? = 1 configure:2631: result: configure: failed program was: | /* confdefs.h. */ | #define PACKAGE_NAME "" | #define PACKAGE_TARNAME "" | #define PACKAGE_VERSION "" | #define PACKAGE_STRING "" | #define PACKAGE_BUGREPORT "" | #define USE_BUILTIN_FRAME_ADDRESS 1 | /* end confdefs.h. */ | | int | main () | { | | ; | return 0; | } configure:2638: error: C compiler cannot create executables See `config.log' for more details.
788 名前:786 mailto:sage [2008/06/11(水) 12:08:41 ] 【gcc関連インストールされている物】 compat-libgcc-296-2.96-132.7.2 compat-gcc-32-3.2.3-47.3 gcc-3.4.6-9 gcc-g77-3.4.6-9 gcc4-c++-4.1.2-14.EL4 gcc-objc-3.4.6-9 gcc-gnat-3.4.6-9 compat-gcc-32-c++-3.2.3-47.3 libgcc-3.4.6-9 gcc-java-3.4.6-9 gcc-c++-3.4.6-9 gcc4-4.1.2-14.EL4 gcc4-gfortran-4.1.2-14.EL4 gcc4-java-4.1.2-14.EL4 2日程格闘中ですが、お手上げ状態に近づいて来ました。。。 RPMで1.8.6があればいいのですが該当するものも無いため 今回tarからrpmをcheckinstallで作成しようと考えてお ります。。
789 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 13:28:15 ] >>787 に書いてあるがな。GNU libcの `_dl_out_of_memory@GLIBC_PRIVATE' がないんだろ。glibcを入れ直してldconfigしてみろ
790 名前:786 mailto:sage [2008/06/11(水) 13:46:57 ] >>789 さん 助言有り難う御座います。glibc関連を弄るのは初めて なので依存関係でしくじる気が凄くしますが取り敢えず 調べてやってみます。
791 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 16:56:35 ] oreilly.co.jp -- Online Catalog: 初めてのRuby ttp://www.oreilly.co.jp/books/9784873113678/ > 本書を最後まで読めば、「Rubyリファレンスマニュアル」を自在に読みこなし多様なRubyライブラリを活用して、 > 自力で高度なRubyプログラミングを習得するだけの基礎知識が手に入るでしょう。 > Ruby1.8及び1.9に対応しています。 ( ^ω^)おっおっおっ
792 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 17:02:16 ] 夢のような書籍だなw
793 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 17:14:19 ] たった224ページじゃ無理だろと思ったら >他言語でのプログラミング経験を持つ人を対象に なるほど。エッセンス部分だけ凝縮することに成功すれば あるいは・・・・・・
794 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 17:17:59 ] 魚を捕る方法を教える感じでなかなか好感が持てる 現状、9割くらいの人はオンラインのリファレンスマニュアル読んでるからな というか、リファレンスマニュアル自体にマニュアルの読み方の解説がないというのが情けない
795 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 17:19:59 ] まああるいはオライリーの人がフカしてるだけかもしれん これ目次ね ttp://www.oreilly.co.jp/books/9784873113678/toc.html
796 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 19:21:21 ] また安いなw 最近のオライリーはどうなってるんだ,あれこれ安すぎるw
797 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 19:42:21 ] 自分の部屋の本棚をオライリーで埋め尽くす・・・ そんな風に考えていた時期が僕にもありました・・・
798 名前:デフォルトの名無しさん [2008/06/11(水) 19:58:37 ] 2,310円?200ページとはいえ、オライリーにしてはえらく安いな
799 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 20:58:19 ] >>796 質が落ちたから
800 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 22:33:03 ] Learning Rubyの翻訳かと思ったら別の人が書くのか・・・ 当然のようにFlanagan x Matz本出してくるかと思ってたが マニングのMinimal Perlがオラから出てたりとかなんかカオスだな
801 名前:高野光弘問題 [2008/06/11(水) 23:58:28 ] takano32,TAKANO Mitsuhiroこと高野光弘(日立製作所社員、日本UNIXユーザ会幹事)が、 自身の『32nd diary』で公然と日立の機密を開示し、障害者差別発言をしている問題。 1981年11月12日 千葉県のディズニーランドのそばで誕生 2001年4月1日 千葉大学に入学 2005年4月1日 千葉大学大学院へ進学、日本UNIXユーザ会に入会 2007年4月1日 日立製作所に入社、神奈川県秦野市の寮へ 2007年8月22日 「ついに職場で人が倒れた」と公表 2007年11月13日 「情報漏えい」を言う上司に「死んだほうがいいよ」と暴言 2007年12月28日 「社内システムクソうんこ」と発言し、仕組みも暴露 2008年5月23日 機密漏洩問題について一応の謝罪 2008年5月26日 「給料泥棒とかうんぬん言われた」と謝罪を忘れて告白 2008年5月27日 「心バキバキ川田くん」と前日の発言者の名前を公言 2008年5月31日 「キチガイ」と日立のユーザーに障害者差別発言を連発 2006年10月27日(日立製作所に入社前に忠告されたこと) 「日記やコメントの投稿日時から勤務時間に業務外のことをしていることが判明」は 某社の某親会社が 2ch で祭られたように、NG です。 6月も勤務時間中に更新し続ける高野光弘君の『32nd diary』にツッコミをどうぞ
802 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 04:02:01 ] で、rubyとどう関係あるのか まだ訊いてないんだが?
803 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 04:22:05 ] Ruby信者はあらゆるスレにRubyの話題を持ち込んでいるのだから、 逆にあらゆる話題がRubyスレに持ち込まれても、身から出た錆だな。
804 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 06:59:14 ] RubyってJavaのクラスローダーみたいな仕組みはないのですか?
805 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 09:46:01 ] >>804 requireじゃダメなの?
806 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 10:07:44 ] 「Javaのクラスローダーの○○の仕組み」と限定して欲しいとこだな
807 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 11:17:08 ] .jarとか.classとかを実行時に読むのに相当するならrequire、 Classオブジェクトを名前な文字列とかで引っ張ってくるならModule#const_get
808 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 21:39:27 ] ネットワーク上からRubyスクリプトを受け取ってそれに記述されているクラスを動的に定義したいんだけど たとえば script = URI("host/matz.rb ").read p script #=> # class Matz # def hige # print "じょりじょり" # end # end eval(script) Matz.new.hige こんな感じで実現できるんだけど もっとスマートな方法は用意されてないの? ファイルには書き出したくない。
809 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 21:41:29 ] Ruby で、現在のプロセス名を得ることはできますか。 やりたいのは、現在のコマンドが /usr/bin/ruby なのか /usr/local/bin/ruby なのか /usr/local/ruby1.9/bin/ruby なのかを知ることです。
810 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 21:43:42 ] ローカルファイルシステム上にないファイルをスクリプトとして読み込みたいとかいう需要に対してスマートも糞もねーよ(w require の中身は eval だからそれで正しい動作だ 我慢しとけ