🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

2回答

708閲覧

railsがインストールできません

bocverybest

総合スコア7

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2021/02/19 02:50

前提・実現したいこと

railsをインストールしたいけど出来ません

発生している問題・エラーメッセージ

C:\Users\一輝>rails -v
'rails' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

該当のソースコード

C:\Users\一輝>npm install --global yarn

yarn@1.22.10 preinstall C:\Users\一輝\AppData\Roaming\npm\node_modules\yarn
:; (node ./preinstall.js > /dev/null 2>&1 || true)

C:\Users\一輝\AppData\Roaming\npm\yarn -> C:\Users\一輝\AppData\Roaming\npm\node_modules\yarn\bin\yarn.js
C:\Users\一輝\AppData\Roaming\npm\yarnpkg -> C:\Users\一輝\AppData\Roaming\npm\node_modules\yarn\bin\yarn.js

updated 1 package in 1.596s

C:\Users\一輝>gem install rails
Temporarily enhancing PATH for MSYS/MINGW...
Building native extensions. This could take a while...
ERROR: Error installing rails:
ERROR: Failed to build gem native extension.

current directory: C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/websocket-driver-0.7.3/ext/websocket-driver

C:/Ruby27-x64/bin/ruby.exe -I C:/Ruby27-x64/lib/ruby/2.7.0 -r ./siteconf20210219-4148-4qxdqx.rb extconf.rb
creating Makefile

current directory: C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/websocket-driver-0.7.3/ext/websocket-driver
make "DESTDIR=" clean
bash.exe: warning: could not find /tmp, please create!

current directory: C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/websocket-driver-0.7.3/ext/websocket-driver
make "DESTDIR="
generating websocket_mask-x64-mingw32.def
bash.exe: warning: could not find /tmp, please create!
compiling websocket_mask.c
Cannot create temporary file in C:\Users??P\AppData\Local\Temp: Invalid argument
make: *** [Makefile:244: websocket_mask.o] エラー 3

make failed, exit code 2

Gem files will remain installed in C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/websocket-driver-0.7.3 for inspection.
Results logged to C:/Ruby27-x64/lib/ruby/gems/2.7.0/extensions/x64-mingw32/2.7.0/websocket-driver-0.7.3/gem_make.out

C:\Users\一輝>npm --v
6.14.11

C:\Users\一輝>rails -v
'rails' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

試したこと

以下は購入した書籍の出版社からの返答です

・SQLite3をインストールしてみて下さい。それから再度gem install railsを実行してみて下さい。
・Node.jsというソフトウェアをインストールして下さい。https://nodejs.org/ja/ にアクセスしてver.14というもの(推奨版と表示されているもの)をダウンロードしてインストールします。
・Node.jsをインストールしたら、コマンドプロンプトあるいはターミナルから「npm install --global yarn」を実行して下さい。
・正常にインストールできたらnpm install --global yarnを実行し、それからgem install railsを実行して下さい。
・コマンドプロンプトから「npm --v」と実行してバージョン番号が表示されれば問題ないです。

バージョン番号まで表示されました。その後に「rails -v」を入力したら「'rails' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。が表示されます

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2021/02/19 02:55

その書籍の対象OSはWindowsで間違いないですか?
bocverybest

2021/02/19 03:14

Windowsに対応しています
m.ts10806

2021/02/19 03:36 編集

念の為書籍名を。 過去質問など見ると多くは「Windowsに直接導入は悪手」であることが分かると思います。書籍でも直接Windowsに導入するものはあまりなかったような。 RailsチュートリアルもWindowsOS前提では構築されてないはずです(Cloud9だったかな) WSLなり仮想環境なりでLinux系OSにされたほうがストレスなく進められます。
bocverybest

2021/02/19 16:23

秀和システムの『Ruby on Rails 6 超入門』という本です
guest

回答2

0

ベストアンサー

Windowsにおいて、ユーザープロファイルのパス(通常は「C:\Users\ユーザー名」)に漢字や平仮名などのASCII以外の文字が含まれている場合、一部のライブラリのコンパイルに失敗し、Railsに必要なパッケージがインストールできないことがわかっています。これを解決する方法はいくつかありますが、最も簡単で確実な方法は**「ユーザー名が英数字のみのユーザーを新規で作成し、そのユーザーを使用する」**事です。これ以外の方法は複雑であり、また、失敗する可能性が極めて高いため、お勧めしません。


以下、解説です。

RubyのWindows用バイナリのデファクトスタンダードであるRubyInstallerMSYS2のmingw-w64を用いてコンパイルされています。そのため、+DevkitはMSYS2が付属されており、このMSYS2、または、別途入れたMSYS2をridkコマンドで設定することで、mingw-w64のGCCコンパイラが使用できるようになっています。Rubyの拡張ライブラリは、純粋なRubyのみで作成された物もありますが、一部のライブラリはC等で書かれており、インストールする環境でコンパイルする必要があります。そのときにこのMSYS2が使われるというわけです。

