トップページ⇒tech
983コメント375KB

Ruby 初心者スレッド Part 41

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001京 ◆SsSSsSsSSs 2011/02/10(木) 13:47:51
プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。

★注意★ Ruby 1.9.2 は初心者には若干時期早尚です。初心者には Ruby 1.8.7 を強くお勧めします。
 文字エンコーディング等の外部基礎知識が必要な上、不完全対応の第三者ライブラリでの問題の切り分けが手間です。
 迷う点の少ない1.8.7に習熟→おもむろに1.9.2の変更点のみ重点学習、とすればスムーズに移行できるでしょう。

関連スレやURLは>>2-5あたりを見てください。Ruby on Rails の質問は Webプログラミング板の Rails スレへ。

■質問する人へ
質問する前に次の3つをすること。ここで回答を待つよりそのほうが早い。
 ・エラーメッセージの共通そうな部分やエラーの出るモジュール名でググる
 ・マニュアルで引っかかったクラスの記述を探す http://www.ruby-lang.org/ja/man/
 ・FAQを一応読む http://www.ruby-lang.org/ja/man/?cmd=view;name=Ruby+FAQ
質問には以下を書くこと。へたくそな質問は再提出を要求される。
 ・最終的にやりたいこと(もっとよい方法がある場合が多いので)
 ・エラーメッセージ(自力で訳さずなるべくそのままで)
 ・詳しい内容(「動きません」「うまくできません」では回答しようがない)
 ・実行環境(OS名、Rubyのバージョン(ruby -v でわかる))
回答してくれた人には「ありがとう」のひとことをいってあげて。

■回答する人へ
相手は初心者、根気よく育てるつもりで。質問がへたくそなのも大目にみてあげる。
それができないならこないこと(だって初心者スレだもん)。
 ・既出な質問やFAQは「XXXを読め」でいいので、叩かない&怖がらせない。
 ・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。
 ・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。
0893デフォルトの名無しさん2011/04/13(水) 21:58:07.82
正規表現
0894デフォルトの名無しさん2011/04/13(水) 22:04:39.70
>>891
printf("%+d", 5)
s = "%d" % 5; printf(s)

