回答編集履歴

2

WSLを追加

2020/07/18 07:15

投稿

raccy
raccy

スコア21733

test CHANGED
@@ -1,4 +1,10 @@
1
+ 次のどちらかを検討してください。
2
+
3
+
4
+
1
- **英数字のみのユーザー名でWindowsのユーザーを作り直して、そのユーザーで開発してください。**
5
+ 1. **英数字のみのユーザー名でWindowsのユーザーを作り直して、そのユーザーで開発してください。**
6
+
7
+ 2. **WSLを使用してください。**
2
8
 
3
9
 
4
10
 
@@ -6,7 +12,7 @@
6
12
 
7
13
 
8
14
 
9
- 【解説】
15
+ 1.の解説】
10
16
 
11
17
 
12
18
 
@@ -55,3 +61,31 @@
55
61
 
56
62
 
57
63
  Microsofアカウントの紐付け等が必要な場合は、後で行ってください。ドキュメント等にあるファイルは移行されませんので、適当にコピーしてください。各アプリの設定の移行は難易度が高いため、設定し直しする事をお勧めします。
64
+
65
+
66
+
67
+ ---
68
+
69
+
70
+
71
+ 【2.の解説】
72
+
73
+
74
+
75
+ 上で述べたとおり、Windows特有の問題が発生する可能性が高いことを述べました。逆に言うとLinux環境では問題は起きないと言うことです。Windows 10には簡単に用意できるLinux環境を公式に備わっています。それが、
76
+
77
+
78
+
79
+ [Windows Subsystem for Linux (WSL)](https://docs.microsoft.com/ja-jp/windows/wsl/about)
80
+
81
+
82
+
83
+ です。Windows特有の問題に悩まされたくない場合は、WSLを用いることをお勧めします。ただし、WSLを利用にあたって、次のことに注意してください。
84
+
85
+
86
+
87
+ * Windows 10 64bitである必要があります。(WSL2は32bitでも可能という情報がありますが、不明です)
88
+
89
+ * WSL2はWindows 10 2004にアップデートしておく必要があります。(WSLはそれ以前も可能)
90
+
91
+ * Linuxについての基礎的な知識(少なくともターミナルでcdとかのコマンドが使える)が必要です。

1

もうちょっとわかりやすく

2020/07/18 07:15

投稿

raccy
raccy

スコア21733

test CHANGED
@@ -4,11 +4,13 @@
4
4
 
5
5
  ---
6
6
 
7
+
8
+
7
9
  【解説】
8
10
 
9
11
 
10
12
 
11
- RubyおよびRubyの各ライブラリ(bundlerを含む)は元々UNIX/Liunx向けに作られているため、Windows特有の処理について対応できていない所があります(これは、Ruby以外のUNIX/Linux向けに作られた多くのプログラミング言語で言えることなので、Rubyだけの特徴ではありません)。特にファイル名やディレクトリ名に英数字と言ったASCII以外の文字が含まれていると、文字コードを正しく処理する必要があるのですが、Windowsでは、ASNIとしてはWindows-31J、ワイド文字としてはUTF-16と内部処理が複数の文字コードを扱えるところに、Rubyは内部エンコードがデフォルトでUTF-8なのですが、コンソール表示はそのコンソールの文字コード(Windows-31Jだったり、UTF-8だったり)にあわせる必要があるなど、かなり複雑な処理が必要です(現在ほとんどのUNIX/LinuxはUTF-8で統一されているため、あまり問題は起きません)。そのため、**ファイルやディレクトリのパスの途中に漢字などのASCII以外の文字が含まれる場合、文字の処理がうまくいかず、対象のファイルやディレクトリにアクセスできない現象が発生する事があります。**(これ以外にも、スペースが含まれるとうまくいかない場合があります。これは、シェル経由で実行しようとする場合に発生しますが、現在は稀です。)
13
+ RubyおよびRubyの各ライブラリ(bundlerを含む)は元々UNIX/Liunx向けに作られているため、Windows特有の処理について対応できていない所があります(これは、Ruby以外のUNIX/Linux向けに作られた多くのプログラミング言語で言えることなので、Rubyだけの特徴ではありません)。特にファイル名やディレクトリ名にASCII(英数字等)以外の文字(漢字やひらな等)が含まれていると、文字コードを正しく処理する必要があるのですが、Windowsでは、ASNIとしてはWindows-31J、ワイド文字としてはUTF-16と内部処理が複数の文字コードを扱えるところに、Rubyは内部エンコードがデフォルトでUTF-8なのですが、コンソール表示はそのコンソールの文字コード(Windows-31Jだったり、UTF-8だったり)にあわせる必要があるなど、かなり複雑な処理が必要です(現在ほとんどのUNIX/LinuxはUTF-8で統一されているため、あまり問題は起きません)。そのため、**ファイルやディレクトリのパスの途中に漢字などのASCII以外の文字が含まれる場合、文字の処理がうまくいかず、対象のファイルやディレクトリにアクセスできない現象が発生する事があります。**(これ以外にも、スペースが含まれるとうまくいかない場合があります。これは、シェル経由で実行しようとする場合に発生しますが、現在は稀です。)
12
14
 
13
15
 
14
16