MSYS2はWindowsで擬似的なPOSIXな環境(いわば、UNIX/Linuxっぽい環境)を実現するソフトウェアです。GCCを含め、もともとはUNIX/Linux向けに作られた数多くのソフトウェアの集合対となっています。これらのソフトウェアは元々Windowsで動作することを考慮していないません。そのため、Windowsでも必要最低限動作できるように修正が加えられています。

WindowsとUNIX/Linuxとの違いは多くありますが、その中でもファイルシステムの違いはかなり大きいです。区切りが"/"と""という違いとか、多くあります。その中でも、フォルダー名やファイル名にあるASCII以外の文字がどううつるかは大きいです(Windowsは歴史的な経緯があり、ファイル名の取得はとても複雑です)。そのため、MSYS2に含まれているソフトウェアの中には、途中に漢字や平仮名のフォルダー名があるとうまく処理できなくなる場合があります。

これがユーザープロファイルのパスとどう関係があるかというと、テンポラリ領域やデフォルトの設定ファイルを置く場所などがユーザープロファイルのパスの配下になるということです。つまり、そういった所に日本語なパスが含まれると言うことです。

まとめるとつまりこういうことです。Railsをインストールするにあたって、必要な拡張ライブラリの中にはコンパイルが必要ですが、そのコンパイル環境は、日本語が含まれるパスがあるとうまく動きません。ですので、最初の話に戻ると言うことです。

投稿2021/02/19 12:23

raccy

総合スコア21737

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

bocverybest

2021/02/19 16:25

ユーザー名を英数字にするやり方を教えてください。自分でも検索しましたがやり方が分かりません
raccy

2021/02/20 01:02 編集

ユーザーを新規に作成する際に英数名にしてください。このとき、Microsoftアカウントと紐付けると勝手にMicrosoftアカウントの名前が付いてしまうことがあるため、「このユーザーのサインイン情報はありません」→「Microsoftアカウントを持たないユーザーを追加する」を選んで一旦英数名のローカルユーザーを作成してから、Microsoftアカウントと紐付けてください。 なお、現在のユーザーの名前を英数名にしても問題は解決しません。現在使用しているユーザーでもできるように変更するには、「ユーザープロファイルのパス」についてとても高度なWindowsに対する知識が必要です。少なくとも、「ユーザープロファイルのパス」がレジストリのどこに書かれているのかぐらいは自力で調べられるレベルで無ければ、うまくいく可能性は0に等しいです。(一応、やり方は私の昔の回答でしたことがありますが、それすら見つけられないなら、諦めた方がいいでしょう)
raccy

2021/02/20 01:02

参考までに「ユーザープロファイルのパス」を変更する方法です。回答内容は未検証・未保証であり、パソコンが使えなくなっても自己責任であることに注意してください。 https://teratail.com/questions/283674#reply-403269
bocverybest

2021/02/20 03:06

初心者なので簡単な方法を教えてください
raccy

2021/02/20 03:38

ユーザーを新規に作成する方法についてですか? Windowsのバージョンやエディションによって微妙に異なるので、一概には言えませんし、詳細を個あてると別の質問になってしまいます。調べてもわからない場合は「Windowsで英数字の名前のユーザーを新規に作成する方法を教えてください」という内容でWindowsのエディションとバージョン(例えば、Windows 10 Enterprise 20H1等)を明記して、別の質問として新規に投稿してください。(なお、私が持っていないエディションやバージョンについては詳細な方法は私もわからないので、私が回答できるとは限らない事にご了承ください。)
guest

0

悪いことはいいませんので、「Windowsで直接Railsの開発を行う」という環境構築そのものを避けるべきです。実際に動かすサーバを含め、Rails環境はUnix系を標準として作られるので、ローカル環境をWindowsにすると、Windowsのためだけに悪戦苦闘させられる場面が続発します。

  • WSL(Windows上で動くLinux環境)上に構築する
  • 仮想マシンを動かして、その中で実行する
  • Cloud9など、クラウド系の開発環境を用意する

など、別環境で作ることをおすすめします。

投稿2021/02/20 04:08

maisumakun

総合スコア145970

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

bocverybest

2021/02/20 04:17

システムは全く分からないので内容が分かりません。初心者なので分かりやすくお願いします
maisumakun

2021/02/20 04:21

どこがわからなかったのか、もう少し詳しく書いていただけませんか?
bocverybest

2021/02/20 06:11

問題は解決しました ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問