>>892
idx = text.rindex('}')
text[idx] = "特定の文字+}"
08958942011/04/13(水) 22:06:15.61
ああっと訂正
s = "%+d" % 5; printf(s)
0896デフォルトの名無しさん2011/04/13(水) 22:29:59.83
% が既に sprintf なので、printfじゃなくてprintね。
08978912011/04/13(水) 22:50:18.10
なるほどありがとうございました
0898デフォルトの名無しさん2011/04/13(水) 23:13:45.30
>>894
ありがとうございます
0899デフォルトの名無しさん2011/04/13(水) 23:37:36.75
なんだろう、今までケンカで明け暮れて警察に何度も補導されるような人生を送ってきたのに
ここの人たちは皆俺に優しくしてくれる
0900デフォルトの名無しさん2011/04/13(水) 23:45:48.40
>>896
ああそうか。指摘ありがとう超ありがとう
0901デフォルトの名無しさん2011/04/14(木) 11:43:55.91
Windowsでメジャーな開発環境を教えてください
0902デフォルトの名無しさん2011/04/14(木) 14:44:38.44
python それは吸引力の衰えないただ一つの(ry
0903デフォルトの名無しさん2011/04/14(木) 15:15:20.45
>>902
アクティブ何とか
0904デフォルトの名無しさん2011/04/14(木) 20:07:21.50
実行環境
OS名:Ubuntu10.04
Ruby:Ruby1.8.7

【やりたいこと】
>>
愛/あい 藍/あい AI/あい
朱/あか 赤/あか AKA/あか
<<
これを
>>
愛 藍
朱 赤 AKA
<<
と言う形で一括置換をしたいです
ひとまず
各行をstrに格納して
str.gsub(/\/.*\s/,"")としてみたのですが思うように動きませんでした.
どうすればよいのでしょうか?よろしくお願い申し上げます.
0905デフォルトの名無しさん2011/04/14(木) 20:17:27.58
愛 藍 AI
朱 赤 AKA

じゃないの?

str.gsub(/\/[^\s]+/,'')
0906デフォルトの名無しさん2011/04/14(木) 20:18:12.58
>>905 様
そうです.
ありがとうございます.
0907デフォルトの名無しさん2011/04/14(木) 21:13:47.34
スラッシュが正規表現リテラルに入るときは高確率で %r 使う俺。
0908デフォルトの名無しさん2011/04/15(金) 11:06:24.00
軽量言語というのはプログラマーに取って負担が少ないという話を聞いて、勉強しやすいのかなと思いましたが
Rubyは初めてプログラミングに手を出す者が学ぶ言語としては難しい方でしょうか?
0909デフォルトの名無しさん2011/04/15(金) 11:24:45.31
プログラミング言語を勉強して何をやりたいかによる

言語の勉強が目的なら他の言語にしておけ
就職や転職に有利なのがいいならJavaとかC#にしておけ
「ふつうのWindowsプログラム」を作りたいなら他の……、まあ、とりあえずRuby以外にしておけ
シェアウェア(死語?)で小遣い稼ぎとかしたい場合も他の言語にしておけ
レンタルサーバとか借りてなんか自作で投稿とかデータとかのサイトみたいなの作りたい場合も、
そのレンタルサーバでRuby1.8.7以降が使えるかどうかを先にチェックだ

これらを踏まえてなお「そういうことを欲しない」のなら、
Rubyはそんなあなたにとっておおむね読みやすく書きやすくちょっぴり遅い
全くの手探りで進められるほどのシロモノではないが、解説なり教科書なりがあれば問題はなかろう
0910デフォルトの名無しさん2011/04/15(金) 11:37:43.73
全くのプログラミング初心者にRubyをやらせて挫折したって話は聞いたことがない。
本当の意味で使いこなすには程遠いが、やりたいことを動かすまでのハードルは低いかと。
0911デフォルトの名無しさん2011/04/15(金) 11:43:22.92
>>910
じゃあとりあえずメモ帳作りたいですみたいなこと言い出したらどうしようもないぞ
メモ帳作りたいならRubyやらせるべきじゃないだろ
どう言い訳しても少なくとも「めもちょうのぶぶん」はRubyではないわけで

プログラムには標準入力と標準出力があって〜これがWebでは〜みたいな話をするには最適だが、
そういったものを望んでプログラミングを始める人がいるとはそうそう思えん
0912デフォルトの名無しさん2011/04/15(金) 11:47:02.31
>>911
どうだろうねえ

というかもう若くないし若い人べったりの環境でもないので、
今の「プログラム作ってみたい」と考える人が思うところのプログラムがナニを指してるのかよくわからん
昔は、えー、そうだな、20世紀は完全に プログラム=クライアントサイドプログラム で、
Windowsで動くexeでインストーラがあってウィンドウが出てマウスでぽちぽち音がジャーンみたいなのがそうだったんだけど、
今の人はプログラムと言うとサーバサイドのプログラムも考慮に入れてくれてるもんなのかね
0913デフォルトの名無しさん2011/04/15(金) 11:47:10.80
Rubyは入門しやすい
Rubyは万能ではない
ただそれだけ
0914デフォルトの名無しさん2011/04/15(金) 11:51:29.96
>>911
んー、そこまで過保護にしなくてもいいのでは。
0915デフォルトの名無しさん2011/04/15(金) 11:56:27.09
このスレいちいちレスがくどいw
0916デフォルトの名無しさん2011/04/15(金) 12:05:43.86
じゃああっさりめの回答

いいんじゃないかな
とりあえず入門書一冊買ってRubyインスコして試してみては
0917デフォルトの名無しさん2011/04/15(金) 12:09:09.96
Windowsで動かすプログラム作りたいなら最初は他のやれ
サーバ上のは得意だがレンタルサーバでRuby1.8.7が動くかどうか先に調べれ
Rubyそのものは難しくはないが、あなたの想像していたものの7割くらいはそもそも作れない
0918デフォルトの名無しさん2011/04/15(金) 12:51:36.58
>>908
僕はプログラミング初心者ですがRubyは判りやすいと思いますよ
本当はGoogleApiEngineで無料サーバとして使いたいのでJavaかPythonを覚えたかったのですが
0919デフォルトの名無しさん2011/04/15(金) 12:57:12.72
前はマクロとして使ってたけど
今じゃrailsにしか使ってないわ
0920デフォルトの名無しさん2011/04/15(金) 14:11:49.50
HSPでいいんでないの?
0921デフォルトの名無しさん2011/04/15(金) 15:38:16.26
Rubyの学習は非線形でガクガク、躓く箇所がある。
暗黙にプログラミングの常識を要求する=LL的よくあるコードは楽

Pythonの学習曲線は平坦でつまずく箇所が少ない。暗黙知の代わりにPythonそのものの知識をかなり要求する=面倒だが潜在的な汎用性がある?
あとPythonのサイトには初心者と超人の中間が大勢いるけど、Rubyのサイトにはいない

学習前のリサーチではこんな印象でした
プログラミングの抽象度が高く初期の学習がスムーズなのでは、と思ってRubyをはじめました
あってるかどうかは判りません
0922デフォルトの名無しさん2011/04/15(金) 15:43:07.98
rubyというかブロックというか、
便利なフリして下手したらメンテしにくい、
ごっつごってごてぐっちゃぐちゃの構造へ突っ走ってる時はある。
0923デフォルトの名無しさん2011/04/15(金) 17:12:21.67
>>922
じゃあRuby以外のプログラムはメンテナンスしやすいんですね!!
0924デフォルトの名無しさん2011/04/15(金) 17:25:16.75
ブロックってメソッド呼び出しに局所化されているから
メンテしにくさとは逆を行ってないか?
0925デフォルトの名無しさん2011/04/15(金) 17:47:12.82
>>923が真理だと思う
たぶんそれは言語の特性ではなく単に書く人のせいだw
0926デフォルトの名無しさん2011/04/15(金) 17:49:55.48
だらだらブロックのネストを書いたりと
読みにくく、手を入れにくくする方法は沢山あるから、
この辺りは、どんな言語でも、書き手次第だろうね。
0927デフォルトの名無しさん2011/04/15(金) 18:50:35.27
内側から読まないと意味のわからないネストとかね
0928デフォルトの名無しさん2011/04/16(土) 00:47:35.16
コミッタの質がここまで低い言語は他に無いと思うよ
0929デフォルトの名無しさん2011/04/16(土) 02:26:09.08
RubyMineというIDEを使い始めたのですがマルチバイト文字をコンソールに表示させたときの挙動で躓きました

puts "あ" #=> あ
print "あ" #=> あ

p "あ" #=>"\343\201\202"
pp "あ" #=> "\343\201\202"

この挙動の違いはIDE自体に問題があるのか、それともrubyのpやppが特別な動きをしているのでしょうか?
NetbeansなどのIDEでは普通にマルチバイト文字を表示できていましたので戸惑いました
0930デフォルトの名無しさん2011/04/16(土) 02:51:24.42
中学生でもスーパーRubyハッカーというのに、お前らときたら・・・
ttp://www.atmarkit.co.jp/news/201104/14/sora.html
0931デフォルトの名無しさん2011/04/16(土) 02:53:59.75
>>928
ま、コミッタがコミットしてRuby作っていったんだけどね。
ブロックやネストの話からコミッタにまで普通話が飛ぶか?

Rubyにまでやってきて一々嫌味いいたいんですね。
これだからPythonの馬鹿には手を焼くんだよなあ
┐(´д`)┌ヤレヤレ
0932デフォルトの名無しさん2011/04/16(土) 07:23:17.35
>>929
NetBeans なんかのほうが通常ではない動作をしている

Ruby 1.8 において、本来、使用日本語に関する情報が何もなければ、
非アスキー文字の含まれる文字列に対する String#inspect、
つまりそれを引数にとった関数的メソッド p はバイナリ表記をする
(Ruby 1.9 では日本語として区切って表示するようになってしまった、個人的には改悪)

p はデバッグ表記用メソッドなので、
人間に読めるように表示したいなら人間表示専用の puts や print 使え

なお、 ruby の起動時に -Ku や -Ks などで日本語モードが指定されてると、
String#inspect は日本語体系がそれであるとみなしてバイナリを区切って表示する
「何もしてない」のに Ruby 1.8 の p で日本語が表示できる場合、
どこかの誰かがあなたに無断でそれを指定している
(IDE内コンソールである場合は、勝手に変換している可能性すらある)
$KCODE="u" や $KCODE="s" をスクリプト内で誰かが指定していても同様
0933デフォルトの名無しさん2011/04/16(土) 09:32:02.57
「文字列を絶対に10進表記にして表示する」という簡便な一発メソッドがあればよかったのに
0934デフォルトの名無しさん2011/04/16(土) 09:48:31.02
何が何でも無理やり10進表記してくれるto_iがあるじゃないか
というか具体的な入力と出力をplz
0935デフォルトの名無しさん2011/04/16(土) 09:53:08.70
>> "アホか".to_i
=> 0
09369342011/04/16(土) 10:43:37.51
>>935
「何が何でも無理やり」ってのはその挙動を指してるんだけど
to_iにしても10進表記にしてるわけじゃなくて単に整数にしてるだけだね
変なレスして失礼しました
0937デフォルトの名無しさん2011/04/16(土) 11:50:12.15
String#dump
0938デフォルトの名無しさん2011/04/16(土) 11:53:44.23
>>937
dump は p と死ぬほど相性が悪いので嫌い

まあこのへん推し進めると文字列自体にエンコーディング情報くっつける Ruby 1.9 になるんだがw
09399292011/04/16(土) 12:03:50.47
>>932
IDEのRuby起動オプションに-Kuを追加することでpでも日本語を表示できるようになりました
わかりやすい説明ありがとうございます 勉強になりました
0940デフォルトの名無しさん2011/04/16(土) 19:54:44.45
下のunlessのような条件分岐はどういう意味があるのでしょうか?
基本は
unless ?? then
??
end
って感じで覚えていたので少し混乱しています

str.each_char do |c|
count[c] = 0 unless count[c]
count[c] += 1
end
0941デフォルトの名無しさん2011/04/16(土) 20:06:45.75
if と unless は(Perlのように)後置できる

式 if 条件

は

if 条件 then
 式
end

と同じだ
1行で書けて便利、という程度の意味

str.each_char do |c|
 unless count[c] then
  count[c] = 0
 end
 count[c] += 1
end
0942デフォルトの名無しさん2011/04/16(土) 20:11:26.85
nilが入ってたら0で初期化して1増やすってコードだな
09439402011/04/16(土) 20:20:40.18
なるほどそうだっんですね。
お二方ありがとうございました!
0944デフォルトの名無しさん2011/04/16(土) 20:57:19.56
いえいえどういたしまして
0945デフォルトの名無しさん2011/04/16(土) 21:55:20.78
a += 1 は a = a + 1
だけど
a ||= 0 は a = a || 0 ではなくて
a || a = 0

で、あってる?
0946デフォルトの名無しさん2011/04/16(土) 22:10:03.35
たしかそうだけど何が違うんだっけと思ったらちゃんと書いてあった
ttp://www.ruby-lang.org/ja/man/html/_B1E9BBBBBBD2BCB0.html
0947デフォルトの名無しさん2011/04/16(土) 22:30:51.84
へぇそんな違いがあったのか。
無駄な代入処理を行わないための仕様なのかな?
0948デフォルトの名無しさん2011/04/16(土) 23:57:51.72
nullをnilって書かないといけないのに違和感
nullって書かせてくれよ
0949デフォルトの名無しさん2011/04/17(日) 00:01:54.50
>>947
というより ||= 演算子自体が
「最初に使われるときには初期化、次回以降はスルー」って処理を意識してると思われ
0950デフォルトの名無しさん2011/04/17(日) 00:10:25.58
>>948
nullとnilとの違いとかそういう話?
元々は形容詞と名詞の違いらしいし
厳密な区別なんてせずに片方で良いと思うが…

使うのがnullじゃないとヤダヤダってんなら
他にも色んな言語がやれなくなるな
NoneとかNothingとか、相当する要素は色々あるから
0951デフォルトの名無しさん2011/04/17(日) 09:16:25.30
>>948
一般的な null とは違うので nil と呼ぶ
null やundef は予約語的な「無」だが、nil は NilClass のインスタンス(オブジェクト)だ
無であるならメソッドを受け付けないはずだが、メソッドだってきちんと動作する
「とりあえず全部オブジェクトにしようぜ」というコンセプトのもと、
いわゆる null や undef を表すために作られた決め事

…まあ、だからわざわざ lisp の言葉を持ってきたんだろう
これが null オブジェクトまたは予約語 null だったら大混乱必至だったと思う
0952デフォルトの名無しさん2011/04/17(日) 10:10:05.08
※よろしくお願いします。
ruby で,あるページを取得したのですが、

『フレーム対応のブラウザでない場合は、本画面が表示されます。』

と返ってきます。どうすれば、ページの文字列を取得できるのでしょうか??
0953デフォルトの名無しさん2011/04/17(日) 10:12:00.37
それ、取ってきたページのNOFRAMES要素が見えてるだけじゃねーの?
取ってきたページのFRAME要素のSRC属性のURLにさらにリクエストかければいいんじゃねーの?
0954デフォルトの名無しさん2011/04/17(日) 10:27:52.87
>>931
Pythonの悪口を言っている奴がいると聞いてすっ飛んできました。
(#゚Д゚)ゴルァ!!

http://hibari.2ch.net/test/read.cgi/tech/1302692765/85
[ プログラム ] 【Perl,PHP】LLバトルロワイヤル16【Ruby,Python】

85 名前:デフォルトの名無しさん [sage]: 2011/04/16(土) 23:46:38.57
ここ、Rubyの関係者が粘着してるだろ。
なんだよ、>>79-80 からの話題替えはw
この流れはまずいって思ったんだろうなw

Rubyのコミッタのつぶやきまとめ

http://twitter.com/nari3/statuses/57992001030860801
nari3: "Rubyの力でたのしいなかまがぽぽぽ〜ん at RubyKaigi2011"

http://twitter.com/sora_h/status/2906062620
学校で今日はちょっと別のところに自転車で移動したんだけど、そこで学校に戻る
ときに豚同級生がカギをなくして、30分位まってた後に結局ポケットにあったとか
言って皆キレる。俺は「ヴァカだろ死ねよ!!」って言っておいた。同級生いじめは
ストレス解消。 12:37 AM Jul 29th, 2009 YoruFukurouから 1人がリツイート

http://twitter.com/sora_h/status/10014881594
皇太子の子供が不登校になったと聞いて。いじめか、いい
ぞもっと(ry なんでもないです。 12:59 AM Mar 5th, 2010 Termtterから

ガベージコレクションのアルゴリズムと実装 [単行本]
"http://www.amazon.co.jp/ガベージコレクションのアルゴリズムと実装-中村-成洋/dp/4798025623"

中村 成洋 (著) 相川 光 (著) 竹内 郁雄 (監修)
0955デフォルトの名無しさん2011/04/17(日) 10:29:20.09
せめて初心者じゃない方荒らしてくれ
0956デフォルトの名無しさん2011/04/17(日) 10:40:48.32
>>952
HTML に関する知識がないご様子
HTML の基本的な勉強してからやろう
そっちのほうが躓くことなくスムーズにコトが進むぞ
0957デフォルトの名無しさん2011/04/17(日) 10:49:23.69
PHPみたいにHTMLに<?php〜?>でRubyを埋め込んで利用する方法って用意されてますか?
09589522011/04/17(日) 10:57:52.99
>>953
ありがとうございます。
自分はOperaを使ってるんですが、Operaで、
[ページのソースを表示]っていうメニューをクリックすると『フレーム対応でないとだめ』
のソースが表示され、
[フレームのソースを表示]っていうメニューをクリックすると、目的のページソースが表示されます。

しかし、目ぼしいSRCは記述されておらず、ruby でどうやればフレーム内のソースを取得できるのか
困ってます。。。

どなたか、ヒントだけでもいいので、何かありませんでしょうか?
0959デフォルトの名無しさん2011/04/17(日) 11:01:30.57
urlもhtmlもさらさずにエスパーしろと言われても無理。
まずはhtmlのframeの項の説明読もうよ。すっごい簡単だから。
0960デフォルトの名無しさん2011/04/17(日) 11:02:51.96
>>956
偉そうな講釈は結構。
0961デフォルトの名無しさん2011/04/17(日) 11:07:06.57
ヒント: えちいサイトだろうが気にせずURLを貼る
0962デフォルトの名無しさん2011/04/17(日) 11:07:13.08
>>960
優しい先生が欲しいならお金払わないと
09639532011/04/17(日) 11:16:35.14
>>953
ありがとうございます。取れました。
0964デフォルトの名無しさん2011/04/17(日) 14:24:05.29
Rubyコミュニティは厨の匂いがプンプンしますね
0965デフォルトの名無しさん2011/04/17(日) 17:46:05.15
Mac上のRuby(1.8.7)でコマンドラインプログラムを作っています。

Terminal.appを立ち上げてSTDIN.getsでユーザーに文字入力させる
のですが、日本語文字列を入力するとき、deleteキーでの消去が
文字単位にならず、何とも微妙な感じです。

1文字消すのにdeleteの打鍵が2回必要だったり、文字列によっては
最後まで消去できなかったりして(実際には消えているようですが
画面には残ります)ストレスがたまります。

ちなみにTerminalで普通にシェルを使うときには上記の問題は
でません。アドバイスよろしくお願いします。
0966デフォルトの名無しさん2011/04/17(日) 18:00:25.74
そのへんの環境揃えるのめんどくさいんだよね

require 'readline'
while s = Readline.readline("INPUT>", true) do
p s
end
09679652011/04/17(日) 18:48:31.50
>>966
ありがとうございました。うまく行きました。
Readlineは聞いたことがありましたが、
こういうときに使うものなんですね。
0968デフォルトの名無しさん2011/04/17(日) 19:02:09.57
RubyInstallerで入れたのですがTKが入っていませんでした
TKはどのサイトから入手できますでしょうか?
gemからインストールする事は出来ないのですか?
0969デフォルトの名無しさん2011/04/17(日) 19:15:17.18
だから入ってないの当たり前だってそもそも入れてないんだから
ttps://github.com/oneclick/rubyinstaller/wiki/faq#bundled_short

で、Tk が必要なのに RubyInstaller を選択したお間抜けさんは通常は Ruby/Tk Kit を使う
0970デフォルトの名無しさん2011/04/17(日) 19:33:59.77
RubyInstallerめんどくさいよね…
0971デフォルトの名無しさん2011/04/17(日) 19:35:43.83
このスレWindowsネタになると変なスイッチ入っちゃう人いるのねw
0972デフォルトの名無しさん2011/04/17(日) 19:37:49.72
初心者スレなのにね
0973デフォルトの名無しさん2011/04/17(日) 19:45:43.02
>>970
お勧めされてないのには理由があるってことだな
素直にActiveScriptRuby使え
0974デフォルトの名無しさん2011/04/17(日) 19:57:38.03
aptで入れろよカス
0975デフォルトの名無しさん2011/04/17(日) 21:56:43.31
標準添付と銘打たれているライブラリが、さりげなく入ってないのはtrapだよな・・・
お間抜けさんというか、多くの初心者はRuby/Tkも入ってると思うだろう

まあRubyInstaller以外でも似たようなのはあるから、どっちもどっちではあるけど
0976デフォルトの名無しさん2011/04/17(日) 22:02:14.50
ASRが意図的にてんこもりなんだよね
いらん物までゴテゴテついてるという見方もできなくもない
0977デフォルトの名無しさん2011/04/17(日) 22:58:27.30
Pythonみたいに公式でWindows用バイナリが配布されてて
Tkinter込みなので、そのままTkが動かせるのはいいなぁと思う
0978デフォルトの名無しさん2011/04/17(日) 23:08:09.25
Pythonは公式が大量のライブラリ添付する方針だからな
0979デフォルトの名無しさん2011/04/17(日) 23:30:18.68
Windows7でActiveScriptRubyをインストールして
gem installすると
ERROR: While execution gem ... (Errno::EACCES)
Permission denied - C:/PROGRA~1/ruby-1.8/bin/rackup.bat
ってエラーがでてうまくいかないのはなぜ?
そのディレクトリは書き込み可能にしてるんだけど。
0980デフォルトの名無しさん2011/04/18(月) 00:09:39.05
asrって古いからいやです
新しいものを使いたいのでriを使いたいのです
0981デフォルトの名無しさん2011/04/18(月) 01:37:56.22
riと書くとリファレンス閲覧ツールのほうと間違えるから略さないほうがいいよ。
文脈で違うと分かるけどさ。
0982デフォルトの名無しさん2011/04/18(月) 06:46:18.67
>>979
エラーとしてはまあそのまんま
そのファイル「が」パーミッションのエラーを起こしてる
そのファイル「で」パーミッションのエラーを起こしてるんじゃないので、bin/ だけいじってもダメ
gem install -V hogehoge すると、たぶん該当フォルダの書き込み表示したところでエラーだ

いくつか方法はあるんだけど、gem をホームのフォルダに user-install してしまうというのはどう
ユーザーのホームのフォルダの中にある .gemrc という6文字ファイルの先頭が

---
gem: "--user-install"

という2行になるように編集
それ以降、gem はすべてホームのフォルダの .gem/ というフォルダの中に入る
あと、rubygems 本体の更新ができないので
 C:\Program Files\ruby-1.8\lib\ruby\bin
 C:\Program Files\ruby-1.8\lib\ruby\vendor_ruby
の2つの書き込み権をrubyさんかgemさんのどっちかに対してどうにしかしておく

何からの理由でユーザーインストールせずパーミッションだけで解決したい場合は、上記の2フォルダに加えて
 C:\Program Files\ruby-1.8\lib\ruby\gems
の3つくらいに対して、rubyさんかgemさんが書き込み可能にしておく
0983デフォルトの名無しさん2011/04/18(月) 10:55:08.92
>>982
サンクス。
ちょっと今時間がないので、試したらまた報告します。
レス数が950を超えています。1000を超えると書き込みができなくなります。